]> git.ipfire.org Git - ipfire.org.git/commitdiff
donations: Fix page load error when following pre-formatted link
authorMichael Tremer <michael.tremer@ipfire.org>
Tue, 16 Jul 2019 09:54:11 +0000 (10:54 +0100)
committerMichael Tremer <michael.tremer@ipfire.org>
Tue, 16 Jul 2019 09:54:11 +0000 (10:54 +0100)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/templates/donate/donate.html
src/web/base.py
src/web/donate.py

index 2f8980b599c36fd073528bbd3cee1adf1452881a..844a030d4591ca28c31ef7c960868610f3917641 100644 (file)
@@ -80,7 +80,7 @@
                                                                                        </div>
 
                                                                                        <input type="number" class="form-control form-control-lg" name="amount" min="5" step="0.01"
-                                                                                               {% if amount %}value="{{ amount }}"{% end %}>
+                                                                                               {% if amount %}value="{{ "%.2f" % amount }}"{% end %}>
                                                                                </div>
                                                                        </div>
                                                                </div>
                                $(".EUR").hide();
                        }
 
+                       if (amount.val()) {
+                               $("#more").collapse("show");
+                               amount.change();
+                       }
+
                        $(".toggleCurrency").click(function(event) {
                                event.preventDefault();
 
 
                        amount.on("change keyup mouseup", function() {
                                var value = $(this).val();
+                               value = parseFloat(value);
 
                                // Enable/disable submit button
                                submit.prop("disabled", !value);
                                        $("input[name='amount-selector']").each(function (i, selector) {
                                                var s = $(selector);
                                                var b = s.parent(".btn");
+                                               var v = parseFloat(s.val());
 
-                                               if (s.val() === value) {
+                                               if (value == v) {
                                                        b.addClass("active");
                                                } else {
                                                        b.removeClass("active");
index b92ad74fa109e8375c6efb396962c3f59116dfe3..396799bbe98cefbcdf63402b3a4383d636fd6772 100644 (file)
@@ -150,7 +150,18 @@ class BaseHandler(tornado.web.RequestHandler):
                try:
                        return int(arg)
                except ValueError:
-                       raise tornado.web.HTTPError(400)
+                       raise tornado.web.HTTPError(400, "Could not convert integer: %s" % arg)
+
+       def get_argument_float(self, *args, **kwargs):
+               arg = self.get_argument(*args, **kwargs)
+
+               if arg is None or arg == "":
+                       return
+
+               try:
+                       return float(arg)
+               except ValueError:
+                       raise tornado.web.HTTPError(400, "Could not convert float: %s" % arg)
 
        def get_argument_date(self, arg, *args, **kwargs):
                value = self.get_argument(arg, *args, **kwargs)
index 743e5bbc35eb3970b500c15f7ed024155f509932..2429cdb7de266d759947e18467b6a04248b4a178 100644 (file)
@@ -23,7 +23,7 @@ class DonateHandler(base.BaseHandler):
                # Get defaults
                first_name = self.get_argument("first_name", None)
                last_name = self.get_argument("last_name", None)
-               amount    = self.get_argument_int("amount", None)
+               amount    = self.get_argument_float("amount", None)
                currency  = self.get_argument("currency", None)
                frequency = self.get_argument("frequency", None)