Skip to content
Snippets Groups Projects
Commit 9113fe22 authored by Tom Teichler's avatar Tom Teichler :beers:
Browse files

Invalidate voucher and fix creation of user and person

parent 843abf64
No related branches found
No related tags found
1 merge request!1Reformat and cleanup
Pipeline #55884 failed
......@@ -256,7 +256,7 @@ class RegisterEventContactDetails(ExtensibleForm):
Fieldset(
_("Personal data"),
Row("first_name", "additional_name", "last_name"),
Row("date_of_birth", "sex"),
Row("date_of_birth", "place_of_birth", "sex"),
),
Fieldset(
_("Address data"),
......@@ -265,7 +265,7 @@ class RegisterEventContactDetails(ExtensibleForm):
),
Fieldset(
_("Contact details"),
Row("mobile_number", "email"),
Row("mobile_number", "phone_number", "email"),
),
Fieldset(
_("School details"),
......@@ -282,6 +282,7 @@ class RegisterEventContactDetails(ExtensibleForm):
label=_("Additional names"),
help_text=_("Please enter any additional names."),
required=False,
disabled=True,
)
last_name = forms.CharField(
......@@ -315,10 +316,20 @@ class RegisterEventContactDetails(ExtensibleForm):
),
)
phone_number = PhoneNumberField(
label=_("Phone number"),
required=False,
)
date_of_birth = forms.DateField(
label=_("Date of birth"),
)
place_of_birth = forms.CharField(
label=_("Place of birth"),
required=False,
)
sex = forms.ChoiceField(
label=_("Sex"),
help_text=_(
......@@ -378,7 +389,8 @@ class RegisterEventAdditional(ExtensibleForm):
for field in event.linked_group.additional_fields.all():
field_instance = getattr(fields, field.field_type)(
required=False,
required=field.required,
help_text=field.help_text,
)
self.fields[field.title] = field_instance
node = Fieldset(f"{field.title}", f"{field.title}")
......
......@@ -495,7 +495,7 @@ class RegisterEventWizardView(SessionWizardView):
event = Event.objects.get(id=self.kwargs["pk"])
cleaned_data_email = self.get_cleaned_data_for_step("email")
cleaned_data_contact_details = self.get_cleaned_data_for_step("cotact_details")
cleaned_data_contact_details = self.get_cleaned_data_for_step("contact_details")
cleaned_data_guardians = self.get_cleaned_data_for_step("guardians")
cleaned_data_register = self.get_cleaned_data_for_step("register")
cleaned_data_additional = self.get_cleaned_data_for_step("additional")
......@@ -517,33 +517,26 @@ class RegisterEventWizardView(SessionWizardView):
)
user.set_password(cleaned_data_register["password1"])
user.save()
# Create Person
person = Person.objects.create(
user=user,
email=cleaned_data_contact_details["email"],
short_name=cleaned_data_contact_details["short_name"],
first_name=cleaned_data_contact_details["first_name"],
additional_name=cleaned_data_contact_details["additional_name"],
last_name=cleaned_data_contact_details["last_name"],
street=cleaned_data_contact_details["street"],
housenumber=cleaned_data_contact_details["housenumber"],
postal_code=cleaned_data_contact_details["postal_code"],
place=cleaned_data_contact_details["place"],
mobile_number=cleaned_data_contact_details["mobile_number"],
phone_number=cleaned_data_contact_details["phone_number"],
date_of_birth=cleaned_data_contact_details["date_of_birth"],
place_of_birth=cleaned_data_contact_details["place_of_birth"],
sex=cleaned_data_contact_details["sex"],
photo=cleaned_data_contact_details["photo"],
description=cleaned_data_contact_details["description"],
)
else:
user = self.request.user
person = Person.objects.get_or_create(
user=user,
defaults={
"email": cleaned_data_contact_details["email"],
"first_name": cleaned_data_contact_details["first_name"],
"additional_name": cleaned_data_contact_details["additional_name"],
"last_name": cleaned_data_contact_details["last_name"],
"phone_number": cleaned_data_contact_details["phone_number"],
"place_of_birth": cleaned_data_contact_details["place_of_birth"],
}
)
if (
"school" in cleaned_data_contact_details
or "school_class" in cleaned_data_contact_details
or "school_place" in cleaned_data_contact_details
or "mobile" in cleaned_data_contact_details
or "mobile_number" in cleaned_data_contact_details
or "sex" in cleaned_data_contact_details
or "date_of_birth" in cleaned_data_contact_details
):
......@@ -567,6 +560,7 @@ class RegisterEventWizardView(SessionWizardView):
person.street = cleaned_data_contact_details["street"]
person.postal_code = cleaned_data_contact_details["postal_code"]
person.place = cleaned_data_contact_details["place"]
person.housenumber = cleaned_data_contact_details["housenumber"],
person.save()
......@@ -615,10 +609,13 @@ class RegisterEventWizardView(SessionWizardView):
registration.save()
if cleaned_data_financial["voucher_code"] != "":
voucher = Voucher.objects.get(code=cleaned_data_financial["voucher_code"])
if voucher:
vouchers = Voucher.objects.filter(person=person, event=event, used=False, code=cleaned_data_financial["voucher_code"])
if vouchers:
voucher = vouchers.first()
registration.voucher = voucher
voucher.used = True
with reversion.create_revision():
voucher.save()
registration.save()
else:
messages.error(self.request, _("You entered an invalid voucher code!"))
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment