diff options
Diffstat (limited to 'archaeological_finds')
-rw-r--r-- | archaeological_finds/ishtar_menu.py | 4 | ||||
-rw-r--r-- | archaeological_finds/models_treatments.py | 24 | ||||
-rw-r--r-- | archaeological_finds/urls.py | 9 | ||||
-rw-r--r-- | archaeological_finds/views.py | 28 |
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'), |