From addb5e55aaa3ee2f5c0d9bb7a88092bbfc80ba5b Mon Sep 17 00:00:00 2001 From: Étienne Loks Date: Tue, 8 Dec 2020 18:49:13 +0100 Subject: Sheet files: add operation shortcut --- archaeological_files/models.py | 11 +++++++++++ archaeological_files/urls.py | 3 +++ archaeological_files/views.py | 16 ++++++++++++++++ 3 files changed, 30 insertions(+) (limited to 'archaeological_files') diff --git a/archaeological_files/models.py b/archaeological_files/models.py index 4b0501e96..bef7d53a1 100644 --- a/archaeological_files/models.py +++ b/archaeological_files/models.py @@ -719,6 +719,17 @@ class File(ClosedItem, DocumentItem, BaseHistorizedItem, CompleteIdentifierItem, _("Add associated administrative act"), "fa fa-plus", _("admin. act"), "", False), ] + if self.can_do(request, 'add_operation'): + actions += [ + ( + reverse('file-add-operation', args=[self.pk]), + _("Add operation"), + "fa fa-plus", + _("operation"), + "", + False + ) + ] return actions def save(self, *args, **kwargs): diff --git a/archaeological_files/urls.py b/archaeological_files/urls.py index cb8a63369..d6db8e763 100644 --- a/archaeological_files/urls.py +++ b/archaeological_files/urls.py @@ -93,4 +93,7 @@ urlpatterns = [ url(r'file_administrativeact_document/$', administrativeactfile_document, name='file-administrativeact-document', kwargs={'file': True}), + url(r'^file-add-operation/(?P[0-9-]+)/$', + check_rights(['add_operation'])(views.file_add_operation), + name='file-add-operation'), ] diff --git a/archaeological_files/views.py b/archaeological_files/views.py index a29ae8b15..f94de1cb1 100644 --- a/archaeological_files/views.py +++ b/archaeological_files/views.py @@ -37,6 +37,8 @@ from archaeological_files import wizards from archaeological_files.wizards import FileWizard, \ FileModificationWizard, FileClosingWizard, FileDeletionWizard, \ FileAdministrativeActWizard, FileEditAdministrativeActWizard +from archaeological_operations.wizards import OperationWizard +from archaeological_operations.views import operation_creation_wizard from ishtar_common.forms_common import TownFormset from archaeological_operations.forms import FinalAdministrativeActDeleteForm @@ -259,6 +261,20 @@ def file_adminact_add(request, pk, current_right=None): kwargs={'step': 'administrativeact-file_administrativeactfile'})) +def file_add_operation(request, pk, current_right=None): + try: + models.File.objects.get(pk=pk) + except models.File.DoesNotExist: + raise Http404() + operation_creation_wizard(request) + OperationWizard.session_set_value( + request, 'filechoice-operation_creation', 'associated_file', pk, + reset=True) + return redirect(reverse( + 'operation_creation', + kwargs={'step': 'general-operation_creation'})) + + def reset_wizards(request): for wizard_class, url_name in ( (FileWizard, 'file_creation'), -- cgit v1.2.3