summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCefin <kevon@tuta.io>2021-11-05 14:18:57 +0100
committerÉtienne Loks <etienne.loks@iggdrasil.net>2021-11-22 00:03:21 +0100
commit395f2d531c97c1f44827db76ef9d61ea49b9b20a (patch)
treee9d36262ea9ec1e284cc71a2239e24c9c5179131
parent89d7104d0b1e764be11786b932da92bbb9662f75 (diff)
downloadIshtar-395f2d531c97c1f44827db76ef9d61ea49b9b20a.tar.bz2
Ishtar-395f2d531c97c1f44827db76ef9d61ea49b9b20a.zip
add bulk update on warehouse with warehouse type modify
-rw-r--r--archaeological_warehouse/forms.py17
-rw-r--r--archaeological_warehouse/models.py13
-rw-r--r--archaeological_warehouse/urls.py21
-rw-r--r--archaeological_warehouse/views.py5
4 files changed, 55 insertions, 1 deletions
diff --git a/archaeological_warehouse/forms.py b/archaeological_warehouse/forms.py
index 6638140d6..57fc31f4f 100644
--- a/archaeological_warehouse/forms.py
+++ b/archaeological_warehouse/forms.py
@@ -308,6 +308,23 @@ class WarehouseDeletionForm(FinalForm):
confirm_end_msg = _("Would you like to delete this warehouse?")
+class QAWarehouseFromMulti(QAForm):
+ form_admin_name = _("Context record - Quick action -Modify")
+ form_slug = "warehouse-quickaction-modify"
+
+ MULTI = True
+ REPLACE_FIELDS = ["qa_warehouse_type"]
+
+ qa_warehouse_type = forms.ChoiceField(
+ label=_("Warehouse type"),
+ required=False,
+ )
+
+ TYPES = [
+ FieldType("qa_warehouse_type", models.WarehouseType),
+ ]
+
+
class ContainerForm(CustomForm, ManageOldType, forms.Form):
form_label = _("Container")
form_admin_name = _("Container - 010 - General")
diff --git a/archaeological_warehouse/models.py b/archaeological_warehouse/models.py
index 507077d55..9e2a5ef6f 100644
--- a/archaeological_warehouse/models.py
+++ b/archaeological_warehouse/models.py
@@ -320,6 +320,14 @@ class Warehouse(
DOWN_MODEL_UPDATE = ["containers"]
CACHED_LABELS = []
+ QA_EDIT = QuickAction(
+ url="warehouse-qa-bulk-update",
+ icon_class="fa fa-pencil",
+ text=_("Bulk update"),
+ target="many",
+ rights=["change_warehouse", "change_own_warhouse"],
+ )
+
QA_LOCK = QuickAction(
url="warehouse-qa-lock",
icon_class="fa fa-lock",
@@ -327,7 +335,10 @@ class Warehouse(
target="many",
rights=["change_warehouse", "change_own_warehouse"],
)
- QUICK_ACTIONS = [QA_LOCK]
+ QUICK_ACTIONS = [
+ QA_LOCK,
+ QA_EDIT,
+ ]
objects = UUIDModelManager()
diff --git a/archaeological_warehouse/urls.py b/archaeological_warehouse/urls.py
index 4a7ee9d09..e737125b7 100644
--- a/archaeological_warehouse/urls.py
+++ b/archaeological_warehouse/urls.py
@@ -132,6 +132,27 @@ urlpatterns = [
kwargs={"model": models.Warehouse},
),
url(
+ r"^warehouse-qa-bulk-update/(?P<pks>[0-9-]+)?/$",
+ check_rights([
+ "change_warehouse",
+ "change_own_warehouse"
+ ])(
+ views.QAWarehouseForm.as_view()
+ ),
+ name="warehouse-qa-bulk-update",
+ ),
+ url(
+ r"^warehouse-qa-bulk-update/(?P<pks>[0-9-]+)?/confirm/$",
+ check_rights([
+ "change_warehouse",
+ "change_own_warehouse",
+ ])(
+ views.QAWarehouseForm.as_view()
+ ),
+ name="warehouse-qa-bulk-update-confirm",
+ kwargs={"confirm": True},
+ ),
+ url(
r"^container-add-treatment/(?P<pk>[0-9-]+)/$",
check_rights(["change_find", "change_own_find"])(views.container_treatment_add),
name="container-add-treatment",
diff --git a/archaeological_warehouse/views.py b/archaeological_warehouse/views.py
index 95fd4a159..9b8fe1728 100644
--- a/archaeological_warehouse/views.py
+++ b/archaeological_warehouse/views.py
@@ -396,6 +396,11 @@ container_modification_wizard = ContainerModificationWizard.as_view(
)
+class QAWarehouseForm(QAItemEditForm):
+ model = models.Warehouse
+ form_class = forms.QAWarehouseFromMulti
+
+
def container_modify(request, pk):
if not wizard_is_available(
container_modification_wizard, request, models.Container, pk