Changes in checks

This commit is contained in:
Raphael Michel
2019-07-06 15:21:32 +02:00
parent fcc4170a4a
commit 435d90474a
3 changed files with 5 additions and 9 deletions
+2 -3
View File
@@ -173,10 +173,9 @@ def filter_available(qs, channel='web', voucher=None, allow_addons=False):
vouchq = Q(hide_without_voucher=False)
if voucher:
if voucher.item_id:
vouchq |= Q(pk=voucher.item_id)
qs = qs.filter(pk=voucher.item_id)
vouchq = Q(pk=voucher.item_id)
elif voucher.quota_id:
qs = qs.filter(quotas__in=[voucher.quota_id])
vouchq = Q(quotas__in=[voucher.quota_id])
return qs.filter(vouchq)
+1 -4
View File
@@ -225,10 +225,7 @@ class CartManager:
def _check_item_constraints(self, op):
if isinstance(op, self.AddOperation) or isinstance(op, self.ExtendOperation):
if op.item.require_voucher and op.voucher is None:
raise CartError(error_messages['voucher_required'])
if op.item.hide_without_voucher and (op.voucher is None or op.voucher.item is None or op.voucher.item.pk != op.item.pk):
if (op.item.require_voucher or op.item.hide_without_voucher) and op.voucher is None:
raise CartError(error_messages['voucher_required'])
if not op.item.is_available() or (op.variation and not op.variation.active):
+2 -2
View File
@@ -505,9 +505,9 @@ def _check_positions(event: Event, now_dt: datetime, positions: List[CartPositio
err = err or error_messages['voucher_required']
break
if cp.item.hide_without_voucher and (cp.voucher is None or cp.voucher.item is None
or cp.voucher.item.pk != cp.item.pk):
if cp.item.hide_without_voucher and not cp.voucher.applies_to(cp.item.pk, cp.variation.pk):
delete(cp)
cp.delete()
err = error_messages['voucher_required']
break