Do not show a price if there are mandatory non-free addons

This commit is contained in:
Raphael Michel
2022-08-15 14:54:51 +02:00
parent 2d584d115d
commit b9feceba49
2 changed files with 16 additions and 5 deletions

View File

@@ -58,9 +58,9 @@
{% endblocktrans %} {% endblocktrans %}
</span> </span>
<span aria-hidden="true">{{ item.min_price|money:event.currency }} {{ item.max_price|money:event.currency }}</span> <span aria-hidden="true">{{ item.min_price|money:event.currency }} {{ item.max_price|money:event.currency }}</span>
{% elif not item.min_price and not item.max_price %} {% elif not item.min_price and not item.max_price and not item.mandatory_priced_addons %}
<span class="text-uppercase">{% trans "free" context "price" %}</span> <span class="text-uppercase">{% trans "free" context "price" %}</span>
{% else %} {% elif not item.mandatory_priced_addons %}
{{ item.min_price|money:event.currency }} {{ item.min_price|money:event.currency }}
{% endif %} {% endif %}
</div> </div>
@@ -144,7 +144,9 @@
</div> </div>
<p> <p>
{% elif not var.display_price.gross %} {% elif not var.display_price.gross %}
<span class="text-uppercase">{% trans "free" context "price" %}</span> {% if not item.mandatory_priced_addons %}
<span class="text-uppercase">{% trans "free" context "price" %}</span>
{% endif %}
{% elif event.settings.display_net_prices %} {% elif event.settings.display_net_prices %}
{{ var.display_price.net|money:event.currency }} {{ var.display_price.net|money:event.currency }}
{% else %} {% else %}
@@ -276,7 +278,9 @@
</div> </div>
<p> <p>
{% elif not item.display_price.gross %} {% elif not item.display_price.gross %}
<span class="text-uppercase">{% trans "free" context "price" %}</span> {% if not item.mandatory_priced_addons %}
<span class="text-uppercase">{% trans "free" context "price" %}</span>
{% endif %}
{% elif event.settings.display_net_prices %} {% elif event.settings.display_net_prices %}
{{ item.display_price.net|money:event.currency }} {{ item.display_price.net|money:event.currency }}
{% else %} {% else %}

View File

@@ -65,7 +65,7 @@ from pretix.base.models import (
) )
from pretix.base.models.event import SubEvent from pretix.base.models.event import SubEvent
from pretix.base.models.items import ( from pretix.base.models.items import (
ItemBundle, SubEventItem, SubEventItemVariation, ItemAddOn, ItemBundle, SubEventItem, SubEventItemVariation,
) )
from pretix.base.services.quotas import QuotaAvailability from pretix.base.services.quotas import QuotaAvailability
from pretix.helpers.compat import date_fromisocalendar from pretix.helpers.compat import date_fromisocalendar
@@ -183,6 +183,13 @@ def get_grouped_items(event, subevent=None, voucher=None, channel='web', require
subevent=subevent, subevent=subevent,
) )
), ),
mandatory_priced_addons=Exists(
ItemAddOn.objects.filter(
base_item_id=OuterRef('pk'),
min_count__gte=1,
price_included=False
)
),
requires_seat=requires_seat, requires_seat=requires_seat,
).filter( ).filter(
quotac__gt=0, subevent_disabled=False, quotac__gt=0, subevent_disabled=False,