diff --git a/c3l_membership/views.py b/c3l_membership/views.py --- a/c3l_membership/views.py +++ b/c3l_membership/views.py @@ -1,3 +1,4 @@ +import re import subprocess from datetime import date @@ -8,24 +9,54 @@ from .forms import MembershipForm root_page = Blueprint("root", __name__) +xml_template = "{name}{birthday:%d.%m.%Y}
{address}
{username}{email}{status}{voting}
" + @root_page.route("/", methods=("GET", "POST")) def index(): form = MembershipForm() if form.validate_on_submit(): + xml_data = {} + if ( form.minor_member.data or form.student.data or form.membership.data == "supporting" ): price = 40 + xml_data["voting"] = 0 elif form.membership.data == "regular": price = 120 + xml_data["voting"] = 1 if form.starving.data: price = 1 + if form.starving.data: + xml_data["status"] = "Starving" + elif form.minor_member.data or form.student.data: + xml_data["status"] = "Student" + elif form.membership.data == "supporting": + xml_data["status"] = "Supporter" + else: + xml_data["status"] = "Regular" + + xml_data["name"] = form.fullname.data + xml_data["birthday"] = form.birthday.data + xml_data["username"] = form.username.data + xml_data["email"] = form.email.data + xml_data["address"] = " ".join( + ( + form.street.data, + form.zip.data, + form.city.data, + form.state.data, + form.country.data, + ) + ) + xml_data["address"] = re.sub("\s+", " ", xml_data["address"]) + if form.payment.data == "bitcoin": price = subprocess.check_output( ["/usr/local/share/btc/BTC_Membership.pl", str(price)] @@ -34,11 +65,20 @@ def index(): price = subprocess.check_output( ["/usr/local/share/eth/ETH_Membership.pl", str(price)] ).decode("utf-8") + elif form.payment.data == "monero": + price = subprocess.check_output( + ["/usr/local/share/xmr/XMR_Membership.pl", str(price)] + ).decode("utf-8") elif form.payment.data == "digicash": price = price * 100 - year = date.today().year + now = date.today() + year = now.year + xml_data["date"] = now - html = render_template("member.html", form=form, price=price, year=year) + xml = xml_template.format(**xml_data) + html = render_template( + "member.html", form=form, price=price, year=year, xml=xml + ) return render_pdf(HTML(string=html)) return render_template("index.html", form=form)