UPD: trainer email address is now optional.

This commit is contained in:
2018-05-28 12:26:57 +02:00
parent 24e2a2effc
commit 12760f48cd
4 changed files with 74 additions and 24 deletions

View File

@@ -2,6 +2,7 @@
import calendar
import datetime
import logging
import re
from babel.dates import format_date
from django import forms
from django.apps import apps
@@ -517,7 +518,9 @@ class TrainerForm(EventCreateForm):
max_length=config.TRAINER_NAME_MAX_LENGTH)
trainer_familyname = forms.CharField(label=_(u'Familienname'),
max_length=config.TRAINER_NAME_MAX_LENGTH)
trainer_email = forms.EmailField(label=_(u'E-Mail-Adresse'))
trainer_email = forms.EmailField(required=False,
label=_(u'E-Mail-Adresse'),
)
trainer_phone = forms.CharField(required=False,
max_length=config.PHONE_NUMBER_MAX_LENGTH,
label=_(u'Telefonnummer'),
@@ -577,6 +580,20 @@ class TrainerForm(EventCreateForm):
self.fields['trainer_familyname'].initial = _(u'Kleineheismann')
self.fields['trainer_email'].initial = _(u'heinzel@alpenverein-karlsruhe.de')
def clean_trainer_phone(self):
return re.sub(r'[-.]', ' ', self.cleaned_data['trainer_phone'])
def clean(self):
super(TrainerForm, self).clean()
trainer_email = self.cleaned_data.get('trainer_email', None)
trainer_phone = self.cleaned_data.get('trainer_phone', None)
if not trainer_email and not trainer_phone:
error_msg = _(u'Bitte E-Mail-Adresse und/oder Telefonnummer angeben.')
self.add_error('trainer_email', error_msg)
self.add_error('trainer_phone', error_msg)
raise forms.ValidationError(error_msg)
return self.cleaned_data
class RegistrationForm(EventCreateForm):
_form_title = _(u'Teilnehmer / Anmeldung')
@@ -625,9 +642,17 @@ class RegistrationForm(EventCreateForm):
def get_initial_for_field(self, field, field_name):
value = super(RegistrationForm, self).get_initial_for_field(field, field_name)
if field_name == 'registration_howto' and value is not None:
trainer_fullname = u'%s %s' % (self._session_data.get('trainer_firstname'),
self._session_data.get('trainer_familyname'))
value = value % {'name': trainer_fullname, 'emailaddr': self._session_data.get('trainer_email')}
trainer_firstname = self._session_data.get('trainer_firstname')
trainer_familyname = self._session_data.get('trainer_familyname')
trainer_email = self._session_data.get('trainer_email', None)
trainer_phone = self._session_data.get('trainer_phone', None)
if trainer_email:
trainer_contact = u'%s %s (%s)' % (trainer_firstname, trainer_familyname, trainer_email)
elif trainer_phone:
trainer_contact = u'%s %s (%s)' % (trainer_firstname, trainer_familyname, trainer_phone)
else:
trainer_contact = u'%s %s' % (trainer_firstname, trainer_familyname)
value %= {'trainer_contact': trainer_contact}
elif field_name in ('min_participants', 'max_participants') and value is None:
trainer_2 = bool(self._session_data.get('trainer_2_fullname', False))
trainer_3 = bool(self._session_data.get('trainer_3_fullname', False))