]> git.ipfire.org Git - ipfire.org.git/commitdiff
donate: Pre-fill form with the user's profile
authorMichael Tremer <michael.tremer@ipfire.org>
Thu, 12 Oct 2023 20:12:49 +0000 (20:12 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Thu, 12 Oct 2023 20:12:49 +0000 (20:12 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/templates/donate/donate.html
src/web/donate.py

index 3eeba70fb9948d0fac1d4bb2362f91fcb3ea2c42..ab2d610f7aea7c2303eb4e7b923c1e512e5f0b76 100644 (file)
                                                        <div class="column">
                                                                <input type="text" class="input" name="first_name"
                                                                        placeholder="{{ _("First Name" )}}" required
-                                                                       {% if first_name %}value="{{ first_name }}"{% end %}>
+                                                                       {% if current_user %}value="{{ current_user.first_name }}"{% end %}>
                                                        </div>
 
                                                        <div class="column">
                                                                <input type="text" class="input" name="last_name"
                                                                        placeholder="{{ _("Last Name" )}}" required
-                                                                       {% if last_name %}value="{{ last_name }}"{% end %}>
+                                                                       {% if current_user %}value="{{ current_user.last_name }}"{% end %}>
                                                        </div>
                                                </div>
 
                                                <div class="block">
                                                                <input type="email" class="input" name="email"
-                                                                       placeholder="{{ _("Email Address") }}" required>
+                                                                       placeholder="{{ _("Email Address") }}" required
+                                                                       {% if current_user %}value="{{ current_user.email }}"{% end %}>
                                                </div>
 
+                                               {% set lines = current_user.street.splitlines() if current_user else [] %}
+
                                                <div class="block">
                                                        <input type="text" class="input" name="street1"
-                                                               placeholder="{{ _("Address Line 1") }}" required>
+                                                               placeholder="{{ _("Address Line 1") }}" required
+                                                               {% if lines %}value="{{ lines[0] }}"{% end %}>
                                                </div>
 
                                                <div class="block">
                                                        <input type="text" class="input" name="street2"
-                                                               placeholder="{{ _("Address Line 2") }}">
+                                                               placeholder="{{ _("Address Line 2") }}"
+                                                               {% if lines and len(lines) > 1 %}value="{{ lines[1] }}"{% end %}>
                                                </div>
 
                                                <div class="columns">
                                                        <div class="column">
                                                                <input type="text" class="input" name="city"
-                                                                       placeholder="{{ _("City") }}" required>
+                                                                       placeholder="{{ _("City") }}" required
+                                                                       {% if current_user %}value="{{ current_user.city }}"{% end %}>
                                                        </div>
                                                        <div class="column">
                                                                <input type="text" class="input" name="post_code"
-                                                                       placeholder="{{ _("Post Code") }}" required>
+                                                                       placeholder="{{ _("Post Code") }}" required
+                                                                       {% if current_user %}value="{{ current_user.postal_code }}"{% end %}>
                                                        </div>
                                                </div>
 
                        amount.change();
                });
        </script>
-{% end block %}
\ No newline at end of file
+{% end block %}
index 26b0ad6bb3d926ac62f12a861c6ba766e3b15106..3d87e2a6472b99472bba16862052bdb6e494078e 100644 (file)
@@ -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):