From 31bb0f4a91d907a316a30bf11896e0d2c4aac24b Mon Sep 17 00:00:00 2001 From: Raphael Michel Date: Tue, 6 May 2025 11:14:28 +0200 Subject: [PATCH] Product list: Show icon for seated products (#5015) * Product list: Show icon for seated products * Use updated seat icon * Update src/pretix/static/pretixbase/scss/_theme.scss Co-authored-by: Richard Schreiber --------- Co-authored-by: Richard Schreiber --- src/pretix/base/templates/icons/seat.svg | 5 +++++ .../control/templates/pretixcontrol/items/index.html | 9 +++++++++ .../control/templates/pretixcontrol/order/index.html | 5 +---- src/pretix/control/views/item.py | 10 ++++++++-- src/pretix/icons/seat.svg | 6 +++--- .../pretixpresale/event/checkout_membership.html | 5 +---- .../pretixpresale/event/checkout_questions.html | 5 +---- .../templates/pretixpresale/event/fragment_cart.html | 7 ++----- src/pretix/static/pretixbase/scss/_theme.scss | 4 ++++ 9 files changed, 34 insertions(+), 22 deletions(-) create mode 100644 src/pretix/base/templates/icons/seat.svg diff --git a/src/pretix/base/templates/icons/seat.svg b/src/pretix/base/templates/icons/seat.svg new file mode 100644 index 000000000..ae6ea834e --- /dev/null +++ b/src/pretix/base/templates/icons/seat.svg @@ -0,0 +1,5 @@ + + + + diff --git a/src/pretix/control/templates/pretixcontrol/items/index.html b/src/pretix/control/templates/pretixcontrol/items/index.html index 4bda32aee..a803c6495 100644 --- a/src/pretix/control/templates/pretixcontrol/items/index.html +++ b/src/pretix/control/templates/pretixcontrol/items/index.html @@ -40,6 +40,7 @@ + {% trans "Default price" %} Edit @@ -111,6 +112,14 @@ {% endif %} + + {% if i.requires_seat %} + + {% include "icons/seat.svg" with cls="svg-icon text-muted" %} + + {% endif %} + {% if i.category.is_addon %} - - - + {% include "icons/seat.svg" with cls="svg-icon" %} {{ line.seat }} {% endif %} {% if line.voucher %} diff --git a/src/pretix/control/views/item.py b/src/pretix/control/views/item.py index 5177565c3..9c4b51ef7 100644 --- a/src/pretix/control/views/item.py +++ b/src/pretix/control/views/item.py @@ -65,7 +65,7 @@ from pretix.api.serializers.item import ( from pretix.base.forms import I18nFormSet from pretix.base.models import ( CartPosition, Item, ItemCategory, ItemVariation, Order, Question, - QuestionAnswer, QuestionOption, Quota, Voucher, + QuestionAnswer, QuestionOption, Quota, SeatCategoryMapping, Voucher, ) from pretix.base.models.event import SubEvent from pretix.base.models.items import ItemAddOn, ItemBundle, ItemMetaValue @@ -101,10 +101,16 @@ class ItemList(ListView): template_name = 'pretixcontrol/items/index.html' def get_queryset(self): + requires_seat = Exists( + SeatCategoryMapping.objects.filter( + product_id=OuterRef('pk'), + ) + ) return Item.objects.filter( event=self.request.event ).select_related("tax_rule").annotate( - var_count=Count('variations') + var_count=Count('variations'), + requires_seat=requires_seat, ).prefetch_related("category", "limit_sales_channels").order_by( F('category__position').asc(nulls_first=True), 'category', 'position' diff --git a/src/pretix/icons/seat.svg b/src/pretix/icons/seat.svg index 8def34ab8..fe57ca0be 100644 --- a/src/pretix/icons/seat.svg +++ b/src/pretix/icons/seat.svg @@ -1,5 +1,5 @@ - - + + + diff --git a/src/pretix/presale/templates/pretixpresale/event/checkout_membership.html b/src/pretix/presale/templates/pretixpresale/event/checkout_membership.html index 14f54e202..bf94bbcd5 100644 --- a/src/pretix/presale/templates/pretixpresale/event/checkout_membership.html +++ b/src/pretix/presale/templates/pretixpresale/event/checkout_membership.html @@ -23,10 +23,7 @@ {% trans "Seat" %}
- - - + {% include "icons/seat.svg" with cls="svg-icon" %} {{ form.position.seat }}
diff --git a/src/pretix/presale/templates/pretixpresale/event/checkout_questions.html b/src/pretix/presale/templates/pretixpresale/event/checkout_questions.html index bbacb58ed..9a89f35aa 100644 --- a/src/pretix/presale/templates/pretixpresale/event/checkout_questions.html +++ b/src/pretix/presale/templates/pretixpresale/event/checkout_questions.html @@ -100,10 +100,7 @@ {% trans "Seat" %}
- - - + {% include "icons/seat.svg" with cls="svg-icon" %} {{ pos.seat }}
diff --git a/src/pretix/presale/templates/pretixpresale/event/fragment_cart.html b/src/pretix/presale/templates/pretixpresale/event/fragment_cart.html index 13bf46555..c9dd89050 100644 --- a/src/pretix/presale/templates/pretixpresale/event/fragment_cart.html +++ b/src/pretix/presale/templates/pretixpresale/event/fragment_cart.html @@ -44,11 +44,8 @@
{% trans "Seat:" %}
- - - - {{ line.seat }} + {% include "icons/seat.svg" with cls="svg-icon" %} + {{ line.seat }}
{% endif %} diff --git a/src/pretix/static/pretixbase/scss/_theme.scss b/src/pretix/static/pretixbase/scss/_theme.scss index c9feb9e15..a5a85698d 100644 --- a/src/pretix/static/pretixbase/scss/_theme.scss +++ b/src/pretix/static/pretixbase/scss/_theme.scss @@ -227,6 +227,10 @@ svg.svg-icon { top: 2px; } +.text-muted path { + fill: $text-muted; +} + .link-muted a, a.link-muted { color: $text-muted; }