From 9d68e5ddd64dbfcd483d7b3d886e9af53baa5f4d Mon Sep 17 00:00:00 2001 From: Tom Teichler <tom.teichler@teckids.org> Date: Sat, 7 Jan 2023 23:44:33 +0100 Subject: [PATCH] Fix calculation of individual cost and voucher prefilling --- aleksis/apps/paweljong/models.py | 2 +- aleksis/apps/paweljong/views.py | 15 ++++++++------- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/aleksis/apps/paweljong/models.py b/aleksis/apps/paweljong/models.py index eda36d6..8121c65 100644 --- a/aleksis/apps/paweljong/models.py +++ b/aleksis/apps/paweljong/models.py @@ -194,7 +194,7 @@ class Event(ExtensibleModel): def individual_cost(self, request=None): if request and request.user.is_authenticated and Voucher.objects.filter(event=self, person=request.user.person, used=False).exists(): voucher = Voucher.objects.get(event=self, person=request.user.person, used=False) - individual_cost = voucher.discount * self.cost / 100 + individual_cost = (100 - voucher.discount) * self.cost / 100 return individual_cost else: return self.cost diff --git a/aleksis/apps/paweljong/views.py b/aleksis/apps/paweljong/views.py index a1d84e0..e077341 100644 --- a/aleksis/apps/paweljong/views.py +++ b/aleksis/apps/paweljong/views.py @@ -541,13 +541,14 @@ class RegisterEventWizardView(SessionWizardView): cleaned_data_consent = self.get_cleaned_data_for_step("consent") if cleaned_data_financial["voucher_code"]: - vouchers = Voucher.objects.filter( - person=person, event=event, used=False, code=cleaned_data_financial["voucher_code"] - ) - if vouchers: - voucher = vouchers.first() - else: - messages.error(self.request, _("You entered an invalid voucher code!")) + if getattr(self.request.user, "person", None): + vouchers = Voucher.objects.filter( + person=self.request.user.person, event=event, used=False, code=cleaned_data_financial["voucher_code"] + ) + if vouchers: + voucher = vouchers.first() + else: + messages.error(self.request, _("You entered an invalid voucher code!")) # Create email address if cleaned_data_email: -- GitLab