diff options
Diffstat (limited to 'archaeological_files/views.py')
| -rw-r--r-- | archaeological_files/views.py | 39 | 
1 files changed, 39 insertions, 0 deletions
diff --git a/archaeological_files/views.py b/archaeological_files/views.py index 3ed24f63b..3e8d37809 100644 --- a/archaeological_files/views.py +++ b/archaeological_files/views.py @@ -406,12 +406,51 @@ class MixFormFormsetUpdateView(UpdateView):          return data +class PreventiveSimpleEditView(IshtarMixin, LoginRequiredMixin, +                               UpdateView): +    page_name = _("Intervention plan") +    form_class = forms.PreventiveFileSimpleForm +    template_name = "ishtar/forms/base_form.html" +    model = models.File + +    def get_context_data(self, **kwargs): +        context = super().get_context_data(**kwargs) +        info = '<i class="fa fa-exclamation-triangle" aria-hidden="true"></i> ' +        info += str(_("Changing the price agreement will delete all associated costs")) +        context["info"] = info +        return context + +    def form_valid(self, form): +        price_agreement_id = self.object.price_agreement_id +        queries = [ +            self.object.equipment_costs.exclude( +                equipment_service_cost__price_agreement_id=price_agreement_id), +            self.object.ground_jobs.exclude( +                job__price_agreement_id=price_agreement_id), +            self.object.jobs.exclude( +                job__price_agreement_id=price_agreement_id) + +        ] +        for query in queries: +            for item in query.all(): +                item.delete() +        return super().form_valid(form) + +  class PreventiveEditView(IshtarMixin, LoginRequiredMixin, MixFormFormsetUpdateView):      page_name = _("Intervention plan")      form_class = forms.FileFormPreventiveDetail      template_name = "ishtar/forms/preventive_detail.html"      model = models.File +    def get(self, request, *args, **kwargs): +        self.object = self.get_object() +        if not self.object.price_agreement: +            return redirect( +                reverse("file-edit-preventive-price", args=[self.object.pk]) +            ) +        return super(PreventiveEditView, self).get(request, *args, **kwargs) +      def get_form_inlines_class(self):          inlines = [              forms.PreventiveFileGroundJobFormSet,  | 
