summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--archaeological_files/models.py11
-rw-r--r--archaeological_files/urls.py3
-rw-r--r--archaeological_files/views.py16
-rw-r--r--ishtar_common/models.py5
4 files changed, 34 insertions, 1 deletions
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<pk>[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'),
diff --git a/ishtar_common/models.py b/ishtar_common/models.py
index 6eb7fac6d..e7d948d63 100644
--- a/ishtar_common/models.py
+++ b/ishtar_common/models.py
@@ -1880,12 +1880,15 @@ class TitleType(GenderedType):
return doc
def get_values(self, prefix='', **kwargs):
- return {
+ dct = {
prefix: self.label,
prefix + "id": self.pk,
prefix + "txt_idx": self.txt_idx,
prefix + "long_title": self.long_title
}
+ if prefix:
+ dct[prefix[:-1]] = self.label
+ return dct
post_save.connect(post_save_cache, sender=TitleType)