From: Michael Tremer Date: Thu, 12 Oct 2023 20:12:49 +0000 (+0000) Subject: donate: Pre-fill form with the user's profile X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=1898a8bb1c08cc20ebc03fe80698b5d76189e892;p=ipfire.org.git donate: Pre-fill form with the user's profile Signed-off-by: Michael Tremer --- diff --git a/src/templates/donate/donate.html b/src/templates/donate/donate.html index 3eeba70f..ab2d610f 100644 --- a/src/templates/donate/donate.html +++ b/src/templates/donate/donate.html @@ -168,39 +168,46 @@
+ {% if current_user %}value="{{ current_user.first_name }}"{% end %}>
+ {% if current_user %}value="{{ current_user.last_name }}"{% end %}>
+ placeholder="{{ _("Email Address") }}" required + {% if current_user %}value="{{ current_user.email }}"{% end %}>
+ {% set lines = current_user.street.splitlines() if current_user else [] %} +
+ placeholder="{{ _("Address Line 1") }}" required + {% if lines %}value="{{ lines[0] }}"{% end %}>
+ placeholder="{{ _("Address Line 2") }}" + {% if lines and len(lines) > 1 %}value="{{ lines[1] }}"{% end %}>
+ placeholder="{{ _("City") }}" required + {% if current_user %}value="{{ current_user.city }}"{% end %}>
+ placeholder="{{ _("Post Code") }}" required + {% if current_user %}value="{{ current_user.postal_code }}"{% end %}>
@@ -597,4 +604,4 @@ amount.change(); }); -{% end block %} \ No newline at end of file +{% end block %} diff --git a/src/web/donate.py b/src/web/donate.py index 26b0ad6b..3d87e2a6 100644 --- a/src/web/donate.py +++ b/src/web/donate.py @@ -7,11 +7,12 @@ from . import base class DonateHandler(base.BaseHandler): def get(self): - country = self.current_country_code + if self.current_user: + country = self.current_user.country_code + else: + country = self.current_country_code # Get defaults - first_name = self.get_argument("first_name", None) - last_name = self.get_argument("last_name", None) amount = self.get_argument_float("amount", None) currency = self.get_argument("currency", None) frequency = self.get_argument("frequency", None) @@ -29,8 +30,7 @@ class DonateHandler(base.BaseHandler): frequency = "one-time" self.render("donate/donate.html", countries=iso3166.countries, - country=country, first_name=first_name, last_name=last_name, - amount=amount, currency=currency, frequency=frequency) + country=country, amount=amount, currency=currency, frequency=frequency) @base.ratelimit(minutes=15, requests=5) async def post(self):