From 7807dad40052471b59ff46dcf696c38ea4e1d80b Mon Sep 17 00:00:00 2001 From: jtaubert Date: Fri, 20 Dec 2024 15:36:13 +0100 Subject: [PATCH] added participation acceptance field --- dav_events/models/participant.py | 4 ++++ dav_registration/forms.py | 12 +++++++++++- dav_registration/models.py | 2 ++ .../dav_registration/registration_form.html | 17 +++++++++++++++++ 4 files changed, 34 insertions(+), 1 deletion(-) diff --git a/dav_events/models/participant.py b/dav_events/models/participant.py index d664c35..b5b7d41 100644 --- a/dav_events/models/participant.py +++ b/dav_events/models/participant.py @@ -56,6 +56,10 @@ class AbstractParticipant(models.Model): privacy_policy_accepted = models.BooleanField(default=False, verbose_name=_('Einwilligung zur Datenspeicherung')) + participation_conditions_accepted = models.BooleanField(default=False, + verbose_name=_('Einwilligung der Teilnahmebedingungen')) + + paid = models.BooleanField('Teilnehmerbeitrag bezahlt', default=False) purge_at = models.DateTimeField() diff --git a/dav_registration/forms.py b/dav_registration/forms.py index 5b907b9..fd4ecee 100644 --- a/dav_registration/forms.py +++ b/dav_registration/forms.py @@ -51,7 +51,7 @@ class RegistrationForm(forms.ModelForm): ' Das finden wir gut,' ' aber bitte melde dich besser mal per E-Mail bei uns.'), params={'max_age': max_age}, - code='to_old', + code='too_old', ) return val @@ -79,6 +79,16 @@ class RegistrationForm(forms.ModelForm): ) return val + def clean_participation_conditions_accepted(self): + val = self.cleaned_data.get('participation_conditions_accepted') + if not val: + raise forms.ValidationError( + ugettext('Um an dieser Veranstaltung teilnehmen zu können,' + ' musst du die Teilnahmebedingungen akzeptieren.'), + code='participation_conditions_not_accepted', + ) + return val + def clean(self): super().clean() dav_member = self.cleaned_data.get('dav_member') diff --git a/dav_registration/models.py b/dav_registration/models.py index dd6d111..385650c 100644 --- a/dav_registration/models.py +++ b/dav_registration/models.py @@ -84,6 +84,8 @@ class Registration(models.Model): verbose_name=_('Einwilligung zur Datenspeicherung')) purge_at = models.DateTimeField(_('Zeitpunkt der Datenlöschung')) + participation_conditions_accepted = models.BooleanField(default=False, verbose_name=_('Einwilligung der Teilnahmebedingungen')) + answered_obsolete = models.BooleanField(default=False, verbose_name=_('Durch Tourleitung beantwortet')) def approx_age(self): diff --git a/dav_registration/templates/dav_registration/registration_form.html b/dav_registration/templates/dav_registration/registration_form.html index 0fddd3e..2873451 100644 --- a/dav_registration/templates/dav_registration/registration_form.html +++ b/dav_registration/templates/dav_registration/registration_form.html @@ -182,6 +182,23 @@ Der/die Tourenleiter/in wird dir also persönlich per E-Mail zu- oder absagen.

+ {% if form.participation_conditions_accepted.errors %} +
+ {% endif %} +
+ +
+ {% if form.participation_conditions_accepted.errors %} +
+ {% for error in form.participation_conditions_accepted.errors %} +

{{ error }}

+ {% endfor %} +
+
+ {% endif %}