This repository has been archived on 2026-03-30. You can view files and clone it, but cannot push or open issues or pull requests.
RepApp/rc_hip/repapp/forms.py

99 lines
3.2 KiB
Python
Raw Normal View History

2023-04-24 16:02:43 +00:00
"""
Django forms for RepApp.
"""
2023-04-19 19:28:59 +00:00
from django import forms
2023-04-23 10:22:23 +00:00
from django.core.exceptions import ValidationError
class HoneypotField(forms.BooleanField):
2023-04-24 19:03:56 +00:00
"""
Simple honeypot field.
"""
2023-04-23 10:22:23 +00:00
default_widget = forms.CheckboxInput(
{'style': 'display:none !important;', 'tabindex': '-1', 'autocomplete': 'off'})
def __init__(self, *args, **kwargs):
kwargs.setdefault('widget', HoneypotField.default_widget)
kwargs['required'] = False
super().__init__(*args, **kwargs)
def clean(self, value):
if cleaned_value := super().clean(value):
raise ValidationError('')
else:
return cleaned_value
2023-04-19 19:28:59 +00:00
class RegisterDevice(forms.Form):
2023-04-24 19:03:56 +00:00
"""
Form for registering a device for a repair cafe.
"""
2023-04-19 19:28:59 +00:00
mail = forms.EmailField(
label="eMail Adresse",
help_text="Diese eMail-Adresse wird für Aktualisierungen"
" zur Anfrage verwendet.",
max_length=200)
device = forms.CharField(
2023-04-21 16:24:31 +00:00
label="Art des Geräts",
help_text="z.B. Küchenmaschine, Smartphone, Stehlampe, Drucker, ...",
max_length=200
)
manufacturer = forms.CharField(
label="Hersteller & Modell/Typ",
2023-04-19 19:28:59 +00:00
max_length=200
)
error = forms.CharField(
label="Fehlerbeschreibung",
help_text="Beschreiben Sie hier das Problem ihres Gerätes.",
widget=forms.Textarea
)
2023-04-21 16:24:31 +00:00
device_picture = forms.FileField(
label="Foto vom Gerät ", required=False
)
type_plate_picture = forms.FileField(
label="Foto vom Typenschild ", required=False
)
2023-04-19 19:28:59 +00:00
follow_up = forms.BooleanField(
label="Folgetermin",
2023-04-24 19:03:56 +00:00
help_text="Kreuzen Sie diese Kästchen an wenn sie mit diesem Gerät "
"bereits bei einem Repair-Café Termin waren.",
2023-04-19 19:28:59 +00:00
required=False
)
2023-04-21 16:24:31 +00:00
confirm_repair = forms.BooleanField(
label="Informationen zur Reparaturabwicklung",
help_text="Ich bin mit den <a href="
"\"https://www.repaircafe-hilpoltstein.de/fileadmin/repaircafe-hilpoltstein/images/"
"repaircafe-hilpoltstein.de/docs/Infos_Reparatur-Abwicklung_v2_2023-02.pdf\">"
"Allgemeinen Bedingungen zur Reparaturabwicklung</a> einverstanden.",
required=True
)
confirm_data = forms.BooleanField(
label="Datenschutz",
help_text=" Ich bin mit der Erhebung, Verarbeitung und Speicherung meiner Daten für "
"die Bearbeitung meiner Anfrage gemäß der "
"<a href=\"https://www.repaircafe-hilpoltstein.de/impressum#c1375\">"
"Datenschutzerklärung</a> einverstanden.",
required=True
)
2023-04-23 10:22:23 +00:00
accept_agb = HoneypotField(label="")
2023-04-19 19:28:59 +00:00
class RegisterGuest(forms.Form):
2023-04-24 19:03:56 +00:00
"""
Form for registering new guests.
"""
2023-04-19 19:28:59 +00:00
name = forms.CharField(
label="Name",
max_length=200
)
phone = forms.CharField(
label="Telefonnummer",
max_length=200,
help_text="Diese Telefonnummer wird für Rückfragen verwendet."
)
residence = forms.CharField(
label="Wohnort",
max_length=200
)
2023-04-23 10:22:23 +00:00
accept_agb = HoneypotField(label="")