forked from CGM_Public/pretix_original
Vouchers: Fix label on redemption page
This commit is contained in:
@@ -581,6 +581,10 @@ class Voucher(LoggedModel):
|
|||||||
else:
|
else:
|
||||||
return bool(subevent.seating_plan) if subevent else self.event.seating_plan
|
return bool(subevent.seating_plan) if subevent else self.event.seating_plan
|
||||||
|
|
||||||
|
@property
|
||||||
|
def min_usages_remaining(self):
|
||||||
|
return max(1, self.min_usages - self.redeemed)
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def annotate_budget_used_orders(cls, qs):
|
def annotate_budget_used_orders(cls, qs):
|
||||||
opq = OrderPosition.objects.filter(
|
opq = OrderPosition.objects.filter(
|
||||||
|
|||||||
@@ -530,11 +530,11 @@ class CartManager:
|
|||||||
ops.append((listed_price - price_after_voucher, self.VoucherOperation(p, voucher, price_after_voucher)))
|
ops.append((listed_price - price_after_voucher, self.VoucherOperation(p, voucher, price_after_voucher)))
|
||||||
|
|
||||||
for voucher, cnt in list(voucher_use_diff.items()):
|
for voucher, cnt in list(voucher_use_diff.items()):
|
||||||
if 0 < cnt < (voucher.min_usages - voucher.redeemed):
|
if 0 < cnt < voucher.min_usages_remaining:
|
||||||
raise CartError(
|
raise CartError(
|
||||||
_(error_messages['voucher_min_usages']) % {
|
_(error_messages['voucher_min_usages']) % {
|
||||||
'voucher': voucher.code,
|
'voucher': voucher.code,
|
||||||
'number': (voucher.min_usages - voucher.redeemed),
|
'number': voucher.min_usages_remaining,
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -943,7 +943,7 @@ class CartManager:
|
|||||||
for voucher, count in vouchers.items():
|
for voucher, count in vouchers.items():
|
||||||
if not voucher or count == 0:
|
if not voucher or count == 0:
|
||||||
continue
|
continue
|
||||||
if count < (voucher.min_usages - voucher.redeemed):
|
if count < voucher.min_usages_remaining:
|
||||||
self._operations = [o for o in self._operations if not (
|
self._operations = [o for o in self._operations if not (
|
||||||
isinstance(o, self.AddOperation) and o.voucher.pk == voucher.pk
|
isinstance(o, self.AddOperation) and o.voucher.pk == voucher.pk
|
||||||
)]
|
)]
|
||||||
@@ -953,13 +953,13 @@ class CartManager:
|
|||||||
self._operations.append(self.RemoveOperation(position=p))
|
self._operations.append(self.RemoveOperation(position=p))
|
||||||
err = _(error_messages['voucher_min_usages_removed']) % {
|
err = _(error_messages['voucher_min_usages_removed']) % {
|
||||||
'voucher': voucher.code,
|
'voucher': voucher.code,
|
||||||
'number': (voucher.min_usages - voucher.redeemed),
|
'number': voucher.min_usages_remaining,
|
||||||
}
|
}
|
||||||
if not err:
|
if not err:
|
||||||
raise CartError(
|
raise CartError(
|
||||||
_(error_messages['voucher_min_usages']) % {
|
_(error_messages['voucher_min_usages']) % {
|
||||||
'voucher': voucher.code,
|
'voucher': voucher.code,
|
||||||
'number': (voucher.min_usages - voucher.redeemed),
|
'number': voucher.min_usages_remaining,
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
return err
|
return err
|
||||||
|
|||||||
@@ -722,10 +722,10 @@ def _check_positions(event: Event, now_dt: datetime, positions: List[CartPositio
|
|||||||
delete(cp)
|
delete(cp)
|
||||||
|
|
||||||
for voucher, cnt in v_usages.items():
|
for voucher, cnt in v_usages.items():
|
||||||
if 0 < cnt < voucher.min_usages - voucher.redeemed:
|
if 0 < cnt < voucher.min_usages_remaining:
|
||||||
raise OrderError(error_messages['voucher_min_usages'], {
|
raise OrderError(error_messages['voucher_min_usages'], {
|
||||||
'voucher': voucher.code,
|
'voucher': voucher.code,
|
||||||
'number': (voucher.min_usages - voucher.redeemed),
|
'number': voucher.min_usages_remaining,
|
||||||
})
|
})
|
||||||
|
|
||||||
# Check prices
|
# Check prices
|
||||||
|
|||||||
@@ -411,10 +411,10 @@
|
|||||||
{% if event.presale_is_running and options > 0 %}
|
{% if event.presale_is_running and options > 0 %}
|
||||||
<div class="row checkout-button-row">
|
<div class="row checkout-button-row">
|
||||||
<div class="col-md-4 col-md-offset-8 col-xs-12 text-center">
|
<div class="col-md-4 col-md-offset-8 col-xs-12 text-center">
|
||||||
{% if voucher.min_usages > 1 %}
|
{% if voucher.min_usages_remaining > 1 %}
|
||||||
<p class="text-muted">
|
<p class="text-muted">
|
||||||
<small>
|
<small>
|
||||||
{% blocktrans trimmed with number=voucher.min_usages %}
|
{% blocktrans trimmed with number=voucher.min_usages_remaining %}
|
||||||
You need to select at least {{ number }} products.
|
You need to select at least {{ number }} products.
|
||||||
{% endblocktrans %}
|
{% endblocktrans %}
|
||||||
</small>
|
</small>
|
||||||
|
|||||||
Reference in New Issue
Block a user