From 395f2d531c97c1f44827db76ef9d61ea49b9b20a Mon Sep 17 00:00:00 2001 From: Cefin Date: Fri, 5 Nov 2021 14:18:57 +0100 Subject: add bulk update on warehouse with warehouse type modify --- archaeological_warehouse/forms.py | 17 +++++++++++++++++ archaeological_warehouse/models.py | 13 ++++++++++++- archaeological_warehouse/urls.py | 21 +++++++++++++++++++++ archaeological_warehouse/views.py | 5 +++++ 4 files changed, 55 insertions(+), 1 deletion(-) 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 @@ -131,6 +131,27 @@ urlpatterns = [ name="warehouse-qa-lock", kwargs={"model": models.Warehouse}, ), + url( + r"^warehouse-qa-bulk-update/(?P[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[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[0-9-]+)/$", check_rights(["change_find", "change_own_find"])(views.container_treatment_add), 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 -- cgit v1.2.3