From 54537c9b36ef15dd458a419a4d0ef947573f2676 Mon Sep 17 00:00:00 2001 From: Étienne Loks Date: Tue, 30 Dec 2014 18:08:30 +0100 Subject: Add a new action to create an associated operation from a file window --- archaeological_files/models.py | 4 +++- archaeological_files/templates/ishtar/sheet_file.html | 7 +++++++ archaeological_files/views.py | 11 ++++++++++- archaeological_operations/urls.py | 2 ++ archaeological_operations/views.py | 8 ++++++++ ishtar_common/static/media/style.css | 6 ++++++ ishtar_common/views.py | 5 ++++- 7 files changed, 40 insertions(+), 3 deletions(-) diff --git a/archaeological_files/models.py b/archaeological_files/models.py index 289aa4166..d8281d591 100644 --- a/archaeological_files/models.py +++ b/archaeological_files/models.py @@ -270,7 +270,9 @@ class File(BaseHistorizedItem, OwnPerms, ValueGetter, ShortMenuItem, def get_town_label(self): lbl = unicode(_('Intercommunal')) - if self.towns.count() == 1: + if self.main_town: + lbl = self.main_town.name + elif self.towns.count() == 1: lbl = self.towns.all()[0].name return lbl diff --git a/archaeological_files/templates/ishtar/sheet_file.html b/archaeological_files/templates/ishtar/sheet_file.html index 11a90df9e..736f982c5 100644 --- a/archaeological_files/templates/ishtar/sheet_file.html +++ b/archaeological_files/templates/ishtar/sheet_file.html @@ -20,7 +20,14 @@ {% endif %}
{%trans "Export as:"%} {%trans "OpenOffice.org file"%}, {%trans "PDF file"%}
+
{% trans "Modify" %}
+ +{% if can_add_operation %} +
{%trans "Add an associated archaeological operation"%}
+ +{%endif%} +

{% trans "General"%}

{{ item.year }}

{% if item.numeric_reference %}

{{ item.numeric_reference }}

{% endif %} diff --git a/archaeological_files/views.py b/archaeological_files/views.py index ba640a785..c414ba858 100644 --- a/archaeological_files/views.py +++ b/archaeological_files/views.py @@ -28,6 +28,7 @@ from django.utils.translation import ugettext_lazy as _ from ishtar_common.views import get_item, show_item, revert_item from ishtar_common.models import Person +from archaeological_operations.models import Operation import models from ishtar_common.wizards import SearchWizard @@ -85,9 +86,17 @@ get_file = get_item(models.File, 'get_file', 'file', 'general_contractor__attached_to':'general_contractor__attached_to__pk', 'history_creator':'history_creator__ishtaruser__person__pk', },) -show_file = show_item(models.File, 'file') revert_file = revert_item(models.File) +def extra_file_dct(request, item): + dct = {} + if (request.user.has_perm('ishtar_common.add_operation', Operation) + or request.user.ishtaruser.has_right('add_operation')): + dct['can_add_operation'] = True + return dct + +show_file = show_item(models.File, 'file', extra_dct=extra_file_dct) + get_administrativeactfile = get_item(AdministrativeAct, 'get_administrativeactfile', 'administrativeactfile', associated_models = [(models.File, 'associated_file'), diff --git a/archaeological_operations/urls.py b/archaeological_operations/urls.py index fcd85efb5..7a6c3ecbf 100644 --- a/archaeological_operations/urls.py +++ b/archaeological_operations/urls.py @@ -45,6 +45,8 @@ urlpatterns = patterns('', views.operation_search_wizard, name='operation_search'), url(r'operation_creation/(?P.+)?$', views.operation_creation_wizard, name='operation_creation'), + url(r'operation_add/(?P\d+)$', + views.operation_add, name='operation_add'), url(r'operation_modification/(?P.+)?$', views.operation_modification_wizard, name='operation_modification'), diff --git a/archaeological_operations/views.py b/archaeological_operations/views.py index b4e9d2a2f..25ca61f30 100644 --- a/archaeological_operations/views.py +++ b/archaeological_operations/views.py @@ -255,6 +255,14 @@ def operation_modify(request, pk): return redirect(reverse('operation_modification', kwargs={'step':'general-operation_modification'})) +def operation_add(request, file_id): + view = operation_creation_wizard(request) + OperationWizard.session_set_value( + request, 'filechoice-operation_creation', 'associated_file', + file_id, reset=True) + return redirect(reverse('operation_creation', + kwargs={'step':'general-operation_creation'})) + operation_closing_wizard = OperationClosingWizard.as_view([ ('selec-operation_closing', OperationFormSelection), ('date-operation_closing', ClosingDateFormSelection), diff --git a/ishtar_common/static/media/style.css b/ishtar_common/static/media/style.css index a1b084002..3f027668d 100644 --- a/ishtar_common/static/media/style.css +++ b/ishtar_common/static/media/style.css @@ -17,6 +17,7 @@ div.form { } /* color */ +#window hr, #context_menu .red, a, a.remove { color:#D14; @@ -49,6 +50,11 @@ div.form { border:0 solid #CCC; } +#window hr{ + border:0; + border-bottom:1px solid #D14; +} + /* shadows */ #progress-content, .sheet{ diff --git a/ishtar_common/views.py b/ishtar_common/views.py index 66b488254..1885493b1 100644 --- a/ishtar_common/views.py +++ b/ishtar_common/views.py @@ -519,7 +519,7 @@ def get_item(model, func_name, default_name, extra_request_keys=[], return func -def show_item(model, name): +def show_item(model, name, extra_dct=None): def func(request, pk, **dct): try: item = model.objects.get(pk=pk) @@ -550,6 +550,9 @@ def show_item(model, name): if len(historized) > 1: dct['previous'] = historized[1].history_date dct['item'], dct['item_name'] = item, name + # add context + if extra_dct: + dct.update(extra_dct(request, item)) context_instance = RequestContext(request) context_instance.update(dct) n = datetime.datetime.now() -- cgit v1.2.3