summaryrefslogtreecommitdiff
path: root/archaeological_warehouse/views.py
diff options
context:
space:
mode:
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
commit69dd532066585cad66e202e650f2c174808dc11f (patch)
treedb6ac956ef1044af25d6a9b49ba1f08a2eb0c41e /archaeological_warehouse/views.py
parent1720a9a24b4d53cd4d5981f1b847bd3642fa6fae (diff)
downloadIshtar-69dd532066585cad66e202e650f2c174808dc11f.tar.bz2
Ishtar-69dd532066585cad66e202e650f2c174808dc11f.zip
✨ QA container form: move form
Diffstat (limited to 'archaeological_warehouse/views.py')
-rw-r--r--archaeological_warehouse/views.py36
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