From c01be9de3ea65ab7a5360444e5cc27caebc1c061 Mon Sep 17 00:00:00 2001 From: Étienne Loks Date: Wed, 7 Jul 2021 09:39:29 +0200 Subject: Preventive file - inline forms --- archaeological_files/forms.py | 87 ++++++++++++++++++++++++++----------------- 1 file changed, 52 insertions(+), 35 deletions(-) (limited to 'archaeological_files/forms.py') diff --git a/archaeological_files/forms.py b/archaeological_files/forms.py index 51d1fdeb0..1710a5560 100644 --- a/archaeological_files/forms.py +++ b/archaeological_files/forms.py @@ -528,14 +528,20 @@ class FileFormPreventiveDetail(forms.ModelForm, CustomForm, ManageOldType): pk = forms.IntegerField(label="", required=False, widget=forms.HiddenInput) start_date = forms.DateField( - label=_("Start date"), widget=DatePicker, required=False + label=_("Start date"), required=False, + widget=DatePicker(attrs={"bs_col_width": "col-6 col-lg-3"}), + ) + end_date = forms.DateField( + label=_("End date"), required=False, + widget=DatePicker(attrs={"bs_col_width": "col-6 col-lg-3"}), ) - end_date = forms.DateField(label=_("End date"), widget=DatePicker, required=False) ground_start_date = forms.DateField( - label=_("Ground start date"), widget=DatePicker, required=False + label=_("Ground start date"), required=False, + widget=DatePicker(attrs={"bs_col_width": "col-6 col-lg-3"}), ) ground_end_date = forms.DateField( - label=_("Ground end date"), widget=DatePicker, required=False + label=_("Ground end date"), required=False, + widget=DatePicker(attrs={"bs_col_width": "col-6 col-lg-3"}), ) study_period = forms.CharField( label=_("Study period"), @@ -543,10 +549,11 @@ class FileFormPreventiveDetail(forms.ModelForm, CustomForm, ManageOldType): required=False, ) execution_report_date = forms.DateField( - label=_("Execution report date"), widget=DatePicker, required=False + label=_("Execution report date"), required=False, + widget=DatePicker(attrs={"bs_col_width": "col-6 col-lg-3"}), ) total_developed_surface = forms.FloatField( - widget=widgets.AreaWidget, + widget=widgets.AreaWidget(attrs={"bs_col_width": "col-6 col-lg-3"}), label=_("Total developed surface (m2)"), required=False, validators=[ @@ -556,7 +563,7 @@ class FileFormPreventiveDetail(forms.ModelForm, CustomForm, ManageOldType): ) total_surface = forms.FloatField( required=False, - widget=widgets.AreaWidget, + widget=widgets.AreaWidget(attrs={"bs_col_width": "col-6 col-lg-3"}), label=_("Total surface (m2)"), validators=[ validators.MinValueValidator(0), @@ -565,7 +572,7 @@ class FileFormPreventiveDetail(forms.ModelForm, CustomForm, ManageOldType): ) linear_meter = forms.IntegerField( label=_("Linear meter (m)"), required=False, - widget=widgets.MeterKilometerWidget, + widget=widgets.MeterKilometerWidget(attrs={"bs_col_width": "col-6 col-lg-3"}), ) def __init__(self, *args, **kwargs): @@ -586,17 +593,32 @@ class FileBaseFormset(forms.BaseModelFormSet): self.queryset = self.model.objects.filter(file_id=self.instance.pk) +INLINE_JOB_FIELDS = ["man_by_day_planned", "days_planned", "man_by_day_worked", + "days_worked"] +JOB_WIDGETS = { + "man_by_day_planned": forms.NumberInput(attrs={"class": "w-50 form-planned"}), + "days_planned": forms.NumberInput(attrs={"class": "w-50 form-planned"}), + "man_by_day_worked": forms.NumberInput(attrs={"class": "w-50 form-worked"}), + "days_worked": forms.NumberInput(attrs={"class": "w-50 form-worked"}) +} + +JOB_LABELS = { + "man_by_day_planned": _("Man by day"), + "days_planned": _("Days"), + "man_by_day_worked": _("Man by day"), + "days_worked": _("Days"), +} + class PreventiveFileJobForm(forms.ModelForm): file_id = forms.IntegerField(widget=forms.HiddenInput) - job = forms.ChoiceField(choices=[]) - man_by_day_planned = forms.FloatField(_("Man by day - planned"), required=False) - days_planned = forms.FloatField(_("Days - planned"), required=False) - man_by_day_worked = forms.FloatField(_("Man by day - worked"), required=False) - days_worked = forms.FloatField(_("Days - worked"), required=False) class Meta: model = models.PreventiveFileJob + fields = ["job"] + INLINE_JOB_FIELDS exclude = ["file"] + widgets = JOB_WIDGETS + labels = JOB_LABELS + class PreventiveFileJobBaseFormSet(FileBaseFormset): @@ -605,22 +627,20 @@ class PreventiveFileJobBaseFormSet(FileBaseFormset): PreventiveFileJobFormSet = formset_factory( PreventiveFileJobForm, formset=PreventiveFileJobBaseFormSet, can_delete=True) -PreventiveFileJobFormSet.form_label = _("Preventive - Jobs") +PreventiveFileJobFormSet.form_label = _("Jobs") PreventiveFileJobFormSet.form_admin_name = _("Preventive file - 030 - Jobs") PreventiveFileJobFormSet.form_slug = "preventive-030-jobs" +PreventiveFileJobFormSet.dynamic_add = True class PreventiveFileGroundJobForm(forms.ModelForm): file_id = forms.IntegerField(widget=forms.HiddenInput) - ground_job = forms.ChoiceField(choices=[]) - man_by_day_planned = forms.FloatField(_("Man by day - planned"), required=False) - days_planned = forms.FloatField(_("Days - planned"), required=False) - man_by_day_worked = forms.FloatField(_("Man by day - worked"), required=False) - days_worked = forms.FloatField(_("Days - worked"), required=False) class Meta: model = models.PreventiveFileGroundJob - exclude = ["file"] + fields = ["job"] + INLINE_JOB_FIELDS + widgets = JOB_WIDGETS + labels = JOB_LABELS class PreventiveFileGroundJobBaseFormSet(FileBaseFormset): @@ -631,24 +651,22 @@ PreventiveFileGroundJobFormSet = formset_factory( PreventiveFileGroundJobForm, formset=PreventiveFileGroundJobBaseFormSet, can_delete=True ) -PreventiveFileGroundJobFormSet.form_label = _("Preventive - Ground jobs") +PreventiveFileGroundJobFormSet.form_label = _("Ground jobs") PreventiveFileGroundJobFormSet.form_admin_name = _( "Preventive file - 040 - Ground jobs" ) PreventiveFileGroundJobFormSet.form_slug = "preventive-040-ground-jobs" +PreventiveFileGroundJobFormSet.dynamic_add = True class PreventiveFileEquipmentForm(forms.ModelForm): file_id = forms.IntegerField(widget=forms.HiddenInput) - equipment = forms.ChoiceField(choices=[]) - man_by_day_planned = forms.FloatField(_("Man by day - planned"), required=False) - days_planned = forms.FloatField(_("Days - planned"), required=False) - man_by_day_worked = forms.FloatField(_("Man by day - worked"), required=False) - days_worked = forms.FloatField(_("Days - worked"), required=False) class Meta: model = models.PreventiveFileEquipmentCost - exclude = ["file"] + fields = ["equipment_cost"] + INLINE_JOB_FIELDS + widgets = JOB_WIDGETS + labels = JOB_LABELS class PreventiveFileEquipmentBaseFormSet(FileBaseFormset): @@ -659,22 +677,20 @@ PreventiveFileEquipmentFormSet = formset_factory( PreventiveFileEquipmentForm, formset=PreventiveFileEquipmentBaseFormSet, can_delete=True ) -PreventiveFileEquipmentFormSet.form_label = _("Preventive - Equipment") +PreventiveFileEquipmentFormSet.form_label = _("Equipment") PreventiveFileEquipmentFormSet.form_admin_name = _("Preventive file - 050 - Equipments") PreventiveFileEquipmentFormSet.form_slug = "preventive-050-equipments" +PreventiveFileEquipmentFormSet.dynamic_add = True class PreventiveFileTechnicalServiceForm(forms.ModelForm): file_id = forms.IntegerField(widget=forms.HiddenInput) - technical_service = forms.ChoiceField(choices=[]) - man_by_day_planned = forms.FloatField(_("Man by day - planned"), required=False) - days_planned = forms.FloatField(_("Days - planned"), required=False) - man_by_day_worked = forms.FloatField(_("Man by day - worked"), required=False) - days_worked = forms.FloatField(_("Days - worked"), required=False) class Meta: model = models.PreventiveFileTechnicalServiceCost - exclude = ["file"] + fields = ["technical_service_cost"] + INLINE_JOB_FIELDS + widgets = JOB_WIDGETS + labels = JOB_LABELS class PreventiveFileTechnicalServiceBaseFormSet(FileBaseFormset): @@ -685,11 +701,12 @@ PreventiveFileTechnicalServiceFormSet = formset_factory( PreventiveFileTechnicalServiceForm, formset=PreventiveFileTechnicalServiceBaseFormSet, can_delete=True ) -PreventiveFileTechnicalServiceFormSet.form_label = _("Preventive - Technical Services") +PreventiveFileTechnicalServiceFormSet.form_label = _("Technical Services") PreventiveFileTechnicalServiceFormSet.form_admin_name = _( "Preventive file - 060 - TechnicalServices" ) PreventiveFileTechnicalServiceFormSet.form_slug = "preventive-060-technical_services" +PreventiveFileTechnicalServiceFormSet.dynamic_add = True class AdministrativeActFileModifySelect(TableSelect): -- cgit v1.2.3