from crispy_forms.helper import FormHelper from crispy_forms.layout import Field, Fieldset, Layout, Submit from django import forms from django.forms.widgets import HiddenInput from .models import Engagement, EngagementEffort # TODO - need to handle errors correctly in this form and in the template class EngagementEffortReportingCreateForm(forms.ModelForm): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.helper = FormHelper() self.helper.layout = Layout( Fieldset( "This is a form", Field("is_planned"), Field("proposed_start_date", css_class="w3-input w3-border w3-round", type="date"), Field("proposed_end_date", css_class="w3-input w3-border w3-round"), "officers", "notes", ), Submit("submit", "Submit", css_class="w3-button w3-green"), ) class Meta: model = EngagementEffort fields = [ "is_planned", "proposed_start_date", "proposed_end_date", "officers", "notes", ] help_texts = { "is_planned": ("
To distinguish planned events from retrospective recording") } widgets = { "proposed_start_date": forms.DateTimeInput( attrs={ "class": "w3-input w3-border w3-round", "type": "datetime-local", }, format="j M y H:i", ), "proposed_end_date": forms.DateTimeInput( attrs={ "class": "w3-input w3-border w3-round", "type": "datetime-local", }, format="j M y H:i", ), } class EngagementEffortRegulationCreateForm(forms.ModelForm): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.helper = FormHelper() self.helper.layout = Layout( Fieldset( "This is a form", Field("is_planned"), Field("proposed_start_date", css_class="w3-input w3-border w3-round", type="date"), Field("proposed_end_date", css_class="w3-input w3-border w3-round"), "sub_instruments", "officers", ), Submit("submit", "Submit", css_class="w3-button w3-green"), ) class Meta: model = EngagementEffort fields = [ "is_planned", "proposed_start_date", "proposed_end_date", "officers", "sub_instruments", "notes", ] help_texts = { "is_planned": ("
To distinguish planned events from retrospective recording") } widgets = { "proposed_start_date": forms.DateTimeInput( attrs={ "class": "w3-input w3-border w3-round", "type": "datetime-local", }, format="j M y H:i", ), "proposed_end_date": forms.DateTimeInput( attrs={ "class": "w3-input w3-border w3-round", "type": "datetime-local", }, format="j M y H:i", ), } class EngagementEffortPlanningCreateForm(forms.ModelForm): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.helper = FormHelper() self.helper.layout = Layout( Fieldset( "This is a form", Field("is_planned"), Field("proposed_start_date", css_class="w3-input w3-border w3-round", type="date"), Field("proposed_end_date", css_class="w3-input w3-border w3-round"), "officers", "notes", ), Submit("submit", "Submit", css_class="w3-button w3-green"), ) class Meta: model = EngagementEffort fields = [ "is_planned", "proposed_start_date", "proposed_end_date", "officers", "notes", ] help_texts = { "is_planned": ("
To distinguish planned events from retrospective recording") } widgets = { "proposed_start_date": forms.DateTimeInput( attrs={ "class": "w3-input w3-border w3-round", "type": "datetime-local", }, format="j M y H:i", ), "proposed_end_date": forms.DateTimeInput( attrs={ "class": "w3-input w3-border w3-round", "type": "datetime-local", }, format="j M y H:i", ), } class EngagementEffortTravelCreateForm(forms.ModelForm): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.helper = FormHelper() self.helper.layout = Layout( Fieldset( "This is a form", Field("is_planned"), Field("proposed_start_date", css_class="w3-input w3-border w3-round", type="date"), Field("proposed_end_date", css_class="w3-input w3-border w3-round"), "officers", ), Submit("submit", "Submit", css_class="w3-button w3-green"), ) class Meta: model = EngagementEffort fields = ["is_planned", "proposed_start_date", "proposed_end_date", "officers"] widgets = { "proposed_start_date": forms.DateTimeInput(attrs={"type": "datetime-local"}), "proposed_end_date": forms.DateTimeInput(attrs={"type": "datetime-local"}), } class EngagementEffortCreateForm(forms.ModelForm): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.fields["engagement"].widget = HiddenInput() self.fields["effort_type"].widget = HiddenInput() if kwargs.get("initial"): if not kwargs["initial"]["effort_type"] == "REGULATION": self.fields["sub_instruments"].widget = HiddenInput() class Meta: model = EngagementEffort fields = "__all__" widgets = { "is_planned": forms.Select( choices=( (True, "YES"), (False, "NO"), ), attrs={"class": "w3-border"}, ), "proposed_start_date": forms.DateTimeInput( attrs={"class": "w3-input w3-border w3-round", "type": "date"}, format="j M y H:i", ), "proposed_end_date": forms.DateTimeInput( attrs={"class": "w3-input w3-border w3-round", "type": "date"}, format="j M y H:i", ), "effort_type": forms.Select(attrs={"class": "w3-select w3-border w3-round"}), "officers": forms.SelectMultiple(attrs={"class": "w3-select w3-border w3-round"}), "sub_instruments": forms.SelectMultiple(attrs={"class": "w3-select w3-border w3-round"}), } help_texts = { "proposed_start_date": "YYYY-MM-DD HH:MM " "(Please include time here)", "proposed_end_date": "YYYY-MM-DD HH:MM " "(Please include time here)", } class EngagementCreateForm(forms.ModelForm): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) try: self.fields["engagement_type"].queryset = kwargs["initial"]["engagement_type"] except KeyError: pass class Meta: model = Engagement fields = [ "proposed_start_date", "proposed_end_date", "engagement_type", "officers", ] labels = { "officers": "Inspectors", } help_texts = { "proposed_start_date": "YYYY-MM-DD", "proposed_end_date": "YYYY-MM-DD", } widgets = { "proposed_start_date": forms.DateInput(attrs={"class": "w3-input w3-border w3-round", "type": "date"}), "proposed_end_date": forms.DateInput(attrs={"class": "w3-input w3-border w3-round", "type": "date"}), "engagement_type": forms.Select(attrs={"class": "w3-select w3-input w3-border w3-round"}), "officers": forms.SelectMultiple(attrs={"class": "w3-input w3-border w3-round"}), }