def create(): amount = request.form.get('amount') image_id = request.form.get('image_id') image_user_id = request.form.get('image_user_id') nonce_from_the_client = request.form.get("nonce") result = gateway.transaction.sale({ "amount": amount, "payment_method_nonce": nonce_from_the_client, "options": { "submit_for_settlement": True } }) # breakpoint if result.is_success: flash("Successfully donated !", "success") donation = Donation(username=current_user.id, image=image_id, amount=amount) donation.save() return redirect(f'images/{image_user_id}/images') else: flash("Error has occured, please try again", "danger") return render_template(url_for('donations.new'))
def create_donation(id): nonce_from_the_client = request.form["this-input"] amount = request.form.get('this-amount') gateway.transaction.sale({ "amount": amount, "payment_method_nonce": nonce_from_the_client, "options": { "submit_for_settlement": True } }) Donation(amount=amount, image=id, user=current_user.username).save() image = Image.get_by_id(id) user = User.get_or_none(User.id == image.user_id) message = Mail( from_email='*****@*****.**', to_emails=user.email, subject='Donation Notification', html_content='@' + current_user.username + ' donated' + f' ${amount} to the following image below!<br><img src="{ image.upload_image_url }" />' ) try: sg = SendGridAPIClient(os.environ.get('SENDGRID_API_KEY')) response = sg.send(message) print(response.status_code) print(response.body) print(response.headers) except Exception as e: print(str(e)) return redirect(url_for('home'))
def post(self): action = self.request.get("action") if action == "newdonation": user = UserData.current() group_id = self.request.get("group") title = self.request.get("title") body = self.request.get("body") # logging.info(repr(body)) body = body.replace("\r\n", "<br />") tmp = self.request.get("specs") logging.info(repr(tmp)) # logging.info() specs = """<ul>""" for spec in tmp.split("\r\n"): # logging.info(spec) if spec != "": specs += """<li>%s</li>""" % spec specs += """</ul>""" logging.info(specs) donation = Donation.create_donation(user=user, group=db.Key.from_path("Group", group_id), specs = str(specs), title=title, body=body) if donation is None: self.redirect('/group/%s' % group_id) return self.redirect('/donation/%s' % donation.key().id()) return if action == "newplea": user = UserData.current() donationid = self.request.get("donationid") donation = Donation.get_by_id(int(donationid)) title = self.request.get("title") body = self.request.get("body") plea = Plea.new_plea(user=user, donation=donation, title=title, body=body) self.redirect('/donation/%s' % donationid) return self.redirect('/donations/')
def post(self): filter = self.request.get("filter", "") if filter == "": self.render("donationsearch.html", results=None) return logging.info("filter = '%s'" % filter) results = Donation.search(filter) return self.render("donationsearch.html", results=results)
def get(self): donation_id = self.request.get("donationid", "") if donation_id == "": self.redirect('/donations/') return donation = Donation.get_by_id(int(donation_id)) if donation is None: self.redirect('/donations/') return owner = False user = UserData.current() if user is not None: if user.user_id == donation.created_by.user_id: logging.info("owner!") owner = True action = self.request.get("action") if action == "deletedonation": donation.delete() elif action == "deleteplea": id = self.request.get("id", "") if id == "": self.redirect('/donations/') return # user = UserData.current().user_id # if user != donation.created_by.user_id or user == plea.user.user_id): # self.redirect('/donation/%s' % donation_id) delete_model("Plea", int(id)) self.redirect('/donation/%s' % donation_id) donation.update_plea_count() return elif action == "acceptplea": pleaid = self.request.get("pleaid", "") if pleaid == "": return self.redirect('/donations/') # user = UserData.current() donation.accept_plea(pleaid) # inform pleas that donation is closed # self.redirect('/donation/%s' % donation_id) return self.render("donationview.html", donation=donation, owner=owner) elif action == "closedonation": if not donation.close_donation(): return self.redirect('/donations/') return self.render("donationview.html", donation=donation, owner=owner) logging.info("test2") return self.redirect('/donations/')
def create(image_id): nonce = request.form.get('payment_method_nonce') if not nonce: flash('invalid credit card details', 'warning') return redirect(url_for('users.index')) image = Image.get_or_none(Image.id == image_id) if not image: flash('No image found with the provided id', 'waning') return redirect(url_for('users.index')) amount = request.form.get('amount') if not amount: flash('No donation amount provided', 'warning') return redirect(url_for('users.index')) result = gateway.transaction.sale({ "amount": amount, "payment_method_nonce": nonce, # "device_data": device_data_from_the_client, "options": { "submit_for_settlement": True } }) if not result.is_success: flash('Unable to complete transaction', 'warning') return redirect(request.referrer) donation = Donation(amount=amount, image_id=image.id, user_id=current_user.id) if not donation.save(): flash('Donation successful but error creating record', 'warning') return redirect(url_for('users.index')) flash(f'Donation successful. ${amount} donated', 'success') user = User.select().join(Image).where(Image.id == image_id) send_simple_message(user[0].email) return redirect(url_for('users.index'))
def create(image_id): amount = request.form.get('amount') payment_nonce = request.form.get('payment_nonce') result = gateway.transaction.sale({ "amount": amount, "payment_method_nonce": payment_nonce, "options": { "submit_for_settlement": True } }) if not result.is_success: flash(u'dono did not work out.', 'warning') return redirect(request.referrer) dono = Donation(amount=amount, image_id=image_id) if dono.save(): user = User.select().join(Image).where(Image.id == image_id) send_simple_message(user[0].email) flash(f'successfully donated RM{amount}', 'info') return redirect(url_for('users.index'))
def get(self, id): donation = Donation.get_by_id(int(id)) if donation is None: self.redirect('/') owner = False user = UserData.current() if user is not None: if user.user_id == donation.created_by.user_id: owner = True self.render("donationview.html", donation=donation, login_url="/donation/%s" % id, owner=owner)
def total_donations(self): from models.donations import Donation total = 0 for donation in Donation.select().where(Donation.image_id == self.id): total = total + donation.amount return round(total)
def get(self): donations = Donation.all().filter("active = ", True).fetch(100) self.render("donationlist.html",donations=donations)