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 %}