Memberships: Check valid_from/valid_until for parallel usage (#3975)

This commit is contained in:
Raphael Michel
2024-03-15 16:40:41 +01:00
committed by GitHub
parent b6221ab6d9
commit 9f794290dc
5 changed files with 272 additions and 16 deletions

View File

@@ -445,10 +445,11 @@ class MembershipStep(CartMixin, TemplateFlowStep):
f.position.used_membership = f.cleaned_data['membership']
try:
validate_memberships_in_order(self.cart_customer, self.positions, self.request.event, lock=False, testmode=self.request.event.testmode)
validate_memberships_in_order(self.cart_customer, self.positions, self.request.event, lock=False, testmode=self.request.event.testmode,
valid_from_not_chosen=True)
except ValidationError as e:
messages.error(self.request, e.message)
self.render()
return self.render()
else:
for f in self.forms:
f.position.save(update_fields=['used_membership'])
@@ -934,6 +935,13 @@ class QuestionsStep(QuestionsViewMixin, CartMixin, TemplateFlowStep):
'changed accordingly.'))
return redirect_to_url(self.get_next_url(request) + '?open_cart=true')
try:
validate_memberships_in_order(self.cart_customer, self.positions, self.request.event, lock=False,
testmode=self.request.event.testmode, valid_from_not_chosen=False)
except ValidationError as e:
messages.error(self.request, e.message)
return self.render()
return redirect_to_url(self.get_next_url(request))
def is_completed(self, request, warn=False):