From 32ba228373cea6e136f0d4ed3a8057b6b286e517 Mon Sep 17 00:00:00 2001 From: Cefin Date: Thu, 11 Nov 2021 17:15:45 +0100 Subject: rapid action modify basket property #5180 --- archaeological_finds/forms.py | 11 +++++++++++ archaeological_finds/models_finds.py | 8 ++++++++ archaeological_finds/urls.py | 21 +++++++++++++++++++++ archaeological_finds/views.py | 5 +++++ 4 files changed, 45 insertions(+) diff --git a/archaeological_finds/forms.py b/archaeological_finds/forms.py index c1b5a229d..15ce0465b 100644 --- a/archaeological_finds/forms.py +++ b/archaeological_finds/forms.py @@ -1108,6 +1108,17 @@ class QAFindbasketDuplicateForm(IshtarForm): self.basket.duplicate(label=self.cleaned_data["label"], ishtaruser=self.user) +class QAFindBasketModify(QAForm): + form_admin_name = _("Find - Quick action - Modify") + form_slug = "findbasket-quickaction-modify" + MULTI = False + + qa_label = forms.CharField(label="Denomination", max_length=None, required=False) + + REPLACE_FIELDS = [ + "qa_label", + ] + class PreservationForm(CustomForm, ManageOldType): form_label = _("Preservation") form_admin_name = _("Find - 030 - Preservation") diff --git a/archaeological_finds/models_finds.py b/archaeological_finds/models_finds.py index 88b580ee0..5829af19b 100644 --- a/archaeological_finds/models_finds.py +++ b/archaeological_finds/models_finds.py @@ -849,7 +849,15 @@ class FindBasket(Basket, MainItem, ValueGetter): SLUG = "findbasket" items = models.ManyToManyField("Find", blank=True, related_name="basket") + QA_EDIT = QuickAction( + url="findbasket-qa-bulk-update", + icon_class="fa fa-pencil", + text=_("Modify"), + target="one", + rights=["view_find", "view_own_find"], + ) QUICK_ACTIONS = [ + QA_EDIT, QuickAction( url="findbasket-qa-duplicate", icon_class="fa fa-clone", diff --git a/archaeological_finds/urls.py b/archaeological_finds/urls.py index 50abd1f99..9db2bbca1 100644 --- a/archaeological_finds/urls.py +++ b/archaeological_finds/urls.py @@ -196,6 +196,27 @@ urlpatterns = [ ), name="find-qa-basket", ), + url( + r"findbasket-qa-bulk-update/(?P[0-9-]+)?/$", + check_rights([ + "change_find", + "change_own_find", + ])( + views.QAFindBasketModifyView.as_view() + ), + name="findbasket-qa-bulk-update", + ), + url( + r"findbasket-qa-bulk-update/(?P[0-9-]+)?/confirm/$", + check_rights([ + "change_find", + "change_own_find", + ])( + views.QAFindBasketModifyView.as_view() + ), + name="findbasket-qa-bulk-update-confirm", + kwargs={"confirm": True}, + ), url( r"^find-qa-packaging/(?P[0-9-]+)?/$", check_rights(["change_find", "change_own_find"])( diff --git a/archaeological_finds/views.py b/archaeological_finds/views.py index 8003fd5f2..7b98f2cdb 100644 --- a/archaeological_finds/views.py +++ b/archaeological_finds/views.py @@ -1302,6 +1302,11 @@ class QAFindbasketDuplicateFormView(QAItemForm): return data +class QAFindBasketModifyView(QAItemEditForm): + model = models.FindBasket + form_class = forms.QAFindBasketModify + + class QAFindLockView(QABaseLockView): model = models.Find base_url = "find-qa-lock" -- cgit v1.2.3