summaryrefslogtreecommitdiff
path: root/archaeological_finds
diff options
context:
space:
mode:
Diffstat (limited to 'archaeological_finds')
-rw-r--r--archaeological_finds/ishtar_menu.py4
-rw-r--r--archaeological_finds/models_treatments.py24
-rw-r--r--archaeological_finds/urls.py9
-rw-r--r--archaeological_finds/views.py28
4 files changed, 60 insertions, 5 deletions
diff --git a/archaeological_finds/ishtar_menu.py b/archaeological_finds/ishtar_menu.py
index 38110edad..48e12c79d 100644
--- a/archaeological_finds/ishtar_menu.py
+++ b/archaeological_finds/ishtar_menu.py
@@ -184,11 +184,11 @@ MENU_SECTIONS = [
MenuItem('treatment_admacttreatment_search',
_(u"Search"),
model=AdministrativeAct,
- access_controls=['change_administrativeact']),
+ access_controls=['view_administrativeact']),
MenuItem('treatment_admacttreatment',
_(u"Creation"),
model=AdministrativeAct,
- access_controls=['change_administrativeact']),
+ access_controls=['add_administrativeact']),
MenuItem(
'treatment_admacttreatment_modification',
_(u"Modification"), model=AdministrativeAct,
diff --git a/archaeological_finds/models_treatments.py b/archaeological_finds/models_treatments.py
index 15ef64040..080d2cc50 100644
--- a/archaeological_finds/models_treatments.py
+++ b/archaeological_finds/models_treatments.py
@@ -267,6 +267,17 @@ class Treatment(DashboardFormItem, ValueGetter, BaseHistorizedItem,
upstream_lbl.short_description = _(u"Upstream finds")
upstream_lbl.admin_order_field = 'upstream__cached_label'
+ def get_extra_actions(self, request):
+ # url, base_text, icon, extra_text, extra css class, is a quick action
+ actions = []
+ if self.can_do(request, 'add_administrativeact'):
+ actions += [
+ (reverse('treatment-add-adminact', args=[self.pk]),
+ _(u"Add associated administrative act"), "fa fa-plus",
+ _(u"admin. act"), "", False),
+ ]
+ return actions
+
def get_values(self, prefix=''):
values = super(Treatment, self).get_values(prefix=prefix)
values[prefix + "upstream_finds"] = u" ; ".join(
@@ -843,13 +854,20 @@ class TreatmentFile(DashboardFormItem, ClosedItem, BaseHistorizedItem,
'name') if getattr(self, attr)])
def get_extra_actions(self, request):
+ # url, base_text, icon, extra_text, extra css class, is a quick action
+ actions = []
+ if self.can_do(request, 'add_administrativeact'):
+ actions += [
+ (reverse('treatmentfile-add-adminact', args=[self.pk]),
+ _(u"Add associated administrative act"), "fa fa-plus",
+ _(u"admin. act"), "", False),
+ ]
if not self.associated_basket:
- return []
+ return actions
if self.type.treatment_type and self.treatments.filter(
treatment_types__pk=self.type.treatment_type.pk).count():
# a treatment of this type already exists
- return []
- actions = []
+ return actions
can_edit_find = self.can_do(request, 'change_find')
if can_edit_find:
actions += [
diff --git a/archaeological_finds/urls.py b/archaeological_finds/urls.py
index 7e27221a0..fe7b2acd2 100644
--- a/archaeological_finds/urls.py
+++ b/archaeological_finds/urls.py
@@ -101,6 +101,15 @@ urlpatterns = [
check_rights(['change_find', 'change_own_find'])(
views.treatmentfile_treatment_add),
name='treatmentfile-add-treatment'),
+ url(r'^treatment-add-adminact/(?P<pk>[0-9-]+)/$',
+ check_rights(['add_administrativeact'])(
+ views.treatment_adminact_add),
+ name='treatment-add-adminact'),
+
+ url(r'^treatmentfile-add-adminact/(?P<pk>[0-9-]+)/$',
+ check_rights(['add_administrativeact'])(
+ views.treatmentfile_adminact_add),
+ name='treatmentfile-add-adminact'),
url(r'^find-qa-bulk-update/(?P<pks>[0-9-]+)?/$',
check_rights(['change_find', 'change_own_find'])(
diff --git a/archaeological_finds/views.py b/archaeological_finds/views.py
index a0964fa47..20fb8299d 100644
--- a/archaeological_finds/views.py
+++ b/archaeological_finds/views.py
@@ -660,6 +660,20 @@ def treatment_administrativeacttreatment_modify(request, pk):
}))
+def treatment_adminact_add(request, pk, current_right=None):
+ try:
+ models.Treatment.objects.get(pk=pk)
+ except models.Treatment.DoesNotExist:
+ raise Http404()
+ treatment_administrativeact_wizard(request)
+
+ wizards.TreatmentAdministrativeActWizard.session_set_value(
+ request, 'selec-treatment_admacttreatment', 'pk', pk, reset=True)
+ return redirect(reverse(
+ 'treatment_admacttreatment',
+ kwargs={'step': 'administrativeact-treatment_admacttreatment'}))
+
+
# treatment request
treatmentfile_search_wizard = wizards.TreatmentFileSearch.as_view([
@@ -755,6 +769,20 @@ def treatmentfile_administrativeacttreatmentfile_modify(request, pk):
}))
+def treatmentfile_adminact_add(request, pk, current_right=None):
+ try:
+ models.TreatmentFile.objects.get(pk=pk)
+ except models.TreatmentFile.DoesNotExist:
+ raise Http404()
+ treatmentfile_admacttreatmentfile_wizard(request)
+
+ wizards.TreatmentFileAdministrativeActWizard.session_set_value(
+ request, 'selec-treatmentfle_admacttreatmentfle', 'pk', pk, reset=True)
+ return redirect(reverse(
+ 'treatmentfle_admacttreatmentfle',
+ kwargs={'step': 'admact-treatmentfle_admacttreatmentfle'}))
+
+
def reset_wizards(request):
for wizard_class, url_name in (
(wizards.FindWizard, 'find_creation'),