53 lines
1.9 KiB
Python
53 lines
1.9 KiB
Python
from django import forms
|
|
from django.core.exceptions import ValidationError
|
|
from dynamic_preferences.registries import global_preferences_registry
|
|
from phonenumber_field.formfields import PhoneNumberField
|
|
from phonenumber_field.validators import validate_international_phonenumber
|
|
|
|
from .models import Helper
|
|
|
|
global_preferences = global_preferences_registry.manager()
|
|
|
|
|
|
def text_input():
|
|
return forms.TextInput(attrs={"class": "input"})
|
|
|
|
|
|
def validate_allowed_countries(value):
|
|
if not f"{value.country_code}" in global_preferences["helper__allowed_countries"]:
|
|
raise ValidationError(
|
|
"Vorwahl nicht erlaubt, bitte wende dich an den Infopoint oder schicke uns eine Mail"
|
|
)
|
|
|
|
return value
|
|
|
|
|
|
class RegisterForm(forms.Form):
|
|
name = forms.CharField(
|
|
max_length=Helper.name.field.max_length, label="Name", widget=text_input()
|
|
)
|
|
phone = PhoneNumberField(
|
|
max_length=Helper.phone.field.max_length,
|
|
label="Handynummer für Benachrichtigungen",
|
|
help_text="Wir nutzen deine Handynummer, um dir Benachrichtigungen zu Schichten zu schicken. Wir löschen deine Daten 7 Tage nach dem Festival.",
|
|
widget=text_input(),
|
|
validators=[
|
|
validate_international_phonenumber,
|
|
validate_allowed_countries,
|
|
],
|
|
)
|
|
okf = forms.BooleanField(label="Ich bin damit einverstanden, SMS zu erhalten.")
|
|
|
|
|
|
class AstaForm(forms.Form):
|
|
confirm = forms.BooleanField(
|
|
required=True,
|
|
label="Ich habe mich beim AStA als temporäres oder reguläres Mitglied (keine Fördermitgliedschaft!) angemeldet.",
|
|
help_text="Aus Versicherungsgründen müssen Helfer*innen ordentliche Mitglieder des AStA Bamberg e. V. sein. Die Mitgliedschaft ist kostenlos.",
|
|
)
|
|
|
|
|
|
# placeholder form for simple submit button use cases so we get csrf protection
|
|
class EmptyForm(forms.Form):
|
|
pass
|