From: Michael Tremer Date: Tue, 16 Jul 2019 09:54:11 +0000 (+0100) Subject: donations: Fix page load error when following pre-formatted link X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=a5f949663b4df3abe8c58b111eee573554c56519;p=ipfire.org.git donations: Fix page load error when following pre-formatted link Signed-off-by: Michael Tremer --- diff --git a/src/templates/donate/donate.html b/src/templates/donate/donate.html index 2f8980b5..844a030d 100644 --- a/src/templates/donate/donate.html +++ b/src/templates/donate/donate.html @@ -80,7 +80,7 @@ + {% if amount %}value="{{ "%.2f" % amount }}"{% end %}> @@ -424,6 +424,11 @@ $(".EUR").hide(); } + if (amount.val()) { + $("#more").collapse("show"); + amount.change(); + } + $(".toggleCurrency").click(function(event) { event.preventDefault(); @@ -459,6 +464,7 @@ amount.on("change keyup mouseup", function() { var value = $(this).val(); + value = parseFloat(value); // Enable/disable submit button submit.prop("disabled", !value); @@ -468,8 +474,9 @@ $("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"); diff --git a/src/web/base.py b/src/web/base.py index b92ad74f..396799bb 100644 --- a/src/web/base.py +++ b/src/web/base.py @@ -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) diff --git a/src/web/donate.py b/src/web/donate.py index 743e5bbc..2429cdb7 100644 --- a/src/web/donate.py +++ b/src/web/donate.py @@ -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)