Files
@ 025b79e9a3f3
Branch filter:
Location: C3L/C3L-Membership-Online-Form/c3l_membership/views.py - annotation
025b79e9a3f3
3.5 KiB
text/x-python
Fix typo and release
587a9a50643f 6f06fc328a13 6f06fc328a13 6f06fc328a13 6f06fc328a13 6f06fc328a13 6f06fc328a13 6f06fc328a13 6f06fc328a13 6f06fc328a13 6f06fc328a13 587a9a50643f 587a9a50643f 6f06fc328a13 6f06fc328a13 6f06fc328a13 6f06fc328a13 7cf7d1e162a4 7cf7d1e162a4 7cf7d1e162a4 7cf7d1e162a4 7cf7d1e162a4 7cf7d1e162a4 7cf7d1e162a4 7cf7d1e162a4 7cf7d1e162a4 7cf7d1e162a4 7cf7d1e162a4 7cf7d1e162a4 7cf7d1e162a4 7cf7d1e162a4 6f06fc328a13 6f06fc328a13 587a9a50643f 587a9a50643f 52127f437376 52127f437376 52127f437376 52127f437376 52127f437376 7cf7d1e162a4 587a9a50643f 52127f437376 7cf7d1e162a4 587a9a50643f 6f06fc328a13 52127f437376 6f06fc328a13 6f06fc328a13 587a9a50643f 587a9a50643f 587a9a50643f 587a9a50643f 587a9a50643f 587a9a50643f 587a9a50643f 587a9a50643f 587a9a50643f 587a9a50643f 587a9a50643f 587a9a50643f 587a9a50643f 587a9a50643f 587a9a50643f 587a9a50643f 587a9a50643f 587a9a50643f 587a9a50643f 587a9a50643f 587a9a50643f 587a9a50643f 587a9a50643f 587a9a50643f 6f06fc328a13 6f06fc328a13 7cf7d1e162a4 6f06fc328a13 6f06fc328a13 6f06fc328a13 025b79e9a3f3 6f06fc328a13 587a9a50643f 587a9a50643f 7cf7d1e162a4 7cf7d1e162a4 7cf7d1e162a4 7cf7d1e162a4 7cf7d1e162a4 587a9a50643f 6f06fc328a13 6f06fc328a13 6f06fc328a13 587a9a50643f 587a9a50643f 587a9a50643f 6f06fc328a13 587a9a50643f 587a9a50643f 587a9a50643f 587a9a50643f 6f06fc328a13 6f06fc328a13 | import re
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__)
xml_template = "<member><numm>{name}</numm><gebuertsdag>{birthday:%d.%m.%Y}</gebuertsdag><address>{address}</address><nick>{username}</nick><email>{email}</email><status>{status}</status><stemmrecht>{voting}</stemmrecht></member>"
@root_page.route("/", methods=("GET", "POST"))
def index():
form = MembershipForm()
choices = [("cash", "by cash"), ("wire transfer", "by wire transfer")]
for k, v in (
("DIGICASH_ENABLED", ("digicash", "by DigiCash")),
("BITCOIN_ENABLED", ("bitcoin", "by bitcoin")),
("ETHEREUM_ENABLED", ("ethereum", "by ethereum")),
("MONERO_ENABLED", ("monero", "by monero")),
("ZCASH_ENABLED", ("zcash", "by zcash")),
):
if current_app.config[k]:
choices.append(v)
form.payment.choices = choices
if form.validate_on_submit():
xml_data = {}
if (
form.minor_member.data
or form.student.data
or form.membership.data == "supporting"
):
price = current_app.config["SUPPORTING_FEE"]
xml_data["voting"] = 0
elif form.membership.data == "regular":
price = current_app.config["REGULAR_FEE"]
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(
[current_app.config["BITCOIN_CONVERSION_SCRIPT"], str(price)]
).decode("utf-8")
elif form.payment.data == "ethereum":
price = subprocess.check_output(
[current_app.config["ETHEREUM_CONVERSION_SCRIPT"], str(price)]
).decode("utf-8")
elif form.payment.data == "monero":
price = subprocess.check_output(
[current_app.config["MONERO_CONVERSION_SCRIPT"], str(price)]
).decode("utf-8")
elif form.payment.data == "zcash":
price = subprocess.check_output(
[current_app.config["ZCASH_CONVERSION_SCRIPT"], str(price)]
).decode("utf-8")
elif form.payment.data == "digicash":
price = price * 100
now = date.today()
year = now.year
xml_data["date"] = now
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)
|