+
{% bootstrap_field form.dav_number %}
+
+ {% bootstrap_field form.dav_member %}
+
{% bootstrap_field form.emergency_contact %}
diff --git a/dav_event_office/templates/dav_event_office/participant_list.html b/dav_event_office/templates/dav_event_office/participant_list.html
index 02fc370..f747551 100644
--- a/dav_event_office/templates/dav_event_office/participant_list.html
+++ b/dav_event_office/templates/dav_event_office/participant_list.html
@@ -55,7 +55,11 @@
{{ participant.personal_names }}
- {{ participant.dav_number }}
+ {% if participant.dav_member %}
+ {{ participant.dav_number|default:'Fehler! heinzel Bescheid geben!' }}
+ {% else %}
+ {% trans 'Nicht Mitglied' %}
+ {% endif %}
|
diff --git a/dav_events/migrations/0034_auto_20201015_1738.py b/dav_events/migrations/0034_auto_20201015_1738.py
new file mode 100644
index 0000000..b530157
--- /dev/null
+++ b/dav_events/migrations/0034_auto_20201015_1738.py
@@ -0,0 +1,26 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.11.29 on 2020-10-15 15:38
+from __future__ import unicode_literals
+
+import django.core.validators
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('dav_events', '0033_auto_20200925_1543'),
+ ]
+
+ operations = [
+ migrations.AddField(
+ model_name='participant',
+ name='dav_member',
+ field=models.BooleanField(default=True, help_text='In Ausnahmefällen nehmen wir auch Nichtmitglieder mit.', verbose_name='DAV Mitglied'),
+ ),
+ migrations.AlterField(
+ model_name='participant',
+ name='dav_number',
+ field=models.CharField(blank=True, max_length=62, validators=[django.core.validators.RegexValidator('^([0-9]{1,10}/[0-9]{2,10}/)?[0-9]{1,10}(\\*[0-9]{1,10})?(\\*[0-9]{4}\\*[0-9]{4})?([* ][0-9]{8})?$', 'Ungültiges Format.')], verbose_name='DAV Mitgliedsnummer'),
+ ),
+ ]
diff --git a/dav_events/models/participant.py b/dav_events/models/participant.py
index 4171c2d..f42ddd4 100644
--- a/dav_events/models/participant.py
+++ b/dav_events/models/participant.py
@@ -1,6 +1,7 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
import datetime
+from django.core.exceptions import ValidationError
from django.db import models
from django.utils import timezone
from django.utils.encoding import python_2_unicode_compatible
@@ -32,8 +33,11 @@ class Participant(models.Model):
email_address = models.EmailField(verbose_name=_('E-Mail-Adresse'))
phone_number = models.CharField(max_length=254,
verbose_name=_('Telefonnummer'))
+ dav_member = models.BooleanField(default=True,
+ verbose_name=_('DAV Mitglied'),
+ help_text=_('In Ausnahmefällen nehmen wir auch Nichtmitglieder mit.'))
dav_number = models.CharField(max_length=62,
- validators=[DAVNumberValidator],
+ blank=True, validators=[DAVNumberValidator],
verbose_name=_('DAV Mitgliedsnummer'))
emergency_contact = models.TextField(blank=True,
verbose_name=_('Notfall-Kontakt'),
@@ -69,25 +73,38 @@ class Participant(models.Model):
text = """{fullname}
{address}, {postal_code} {city}
+ DAV Mitglied: {dav_info}
+
Notfallkontakt:
{emergency_contact}
Anmerkung:
{note}
"""
+ if not self.dav_member:
+ dav_info = _('Nein')
+ else:
+ dav_info = self.dav_number
+
return text.format(
fullname=self.get_full_name(),
address=self.address,
postal_code=self.postal_code,
city=self.city,
+ dav_info=dav_info,
emergency_contact=self.emergency_contact,
note=self.note,
)
+ def clean(self):
+ if self.dav_member and not self.dav_number:
+ raise ValidationError({'dav_number': _('Bei DAV Mitgliedern brauchen wir die Mitgliedsnummer.')})
+
def save(self, **kwargs):
if not self.purge_at and self.event:
self.purge_at = self.__class__.calc_purge_at(self.event)
+ self.full_clean()
super(Participant, self).save(**kwargs)
@staticmethod
diff --git a/dav_events/templates/dav_events/event_registrations.html b/dav_events/templates/dav_events/event_registrations.html
index fc63f20..c280dc6 100644
--- a/dav_events/templates/dav_events/event_registrations.html
+++ b/dav_events/templates/dav_events/event_registrations.html
@@ -223,11 +223,38 @@
+
+ {% bootstrap_icon 'question-sign' %}
+
{% trans 'Teilnehmer' %}
|