From ffdc73e0a370d3debfaf3cec01ea057b4c0fd697 Mon Sep 17 00:00:00 2001 From: Raphael Michel Date: Tue, 21 Jan 2025 16:35:15 +0100 Subject: [PATCH] Show percentage of discount in cart (Z#23176955) (#4719) * Show percentage of discount in cart (Z#23176955) * Fix computation --- src/pretix/base/models/orders.py | 6 ++++++ .../pretixpresale/event/fragment_cart.html | 20 +++++++++++++++---- 2 files changed, 22 insertions(+), 4 deletions(-) diff --git a/src/pretix/base/models/orders.py b/src/pretix/base/models/orders.py index fd95b928dd..09ad6245ee 100644 --- a/src/pretix/base/models/orders.py +++ b/src/pretix/base/models/orders.py @@ -3218,6 +3218,12 @@ class CartPosition(AbstractPosition): self.tax_code = line_price.code self.save(update_fields=['line_price_gross', 'tax_rate']) + @property + def discount_percentage(self): + if not self.line_price_gross: + return 0 + return (self.line_price_gross - self.price) / self.line_price_gross * 100 + @property def addons_without_bundled(self): addons = [op for op in self.addons.all() if not op.is_bundled] diff --git a/src/pretix/presale/templates/pretixpresale/event/fragment_cart.html b/src/pretix/presale/templates/pretixpresale/event/fragment_cart.html index 4f39027602..23dae50c8a 100644 --- a/src/pretix/presale/templates/pretixpresale/event/fragment_cart.html +++ b/src/pretix/presale/templates/pretixpresale/event/fragment_cart.html @@ -268,8 +268,14 @@ {% if line.discount and line.line_price_gross != line.price %}
- - {% trans "Discounted" %} + + {% if line.price < line.line_price_gross %} + {% blocktranslate trimmed with percent=line.discount_percentage|floatformat:0 %} + {{ percent }} % Discount + {% endblocktranslate %} + {% else %} + {% trans "Discounted" %} + {% endif %}
{% endif %} @@ -335,8 +341,14 @@ {% if line.discount and line.line_price_gross != line.price %}
- - {% trans "Discounted" %} + + {% if line.price < line.line_price_gross %} + {% blocktranslate trimmed with percent=line.discount_percentage|floatformat:0 %} + {{ percent }} % Discount + {% endblocktranslate %} + {% else %} + {% trans "Discounted" %} + {% endif %}
{% endif %}