Skip to content
Snippets Groups Projects
Select Git revision
  • 19ff8e5a858d04bb9e4eec8e5edb56b1b98196bb
  • main default protected
  • docker
  • feature-tracker
  • fix-api
  • feature-event-wizard
  • feature-akslides
  • fix-history-interest
  • feature-constraint-checking-wip
  • feature-constraint-checking
10 results

forms.py

Blame
  • Forked from KIF / AKPlanning
    Source project has a limited visibility.
    • Benjamin Hättasch's avatar
      19ff8e5a
      Improve submission and update forms for AKs as well as underlying model · 19ff8e5a
      Benjamin Hättasch authored
      Improve blank and unique constraints of model:
      - allow blank starting times of slotes to store durations before scheduling and adapt string representation
      - change unique constraint from name and shortname of AK to unique for each event only
      Implement handling of tags for submission and update (auto-creation) by using a semicolon-separated text file instead of multiple choice field
      Implement handling of durations for submission
      Automatically generate short name
      Use different forms for submission and update
      Use special adapted template for AK updates instead of submission template
      Fix EventSlugMixin for POST requests
      19ff8e5a
      History
      Improve submission and update forms for AKs as well as underlying model
      Benjamin Hättasch authored
      Improve blank and unique constraints of model:
      - allow blank starting times of slotes to store durations before scheduling and adapt string representation
      - change unique constraint from name and shortname of AK to unique for each event only
      Implement handling of tags for submission and update (auto-creation) by using a semicolon-separated text file instead of multiple choice field
      Implement handling of durations for submission
      Automatically generate short name
      Use different forms for submission and update
      Use special adapted template for AK updates instead of submission template
      Fix EventSlugMixin for POST requests
    Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    forms.py 2.59 KiB
    from bootstrap_datepicker_plus import DateTimePickerInput
    from django import forms
    from django.forms.utils import ErrorList
    from django.utils.translation import ugettext_lazy as _
    
    from AKModel.models import Event, AKCategory, AKRequirement
    
    
    class NewEventWizardStartForm(forms.ModelForm):
        class Meta:
            model = Event
            fields = ['name', 'slug', 'timezone']
    
        is_init = forms.BooleanField(initial=True, widget=forms.HiddenInput)
    
    
    class NewEventWizardSettingsForm(forms.ModelForm):
        class Meta:
            model = Event
            exclude = []
            widgets = {
                'name': forms.HiddenInput(),
                'slug': forms.HiddenInput(),
                'timezone': forms.HiddenInput(),
                'active': forms.HiddenInput(),
                'plan_hidden': forms.HiddenInput(),
                'start': DateTimePickerInput(options={"format": "YYYY-MM-DD HH:mm"}),
                'end': DateTimePickerInput(options={"format": "YYYY-MM-DD HH:mm"}),
                'reso_deadline': DateTimePickerInput(options={"format": "YYYY-MM-DD HH:mm"}),
            }
    
    
    class NewEventWizardPrepareImportForm(forms.Form):
        import_event = forms.ModelChoiceField(
            queryset=Event.objects.all(),
            label=_("Copy ak requirements and ak categories of existing event"),
            help_text=_("You can choose what to copy in the next step")
        )
    
    
    class NewEventWizardImportForm(forms.Form):
        import_categories = forms.ModelMultipleChoiceField(
            queryset=AKCategory.objects.all(),
            widget=forms.CheckboxSelectMultiple,
            label=_("Copy ak categories"),
            required=False,
        )
    
        import_requirements = forms.ModelMultipleChoiceField(
            queryset=AKRequirement.objects.all(),
            widget=forms.CheckboxSelectMultiple,
            label=_("Copy ak requirements"),
            required=False,
        )
    
        def __init__(self, data=None, files=None, auto_id='id_%s', prefix=None, initial=None, error_class=ErrorList,
                     label_suffix=None, empty_permitted=False, field_order=None, use_required_attribute=None,
                     renderer=None):
            super().__init__(data, files, auto_id, prefix, initial, error_class, label_suffix, empty_permitted, field_order,
                             use_required_attribute, renderer)
            self.fields["import_categories"].queryset = self.fields["import_categories"].queryset.filter(event=self.initial["import_event"])
            self.fields["import_requirements"].queryset = self.fields["import_requirements"].queryset.filter(event=self.initial["import_event"])
    
    
    class NewEventWizardActivateForm(forms.ModelForm):
        class Meta:
            fields = ["active"]
            model = Event