44 lines
1.5 KiB
Python
44 lines
1.5 KiB
Python
# -*- coding: utf-8 -*-
|
|
import logging
|
|
from django import forms
|
|
from django.utils.translation import ugettext
|
|
|
|
from .models import Registration
|
|
|
|
logger = logging.getLogger(__name__)
|
|
|
|
|
|
class RegistrationForm(forms.ModelForm):
|
|
class Meta:
|
|
model = Registration
|
|
exclude = ['event', 'created_at', 'privacy_policy', 'purge_at', 'answered']
|
|
widgets = {
|
|
'emergency_contact': forms.Textarea(attrs={'rows': 4}),
|
|
'experience': forms.Textarea(attrs={'rows': 5}),
|
|
'note': forms.Textarea(attrs={'rows': 5}),
|
|
}
|
|
|
|
def clean_experience(self):
|
|
val = self.cleaned_data.get('experience')
|
|
if val == '':
|
|
need_experience = True
|
|
if self.instance.event.sport == 'W':
|
|
need_experience = False
|
|
if need_experience:
|
|
raise forms.ValidationError(
|
|
ugettext(u'Die Tourenleiter*innen brauchen ein paar Angaben,'
|
|
u' was du bereits kannst oder wie fit du bist.'),
|
|
code='need_experience',
|
|
)
|
|
return val
|
|
|
|
def clean_privacy_policy_accepted(self):
|
|
val = self.cleaned_data.get('privacy_policy_accepted')
|
|
if not val and self.instance.privacy_policy:
|
|
raise forms.ValidationError(
|
|
ugettext(u'Wir müssen deine Daten leider speichern können,'
|
|
u' damit wir wissen, dass du teilnehmen möchtest.'),
|
|
code='privacy_policy_not_accepted',
|
|
)
|
|
return val
|