Source code for apps.home.forms
"""
Copyright (c) 2019 - present AppSeed.us
"""
from django import forms
from django.core.validators import validate_email
from django.core.exceptions import ValidationError
import re
from .widgets import MultiEmailWidget
# src:
# https://github.com/fle/django-multi-email-field/blob/7dcc5f4e0aee1c935abdbb94aa4edff8521938d7/multi_email_field/forms.py
[docs]class MultiEmailField(forms.Field):
message = 'Enter valid email addresses.'
code = 'invalid'
widget = MultiEmailWidget
[docs] def to_python(self, value):
"""Normalize data to a list of strings."""
# Return None if no input was given.
if not value:
return []
return [v.strip() for v in re.split(';|,', value) if v != ""]
[docs] def validate(self, value):
""" Check if value consists only of valid emails. """
# Use the parent's handling of required fields, etc.
super(MultiEmailField, self).validate(value)
try:
for email in value:
validate_email(email)
except ValidationError:
raise ValidationError(self.message, code=self.code)
[docs]class ContactForm(forms.Form):
empfänger = MultiEmailField(
widget=forms.TextInput(
attrs={
"placeholder": "Empfänger",
"class": "form-control",
'autocomplete': 'off'
}
),required=True)
cc = MultiEmailField(
widget=forms.TextInput(
attrs={
"placeholder": "Cc",
"class": "form-control",
'autocomplete': 'off'
}
),
required=False)
bcc = MultiEmailField(
widget=forms.TextInput(
attrs={
"placeholder": "Bcc",
"class": "form-control",
'autocomplete': 'off'
}
),
required=False)
betreff = forms.CharField(
widget=forms.TextInput(
attrs={
"placeholder": "Betreff",
"class": "form-control"
}
),
required=True)
nachricht = forms.CharField(
widget=forms.Textarea(
attrs={
"placeholder": "Nachricht. Bitte sei immer freundlich!",
"class": "form-control"
}
),
required=True)
[docs]class EditLinkForm(forms.Form):
link = forms.CharField(
widget=forms.TextInput(
attrs={
"placeholder": "Link zur Veranstaltung",
"class": "form-control"
}
),required=False)