from django.db import models
from django.forms import ModelForm, DateField, ChoiceField, RadioSelect, BooleanField
from django.contrib.admin.widgets import AdminDateWidget
from django.utils.html import format_html
from .models import Project, Volunteer, Extern, IFG, Library, TYPE_CHOICES,\
HonoraryCertificate, Travel, Email, Literature, List,\
BusinessCard
from .settings import DATAPROTECTION, FOERDERRICHTLINIEN, NUTZUNGSBEDINGUNGEN
class ProjectForm(ModelForm):
# start = DateField(widget=AdminDateWidget())
class Meta:
model = Project
exclude = ('pid', 'granted', 'granted_date', 'realname', 'email', 'project_end_mail', 'survey_mail_send')
widgets = {'start': AdminDateWidget(),
'end': AdminDateWidget(),}
class ExternForm(ModelForm):
choice = ChoiceField(choices=TYPE_CHOICES.items(), widget=RadioSelect,
label='Was möchtest Du beantragen?')
check = BooleanField(required=True,
label=format_html("Ich stimme den Datenschutzbestimmungen und den Förderrichtlinen zu",
DATAPROTECTION, FOERDERRICHTLINIEN))
class Meta:
model = Extern
exclude = ('granted', 'granted_date', 'survey_mail_send')
INTERN_CHOICES = [('PRO', 'Projektsteckbrief'),
('HON', 'Ehrenamtsbescheinigung, Akkreditierung oder Redaktionsbestätigung'),
('TRAV', 'Reisekostenerstattung')]
class InternForm(ModelForm):
choice = ChoiceField(choices = INTERN_CHOICES, widget=RadioSelect,
label = 'Was möchtest Du eingeben?')
class Meta:
model = Volunteer
exclude = ('granted', 'granted_date', 'survey_mail_send')
class TravelForm(ModelForm):
class Meta:
model = Travel
exclude = ('granted', 'granted_date', 'survey_mail_send', 'realname', 'email',)
class LibraryForm(ModelForm):
class Meta:
model = Library
exclude = ('realname', 'email', 'username', 'type', 'granted', 'granted_date', 'survey_mail_send')
class IFGForm(ModelForm):
class Meta:
model = IFG
exclude = ('realname', 'email', 'username', 'granted', 'granted_date', 'survey_mail_send')
class HonoraryCertificateForm(ModelForm):
class Meta:
model = HonoraryCertificate
fields = ['request_url', 'project']
# exclude = ('realname', 'email', 'username', 'granted', 'granted_date', 'survey_mail_send')
class LiteratureForm(ModelForm):
class Meta:
model = Literature
fields = ['cost', 'notes', 'info', 'source']
class EmailForm(ModelForm):
# TODO: add some javascript to show/hide other-field
check = BooleanField(required=True,
label=format_html("Ich stimme den Nutzungsbedingungen zu",
NUTZUNGSBEDINGUNGEN))
class Meta:
model = Email
fields = ['domain', 'address', 'other']
# exclude = ('realname', 'email', 'username', 'granted', 'granted_date', 'survey_mail_send')
class BusinessCardForm(ModelForm):
class Meta:
model = BusinessCard
fields = ['project', 'data', 'variant', 'sent_to']
class ListForm(ModelForm):
class Meta:
model = List
fields = ['domain', 'address']