diff --git a/c3l_membership/views.py b/c3l_membership/views.py new file mode 100644 --- /dev/null +++ b/c3l_membership/views.py @@ -0,0 +1,46 @@ +import subprocess +from datetime import date + +from flask import Blueprint, current_app, render_template, request +from flask_weasyprint import HTML, render_pdf + +from .forms import MembershipForm + +root_page = Blueprint("root", __name__) + + +@root_page.route("/", methods=("GET", "POST")) +def index(): + form = MembershipForm() + if form.validate_on_submit(): + + if form.minor_member.data and form.membership.data != "starving": + membership = "student" + else: + membership = form.membership.data + + if membership in ["student", "supporting"]: + price = 40 + elif membership == "starving": + price = 1 + else: + price = 120 + + if form.payment.data == "bitcoin": + price = subprocess.check_output( + ["/usr/local/share/btc/BTC_Membership.pl", str(price)] + ).decode("utf-8") + elif form.payment.data == "ethereum": + price = subprocess.check_output( + ["/usr/local/share/eth/ETH_Membership.pl", str(price)] + ).decode("utf-8") + elif form.payment.data == "digicash": + price = price * 100 + + year = date.today().year + + html = render_template( + "member.html", form=form, membership=membership, price=price, year=year + ) + return render_pdf(HTML(string=html)) + return render_template("index.html", form=form)