| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352 |
- from django import forms
- from django.conf import settings
- from .models import *
- from django.contrib.auth.forms import UserCreationForm
- from django_file_form.forms import UploadedFileField, FileFormMixin, CharField, MultipleUploadedFileField
- from django.contrib.auth.models import User
- from crispy_forms.helper import FormHelper
- # from crispy_forms.layout.buttons import Submit, InputButton
- from crispy_forms.layout import Layout, Field, Fieldset, Div, Row, Column, HTML, ButtonHolder, Submit
- from crispy_forms.bootstrap import InlineField
- from django.forms.models import inlineformset_factory
- from django.forms import formset_factory
- from django import forms
- from captcha.fields import CaptchaField
- from django.core.files import File
- from marktplatz.widgets import *
- from django.forms.widgets import HiddenInput
- def extend_help_text( help_text, myList ):
- extended_text = help_text
- extended_text += " z.B. "
- for x in myList:
- extended_text += x[1] + ", "
- extended_text = extended_text[:-2]
- extended_text += "."
- return extended_text
- class textSearchForm(forms.Form):
- mywidget = forms.TextInput( attrs={'onfocus': "this.value=''", 'class' : "border-thin"} )
- searchText = forms.CharField ( label='', widget = mywidget, max_length = 2048, min_length=3, empty_value="Suche...", initial='Suche...' )
- def __init__(self, *args, **kwargs):
- super(textSearchForm, self).__init__(*args, **kwargs)
- self.helper = FormHelper()
- # self.helper.form_tag = False
- self.helper.layout = Layout(
- Div(
- Div('searchText', css_class='col-sm-6 col-6'),
- Div(
- ButtonHolder(
- Submit('submit', 'Suche', css_class='border-thin border-dark rounded-0 mybtn')
- ),
- css_class='col-sm-6 col-6'),
- css_class='form-row row'),
- # Submit('submit', 'Submit', css_class='btn border-dark rounded-0 mybtn'),
- )
- class searchAgentForm(forms.ModelForm):
- class Meta:
- model = SearchAgent
- fields = '__all__'
- # fields = ('first_name','last_name','adress','postcode','city','country', 'email','phonenumber','alternate_phonenumber','skype_name','website', 'terms')
- class RegisterForm(forms.ModelForm):
- terms = forms.BooleanField(required=True, label= ('I accept and have read the <a href="https://www.mediaarchitecture.org/privacy-policy/">Privacy Policy.</a>'))
- class Meta:
- model = Contact
- fields = ('first_name','last_name','adress','postcode','city','country',
- 'email','phonenumber','alternate_phonenumber','skype_name','website', 'terms')
- class SignUpForm(UserCreationForm):
- captcha = CaptchaField( generator='captcha.helpers.math_challenge' )
- class Meta:
- model = User
- fields = ('username', 'password1', 'password2')
- class ProductForm(forms.ModelForm):
- terms = forms.BooleanField(required=True, label= ('Ich habe die Teilnahmebedingungen gelesen und akzeptiert.'))
- product_fields = ( 'terms', 'name','claim','beschreibung','learning','gruendungsjahr','betriebgenommen','status','adresse','website','email','frei','kfrei','ort','rechtsform','orga','mitmachen','edit','public', )
- product_layout = Layout(
- Fieldset(
- ('Über dein Projekt'),
- 'name','claim','beschreibung','learning','status',
- Div(
- Div('adresse', css_class='col-sm-6 col-6'),
- Div('ort', css_class='col-sm-6 col-6'),
- css_class='form-row row'),
- Div(
- Div('frei', css_class='col-sm-6 col-6'),
- Div('kfrei', css_class='col-sm-6 col-6'),
- css_class='form-row row'),
- 'mitmachen','rechtsform','orga',
- Div(
- Div('website', css_class='col-sm-6 col-6'),
- Div('email', css_class='col-sm-6 col-6'),
- css_class='form-row row'),
- Div(
- Div('gruendungsjahr', css_class='col-sm-6 col-6'),
- Div('betriebgenommen', css_class='col-sm-6 col-6'),
- css_class='form-row row'),
- 'edit','public',
- ),
- )
- class Meta:
- model = Product
- fields = (
- 'terms',
- 'name','claim','beschreibung','learning','gruendungsjahr','betriebgenommen','status','adresse','website','email','frei','kfrei', 'mitmachen','rechtsform','ort','orga',
- )
- def __init__(self,*args, **kwargs):
- super(ProductForm, self).__init__(*args, **kwargs)
- self.fields['orga'].widget = ListTextWidget(data_list=Product.ORGANIZATION, name='orga_list')
- self.fields['rechtsform'].widget = ListTextWidget(data_list=Product.RECHTSFORM, name='rechtsform_list')
- self.fields['edit'].widget = HiddenInput()
- self.fields['public'].widget = HiddenInput()
- #
- # extend_help_text
- #
- self.fields['orga'].help_text = extend_help_text (self.fields['orga'].help_text, Product.ORGANIZATION)
- self.fields['rechtsform'].help_text = extend_help_text (self.fields['rechtsform'].help_text, Product.RECHTSFORM)
- self.helper = FormHelper()
- self.helper.form_tag = False
- class WohnprojektForm(ProductForm):
- terms = forms.BooleanField(required=True, label= ('I accept and have read the Terms of Participation.'))
- class Meta:
- model = Wohnprojekt
- fields = ProductForm.product_fields + (
- 'eigentum', 'inseratstext', 'altneu', 'schwerpunkt', 'wohnbaufoerderung', 'artmodell', 'bautraeger', 'aerwachsene', 'akinder', 'awohnungen', 'wohnflaeche', 'gewerbeflaechen', 'gemeinschaftsflaeche', 'sonstige_flaechen', 'kflaechen', 'gemeinschaftr', 'kgemeinschaftr', 'sonderwohnformen', 'raumangebot', 'kraumangebot', 'parbeiten', 'karbeiten', 'bauweise', 'zielgruppen', 'gprojekte', 'oekologie', 'freiraumangebote', 'gaestwohnungen',
- )
- def __init__(self,*args, **kwargs):
- super(WohnprojektForm, self).__init__(*args, **kwargs)
- #
- #
- self.fields['artmodell'].widget = ListTextWidget(data_list=Wohnprojekt.ARTMODELL, name='artmodell_list')
- self.fields['bautraeger'].widget = ListTextWidget(data_list=Wohnprojekt.BAUTRAEGER, name='bautraeger_list')
- self.fields['bauweise'].widget = ListTextWidget(data_list=Wohnprojekt.BAUWEISE, name='bauweise_list')
- self.fields['zielgruppen'].widget = ListTextWidget(data_list=Wohnprojekt.ZIELGRUPPEN, name='zielgruppen_list')
- self.fields['gprojekte'].widget = ListTextWidget(data_list=Wohnprojekt.GPROJEKTE, name='gprojekte_list')
- #
- #
- self.fields['bauweise'].help_text = extend_help_text (self.fields['bauweise'].help_text, Wohnprojekt.BAUWEISE)
- self.fields['zielgruppen'].help_text = extend_help_text (self.fields['zielgruppen'].help_text, Wohnprojekt.ZIELGRUPPEN)
- self.fields['gprojekte'].help_text = extend_help_text (self.fields['gprojekte'].help_text, Wohnprojekt.GPROJEKTE)
- #
- #
- self.helper = FormHelper()
- self.helper.form_tag = False
- self.helper.layout = Layout(
- self.product_layout,
- Fieldset(
- 'Wohnprojekt',
- 'eigentum', 'inseratstext', 'altneu', 'schwerpunkt', 'wohnbaufoerderung', 'artmodell', 'bautraeger',
- Div(
- Div('aerwachsene', css_class='col-sm-6 col-6'),
- Div('akinder', css_class='col-sm-6 col-6'),
- css_class='form-row row'),
- 'awohnungen',
- Fieldset ( 'FLächen',
- Div(
- Div('wohnflaeche', css_class='col-sm-3 col-3'),
- Div('gewerbeflaechen', css_class='col-sm-3 col-3'),
- Div('gemeinschaftsflaeche', css_class='col-sm-3 col-3'),
- Div('sonstige_flaechen', css_class='col-sm-3 col-3'),
- css_class='form-row row'),
- 'kflaechen',
- ),
- Div(
- Div('gemeinschaftr', css_class='col-sm-6 col-6'),
- Div('raumangebot', css_class='col-sm-6 col-6'),
- Div('kgemeinschaftr', css_class='col-sm-6 col-6'),
- Div('kraumangebot', css_class='col-sm-6 col-6'),
- css_class='form-row row'),
- 'sonderwohnformen', 'parbeiten', 'karbeiten', 'bauweise', 'zielgruppen', 'gprojekte', 'oekologie', 'freiraumangebote', 'gaestwohnungen',
- )
- )
- class InteractionForm(forms.ModelForm):
- class Meta:
- model = Interaction
- fields = ('communtity','host','legal_form','issues','impact','tools','tools_used','next_steps')
- def __init__(self, *args, **kwargs):
- super(InteractionForm, self).__init__(*args, **kwargs)
- self.helper = FormHelper()
- self.helper.form_tag = False
- self.helper.layout = Layout(
- Fieldset(
- ('Community Ascpects - not mandatory'),
- Div(Div('communtity', css_class='form-group col-md-6 mb-0'),
- Div('issues', css_class='form-group col-md-6 mb-0'), css_class='form-row'),
- Div(Div('legal_form', css_class='form-group col-md-6 mb-0'),
- Div('host', css_class='form-group col-md-6 mb-0'), css_class='form-row'),
- Div(Div('impact', css_class='form-group col-md-6 mb-0'),
- Div('tools', css_class='form-group col-md-6 mb-0'), css_class='form-row'),
- Div(Div('tools_used', css_class='form-group col-md-6 mb-0'),
- Div('next_steps', css_class='form-group col-md-6 mb-0'), css_class='form-row'),
- ))
- class LinkForm(forms.ModelForm):
- class Meta:
- model = Link
- fields = ('link_description','link')
- #def __init__(self, *args, **kwargs):
- # super(LinkForm, self).__init__(*args, **kwargs)
- # self.helper = FormHelper()
- # self.helper.field_class = 'form_border'
- # self.helper.form_tag = False
- # self.helper.layout = Layout(
- # Fieldset(
- # Div(Div('link_description', css_class='form-group col-md-5 mb-0'),
- # Div('link', css_class='form-group col-md-5 mb-0'),
- # css_class='form-row')
- # ))
- LinkFormSet = inlineformset_factory(Product,Link, fields = ['link_description','link'], form=LinkForm, extra=3, can_delete=False)
- class FormsetHelper(FormHelper):
- def __init__(self,*args, **kwargs):
- super(FormsetHelper, self).__init__(*args, **kwargs)
- #self.form_method = 'post'
- self.form_tag = False
- #self.render_hidden_fields = True
- #self.render_required_fields = True
- self.layout = Layout(
- Fieldset(
- (''),
- Div(
- Div('link_description', css_class='form-group col-md-4 mb-0'),
- Div('link', css_class='form-group col-md-6 mb-0')
- , css_class='form-row')
- ))
- class MediaForm(FileFormMixin, forms.Form):
- image = UploadedFileField()
- name_for = CharField()
- copyright = CharField()
- #prefix = 'upload'
- def __init__(self, *args, **kwargs):
- super(MediaForm, self).__init__(*args, **kwargs)
- self.helper = FormHelper()
- self.helper.form_tag = False
- self.fields['name_for'].label = 'Caption'
- self.fields['copyright'].label = 'Copyright of'
- self.fields['image'].label = 'Image or Video'
- self.fields['image'].help_text = 'Please upload Images in PNG or JPEG format. Upload Video in MP4 format.'
- self.layout = Layout(
- Fieldset(
- (''),
- Div(
- Div('name_for', css_class='form-group col-md-6 mb-0'),
- Div('copyright', css_class='form-group col-md-4 mb-0')
- , css_class='form-row'),
- Div(
- Div('image', css_class='form-group col-md-6 mb-0'),
- css_class='form-row'),
- ))
- class MediaForm_test(FileFormMixin, forms.Form):
- image = UploadedFileField()
- name_for = CharField()
- copyright = CharField()
- def __init__(self, *args, **kwargs):
- super(MediaForm_test, self).__init__(*args, **kwargs)
- self.helper = FormHelper()
- self.helper.form_tag = False
- class MediaForm1(FileFormMixin, forms.Form):
- image = MultipleUploadedFileField()
- name_for = CharField()
- copyright = CharField()
- def __init__(self, *args, **kwargs):
- super(MediaForm1, self).__init__(*args, **kwargs)
- self.helper = FormHelper()
- self.helper.form_tag = False
- class MediaForm2(FileFormMixin,forms.Form):
- image = UploadedFileField()
- name_for = CharField()
- copyright = CharField()
- def __init__(self, *args, **kwargs):
- super(MediaForm2, self).__init__(*args, **kwargs)
- self.helper = FormHelper()
- self.helper.form_tag = False
- MediaFormSet = formset_factory(MediaForm_test, extra=3)
- class MediaFormsetHelper(FormHelper):
- def __init__(self,*args, **kwargs):
- super(MediaFormsetHelper, self).__init__(*args, **kwargs)
- self.form_tag = False
- self.layout = Layout(
- Fieldset(
- (''),
- Div(
- Div('name_for', css_class='form-group col-md-6 mb-0'),
- Div('copyright', css_class='form-group col-md-4 mb-0')
- , css_class='form-row'),
- Div(
- Div('image', css_class='form-group col-md-6 mb-0'),
- css_class='form-row'),
- ))
- class VideoForm(forms.ModelForm):
- class Meta:
- model = Video
- fields = ('name_for','copyright','image')
|