diff --git a/src/pretix/presale/templates/pretixpresale/event/checkout_confirm.html b/src/pretix/presale/templates/pretixpresale/event/checkout_confirm.html index ab7984282..3467b54be 100644 --- a/src/pretix/presale/templates/pretixpresale/event/checkout_confirm.html +++ b/src/pretix/presale/templates/pretixpresale/event/checkout_confirm.html @@ -189,6 +189,7 @@
diff --git a/src/pretix/presale/templates/pretixpresale/event/voucher.html b/src/pretix/presale/templates/pretixpresale/event/voucher.html index f062e4fa9..a4e504080 100644 --- a/src/pretix/presale/templates/pretixpresale/event/voucher.html +++ b/src/pretix/presale/templates/pretixpresale/event/voucher.html @@ -338,7 +338,15 @@
diff --git a/src/pretix/presale/views/cart.py b/src/pretix/presale/views/cart.py index dbcf5a872..0e429c598 100644 --- a/src/pretix/presale/views/cart.py +++ b/src/pretix/presale/views/cart.py @@ -1,6 +1,7 @@ import json import mimetypes import os +from decimal import Decimal from django.conf import settings from django.contrib import messages @@ -455,6 +456,16 @@ class RedeemView(NoSearchIndexViewMixin, EventViewMixin, TemplateView): context['options'] = sum([(len(item.available_variations) if item.has_variations else 1) for item in items]) + context['allfree'] = all( + item.display_price.gross == Decimal('0.00') for item in items if not item.has_variations + ) and all( + all( + var.display_price.gross == Decimal('0.00') + for var in item.available_variations + ) + for item in items if item.has_variations + ) + # Regroup those by category context['items_by_category'] = item_group_by_category(items) diff --git a/src/pretix/presale/views/event.py b/src/pretix/presale/views/event.py index 104f93153..4202cc4cf 100644 --- a/src/pretix/presale/views/event.py +++ b/src/pretix/presale/views/event.py @@ -2,6 +2,7 @@ import calendar import sys from collections import defaultdict from datetime import date, datetime, timedelta +from decimal import Decimal from importlib import import_module import pytz @@ -319,6 +320,15 @@ class EventIndex(EventViewMixin, EventListMixin, CartMixin, TemplateView): items, display_add_to_cart = get_grouped_items(self.request.event, self.subevent, channel=self.request.sales_channel.identifier) context['itemnum'] = len(items) + context['allfree'] = all( + item.display_price.gross == Decimal('0.00') for item in items if not item.has_variations + ) and all( + all( + var.display_price.gross == Decimal('0.00') + for var in item.available_variations + ) + for item in items if item.has_variations + ) # Regroup those by category context['items_by_category'] = item_group_by_category(items)