diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2024-09-03 18:40:27 +0200 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2024-09-05 16:09:40 +0200 |
commit | 69dd532066585cad66e202e650f2c174808dc11f (patch) | |
tree | db6ac956ef1044af25d6a9b49ba1f08a2eb0c41e /archaeological_warehouse/views.py | |
parent | 1720a9a24b4d53cd4d5981f1b847bd3642fa6fae (diff) | |
download | Ishtar-69dd532066585cad66e202e650f2c174808dc11f.tar.bz2 Ishtar-69dd532066585cad66e202e650f2c174808dc11f.zip |
✨ QA container form: move form
Diffstat (limited to 'archaeological_warehouse/views.py')
-rw-r--r-- | archaeological_warehouse/views.py | 36 |
1 files changed, 32 insertions, 4 deletions
diff --git a/archaeological_warehouse/views.py b/archaeological_warehouse/views.py index 6c1ad6837..0ce6f8763 100644 --- a/archaeological_warehouse/views.py +++ b/archaeological_warehouse/views.py @@ -35,14 +35,15 @@ from archaeological_warehouse import forms from ishtar_common.forms import FinalForm from ishtar_common.views import ( - QABaseLockView, - wizard_is_available, + IshtarMixin, merge_action, ManualMergeMixin, ManualMergeItemsMixin, - IshtarMixin, LoginRequiredMixin, + QABaseLockView, + QAItemForm, QAItemEditForm, + wizard_is_available, ) from ishtar_common.views_item import get_item, show_item, new_qa_item, revert_item from archaeological_finds.views import treatment_add @@ -59,7 +60,6 @@ from archaeological_warehouse.wizards import ( ContainerDeletionWizard, ) - get_container = get_item( models.Container, "get_container", "container", search_form=forms.ContainerSelect ) @@ -509,6 +509,34 @@ class QAContainerForm(QAItemEditForm): return kwargs +class QAContainerMoveForm(QAItemForm): + model = models.Container + form_class = forms.QAContainerMoveForm + icon = "fa fa-arrow-right" + page_name = _("Move") + template_name = "ishtar/forms/qa_container_move.html" + base_url = "container-qa-move" + + def dispatch(self, request, *args, **kwargs): + returned = super().dispatch(request, *args, **kwargs) + for item in self.items: + if item.is_locked(request.user): + return HttpResponseRedirect(reverse("qa-not-available")) + return returned + + def get_form_kwargs(self): + kwargs = super().get_form_kwargs() + # item list is necessary to verify uniqueness rules + kwargs["items"] = self.items + kwargs["user"] = self.request.user + kwargs["prefix"] = "qa-move" + return kwargs + + def form_valid(self, form): + form.save(self.items, self.request.user) + return HttpResponseRedirect(reverse("success")) + + class GenerateStats(IshtarMixin, LoginRequiredMixin, RedirectView): model = None |