summaryrefslogtreecommitdiff
path: root/archaeological_operations
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2020-03-09 13:26:04 +0100
committerÉtienne Loks <etienne.loks@iggdrasil.net>2020-03-09 13:28:05 +0100
commit8276cfe397dc715d1710a27a29f617565daffb90 (patch)
tree2f2bd88a0360e3674ce7bdbfc135f737166e1bf3 /archaeological_operations
parent056f9956550a16e2ba441bc2053f4173cec5b519 (diff)
downloadIshtar-8276cfe397dc715d1710a27a29f617565daffb90.tar.bz2
Ishtar-8276cfe397dc715d1710a27a29f617565daffb90.zip
Quick actions - tables - site: add bulk update form (towns field)
Diffstat (limited to 'archaeological_operations')
-rw-r--r--archaeological_operations/forms.py18
-rw-r--r--archaeological_operations/models.py13
-rw-r--r--archaeological_operations/urls.py10
-rw-r--r--archaeological_operations/views.py5
4 files changed, 44 insertions, 2 deletions
diff --git a/archaeological_operations/forms.py b/archaeological_operations/forms.py
index f8cc19165..9a3335df5 100644
--- a/archaeological_operations/forms.py
+++ b/archaeological_operations/forms.py
@@ -1983,3 +1983,21 @@ class QAArchaeologicalSiteDuplicateForm(IshtarForm):
for k in ("name", "reference"):
data[k] = self.cleaned_data.get("qa_" + k, None)
return self.site.duplicate(self.user, data=data)
+
+
+class QAArchaeologicalSiteFormMulti(QAForm):
+ form_admin_name = _("Archaeological files - Quick action - Modify")
+ form_slug = "archaeological_site-quickaction-modify"
+ associated_models = {
+ 'qa_towns': Town,
+ }
+
+ MULTI = True
+ qa_towns = get_town_field(required=False)
+
+ def _get_qa_towns(self, value):
+ try:
+ value = Town.objects.get(pk=value).cached_label
+ except Town.DoesNotExist:
+ return ""
+ return value
diff --git a/archaeological_operations/models.py b/archaeological_operations/models.py
index 54a44999c..8dd6568b8 100644
--- a/archaeological_operations/models.py
+++ b/archaeological_operations/models.py
@@ -278,11 +278,19 @@ class ArchaeologicalSite(DocumentItem, BaseHistorizedItem, QRCodeItem,
DOWN_MODEL_UPDATE = ["context_records"]
QA_LOCK = QuickAction(
- url="operation-qa-lock", icon_class="fa fa-lock",
+ url="site-qa-lock", icon_class="fa fa-lock",
text=_(u"Lock/Unlock"), target="many",
- rights=['change_operation', 'change_own_operation']
+ rights=['change_archaeologicalsite',
+ 'change_own_archaeologicalsite']
+ )
+ QA_EDIT = QuickAction(
+ url="site-qa-bulk-update", icon_class="fa fa-pencil",
+ text=_(u"Bulk update"), target="many",
+ rights=['change_archaeologicalsite',
+ 'change_own_archaeologicalsite']
)
QUICK_ACTIONS = [
+ QA_EDIT,
QA_LOCK,
QuickAction(
url="site-qa-duplicate", icon_class="fa fa-clone",
@@ -946,6 +954,7 @@ class Operation(ClosedItem, DocumentItem, BaseHistorizedItem, QRCodeItem,
QA_EDIT = QuickAction(
url="operation-qa-bulk-update", icon_class="fa fa-pencil",
text=_(u"Bulk update"), target="many",
+ rights=['change_operation', 'change_own_operation']
)
QA_LOCK = QuickAction(
url="operation-qa-lock", icon_class="fa fa-lock",
diff --git a/archaeological_operations/urls.py b/archaeological_operations/urls.py
index a1e658c04..77791058a 100644
--- a/archaeological_operations/urls.py
+++ b/archaeological_operations/urls.py
@@ -202,4 +202,14 @@ urlpatterns = [
url(r'^site-qa-lock/(?P<pks>[0-9-]+)?/$',
views.QASiteLockView.as_view(), name='site-qa-lock',
kwargs={"model": models.ArchaeologicalSite}),
+ url(r'^site-qa-bulk-update/(?P<pks>[0-9-]+)?/$',
+ check_rights(['change_archaeologicalsite',
+ 'change_own_archaeologicalsite'])(
+ views.QAArchaeologicalSiteForm.as_view()),
+ name='site-qa-bulk-update'),
+ url(r'^site-qa-bulk-update/(?P<pks>[0-9-]+)?/confirm/$',
+ check_rights(['change_archaeologicalsite',
+ 'change_own_archaeologicalsite'])(
+ views.QAArchaeologicalSiteForm.as_view()),
+ name='site-qa-bulk-update-confirm', kwargs={"confirm": True}),
]
diff --git a/archaeological_operations/views.py b/archaeological_operations/views.py
index 657ee7b1e..ecacdb560 100644
--- a/archaeological_operations/views.py
+++ b/archaeological_operations/views.py
@@ -639,3 +639,8 @@ class QAArchaeologicalSiteDuplicateFormView(QAItemForm):
self).get_context_data(**kwargs)
data['action_name'] = _("Duplicate")
return data
+
+
+class QAArchaeologicalSiteForm(QAItemEditForm):
+ model = models.ArchaeologicalSite
+ form_class = forms.QAArchaeologicalSiteFormMulti