Fix #9 Registrations: Add support for non members
All checks were successful
buildbot/tox Build done.

This commit is contained in:
2020-10-15 17:44:12 +02:00
parent 28a35d98d2
commit 63026e429b
16 changed files with 315 additions and 29 deletions

View File

@@ -2,6 +2,7 @@
from __future__ import unicode_literals
import datetime
import logging
from django.core.exceptions import ValidationError
from django.db import models
from django.urls import reverse
from django.utils import timezone
@@ -39,8 +40,10 @@ class Registration(models.Model):
phone_number = models.CharField(max_length=254,
verbose_name=_('Telefonnummer'),
help_text=_('Idealerweise eine Mobilfunk-Nummer'))
dav_member = models.BooleanField(default=True,
verbose_name=_('DAV Mitglied'))
dav_number = models.CharField(max_length=62,
validators=[DAVNumberValidator],
blank=True, validators=[DAVNumberValidator],
verbose_name=_('DAV Mitgliedsnummer'),
help_text='%s<br /> %s %s' % (
_('Deine Mitgliedsnummer findest du unter dem Strichcode'
@@ -109,7 +112,7 @@ class Registration(models.Model):
text = """{fullname}
{address}, {postal_code} {city}
DAV Mitgliedsnummer: {dav_number}
DAV Mitglied: {dav_info}
Erfahrung:
{experience}
@@ -117,16 +120,25 @@ Erfahrung:
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_number=self.dav_number,
dav_info=dav_info,
experience=self.experience,
note=self.note,
)
def clean(self):
if self.dav_member and not self.dav_number:
raise ValidationError({'dav_number': _('Wenn du DAV Mitglied bist, brauchen wir deine Mitgliedsnummer.')})
def save(self, **kwargs):
creating = False
if not self.id:
@@ -135,6 +147,7 @@ Anmerkung:
if not self.purge_at and self.event:
self.purge_at = self.__class__.calc_purge_at(self.event)
self.full_clean()
super(Registration, self).save(**kwargs)
if creating: