diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2022-07-06 18:51:25 +0200 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2022-07-08 09:59:31 +0200 |
commit | f690a78e56e903a12d76f67c5faf4661a63fc753 (patch) | |
tree | 0a2a1e81db0503c6b90e8a2279f92d93d2b642d4 /archaeological_files/views.py | |
parent | c02ea8056cde5f2c86af4787cadd64498c5ebf0b (diff) | |
download | Ishtar-f690a78e56e903a12d76f67c5faf4661a63fc753.tar.bz2 Ishtar-f690a78e56e903a12d76f67c5faf4661a63fc753.zip |
Preventive file: choose price agreement form
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, |