citavi_mapper/frontend/forms.py

207 lines
6.5 KiB
Python
Raw Normal View History

# -*- coding: utf-8 -*-
from django import forms
2014-12-03 09:59:44 +01:00
from frontend.models import Project, PersonGlobalIdentity, PresentationPerson, Presentation, PresentationEvent
from crispy_forms.helper import FormHelper
from crispy_forms.layout import Submit, Layout
2014-08-07 14:47:59 +02:00
class NewProjectForm(forms.ModelForm):
def __init__(self, *args, **kwargs):
2014-08-07 14:47:59 +02:00
super(NewProjectForm, self).__init__(*args, **kwargs)
self.helper = FormHelper()
2014-09-29 15:01:35 +02:00
self.helper.form_class = u'form-horizontal'
self.helper.label_class = u'col-lg-2'
self.helper.field_class = u'col-lg-4'
self.helper.form_method = u'post'
self.helper.layout = Layout(
2014-09-29 15:01:35 +02:00
u'name',
u'description',
Submit(u'send', u'Create', css_class=u'btn-default')
)
name = forms.CharField(
2014-09-29 15:01:35 +02:00
label=u"Name",
max_length=255,
required=True,
)
description = forms.CharField(
2014-09-29 15:01:35 +02:00
label=u"Description",
required=True,
)
class Meta:
model = Project
2014-09-29 15:01:35 +02:00
fields = [u'name', u'description']
class FileUploadForm(forms.Form):
def __init__(self, *args, **kwargs):
super(FileUploadForm, self).__init__(*args, **kwargs)
self.helper = FormHelper()
2014-09-29 15:01:35 +02:00
self.helper.form_class = u'form-horizontal'
self.helper.label_class = u'col-lg-2'
self.helper.field_class = u'col-lg-4'
self.helper.form_method = u'post'
self.helper.layout = Layout(
2014-09-29 15:01:35 +02:00
u'file',
Submit(u'send', u'Upload', css_class=u'btn-default')
)
file = forms.FileField()
class PersonMapForm(forms.Form):
""" Form containing the person mapping 'wizard'. """
def __init__(self, *args, **kwargs):
super(PersonMapForm, self).__init__(*args, **kwargs)
self.helper = FormHelper()
2014-09-29 15:01:35 +02:00
self.helper.form_class = u'form-horizontal'
self.helper.label_class = u'col-lg-2'
self.helper.field_class = u'col-lg-4'
self.helper.form_method = u'post'
self.helper.layout = Layout(
2014-09-29 15:01:35 +02:00
u'action',
u'global_identity',
u'preferred_identity',
2014-09-29 15:01:35 +02:00
Submit(u'skip', u'Skip', css_class=u'btn-default'),
Submit(u'save-continue', u'Save and continue', css_class=u'btn-default'),
)
def clean(self):
""" Make sure the submitted data is okay. """
cleaned_data = super(PersonMapForm, self).clean()
action = cleaned_data.get(u'action')
global_identity = cleaned_data.get(u'global_identity')
if action == u'existing' and not global_identity:
msg = u"Cannot map to non-existing global identity!"
self._errors["global_identity"] = self.error_class([msg])
return cleaned_data
2014-09-29 15:01:35 +02:00
action = forms.ChoiceField(choices=[(u'new', u'Create new global Identity'), (u'existing', u'Map to existing identity')], initial=u'new', widget=forms.RadioSelect())
global_identity = forms.ModelChoiceField(queryset=PersonGlobalIdentity.objects.all(), required=False)
preferred_identity = forms.BooleanField(initial=False, required=False)
2014-12-10 16:28:21 +01:00
""" FormHelper for the PresentationPersonForm"""
PresentationPersonFormHelper = FormHelper()
PresentationPersonFormHelper.form_tag = False
PresentationPersonFormHelper.label_class = u'col-lg-2'
PresentationPersonFormHelper.field_class = u'col-lg-4'
PresentationPersonFormHelper.layout = Layout(
u'given_name',
u'additional_name',
u'family_name',
u'hshmembership'
)
2014-11-26 10:20:46 +01:00
class PresentationPersonForm(forms.ModelForm):
""" Modelform for PresentationPerson """
def __init__(self, *args, **kwargs):
super(PresentationPersonForm, self).__init__(*args, **kwargs)
2014-12-10 16:28:21 +01:00
self.helper = PresentationPersonFormHelper
given_name = forms.CharField(
label=u"Vorname",
max_length=255,
required=True,
)
additional_name = forms.CharField(
label=u"Zweiter Vorname/Zusatz",
max_length=255,
required=False,
)
family_name = forms.CharField(
label=u"Nachname",
max_length=255,
required=True,
)
2014-12-10 16:28:21 +01:00
hshmembership = forms.TypedChoiceField(
choices=((u'yes', u'Ja'), (u'no', u'Nein'), (u'maybe', u'Maybe')),
initial=u'maybe',
required=True,
widget=forms.RadioSelect()
)
class Meta:
model = PresentationPerson
fields = [u'given_name', u'additional_name', u'family_name', u'hshmembership']
2014-12-10 16:28:21 +01:00
""" FormHelper for the PresentationEventForm"""
PresentationEventFormHelper = FormHelper()
PresentationEventFormHelper.form_tag = False
PresentationEventFormHelper.label_class = u'col-lg-2'
PresentationEventFormHelper.field_class = u'col-lg-4'
PresentationEventFormHelper.layout = Layout(
u'date',
u'name',
u'workshop',
u'place',
u'start_date',
u'end_date'
)
2014-12-03 09:59:44 +01:00
class PresentationEventForm(forms.ModelForm):
""" Form for the PresentationEventModel"""
def __init__(self, *args, **kwargs):
super(PresentationEventForm, self).__init__(*args, **kwargs)
2014-12-10 16:28:21 +01:00
self.helper = PresentationEventFormHelper
2014-12-03 09:59:44 +01:00
date = forms.DateField(
label=u"Datum",
required=True ,
2014-12-03 09:59:44 +01:00
)
name = forms.CharField(
label=u"Rahmen der Veranstaltung",
2014-12-03 09:59:44 +01:00
max_length=255,
required=True,
2014-12-03 09:59:44 +01:00
)
workshop = forms.BooleanField(
label=u"Workshop?",
required=False,
2014-12-03 09:59:44 +01:00
)
place = forms.CharField(
label=u"Ort",
2014-12-03 09:59:44 +01:00
max_length=255 ,
required=True,
2014-12-03 09:59:44 +01:00
)
start_date = forms.DateField(
label=u"Startdatum"
2014-12-03 09:59:44 +01:00
)
end_date = forms.DateField(
label=u"Enddatum"
2014-12-03 09:59:44 +01:00
)
class Meta:
model = PresentationEvent
fields = [u'date', u'name', u'workshop', u'place', u'start_date', u'end_date']
2014-11-26 11:56:18 +01:00
2014-12-03 09:59:44 +01:00
class PresentationForm(forms.ModelForm):
""" Big form containing all the stuff about the things. """
2014-11-26 10:20:46 +01:00
def __init__(self, *args, **kwargs):
super(PresentationForm, self).__init__(*args, **kwargs)
self.helper = FormHelper()
self.helper.form_tag = False
2014-11-26 10:20:46 +01:00
self.helper.label_class = u'col-lg-2'
self.helper.field_class = u'col-lg-4'
self.helper.layout = Layout(
u'title',
2014-12-03 09:59:44 +01:00
u'type',
u'abstract'
2014-11-26 10:20:46 +01:00
)
title = forms.CharField()
2014-12-03 09:59:44 +01:00
type = forms.ChoiceField(choices=[(u'new', u'Hauptvortrag'), (u'existing', u'andere Veranstaltung')], initial=u'new', widget=forms.RadioSelect())
2014-12-10 16:28:21 +01:00
abstract = forms.TextInput()
2014-11-26 10:20:46 +01:00
# Event (other event)
comments = forms.CharField()
email = forms.EmailField()
2014-12-03 09:59:44 +01:00
class Meta:
model = Presentation
fields = [u'title', u'type', u'abstract']