diff options
author | Étienne Loks <etienne.loks@peacefrogs.net> | 2013-12-27 22:35:21 +0100 |
---|---|---|
committer | Étienne Loks <etienne.loks@peacefrogs.net> | 2013-12-27 22:38:39 +0100 |
commit | 9b5f5ca0a065c33db57670ba166b1424bcc18cd2 (patch) | |
tree | 58732af3c07cfc4833e314aad8610a7d84629cca | |
parent | 0bbb58bdf1cad93846bec23d2481e5ffffa818f8 (diff) | |
download | Ishtar-9b5f5ca0a065c33db57670ba166b1424bcc18cd2.tar.bz2 Ishtar-9b5f5ca0a065c33db57670ba166b1424bcc18cd2.zip |
Allow modification from the window (refs #1574)
-rw-r--r-- | archaeological_context_records/templates/ishtar/sheet_contextrecord.html | 1 | ||||
-rw-r--r-- | archaeological_context_records/urls.py | 4 | ||||
-rw-r--r-- | archaeological_context_records/views.py | 9 | ||||
-rw-r--r-- | archaeological_files/templates/ishtar/sheet_file.html | 1 | ||||
-rw-r--r-- | archaeological_files/urls.py | 2 | ||||
-rw-r--r-- | archaeological_files/views.py | 10 | ||||
-rw-r--r-- | archaeological_finds/templates/ishtar/sheet_find.html | 1 | ||||
-rw-r--r-- | archaeological_finds/urls.py | 2 | ||||
-rw-r--r-- | archaeological_finds/views.py | 10 | ||||
-rw-r--r-- | archaeological_operations/templates/ishtar/sheet_operation.html | 2 | ||||
-rw-r--r-- | archaeological_operations/urls.py | 2 | ||||
-rw-r--r-- | archaeological_operations/views.py | 10 | ||||
-rw-r--r-- | ishtar_common/static/media/style.css | 5 | ||||
-rw-r--r-- | ishtar_common/wizards.py | 18 |
14 files changed, 73 insertions, 4 deletions
diff --git a/archaeological_context_records/templates/ishtar/sheet_contextrecord.html b/archaeological_context_records/templates/ishtar/sheet_contextrecord.html index 4284b7eef..06528c4d2 100644 --- a/archaeological_context_records/templates/ishtar/sheet_contextrecord.html +++ b/archaeological_context_records/templates/ishtar/sheet_contextrecord.html @@ -20,6 +20,7 @@ </div> {% endif %} <div class='tool'>{%trans "Export as:"%} <a href='{% url show-contextrecord item.pk "odt" %}'>{%trans "OpenOffice.org file"%}</a>, <a href='{% url show-contextrecord item.pk "pdf" %}'>{%trans "PDF file"%}</a></div> +<div class='tool modify'><a href='{% url record_modify item.pk %}'>{% trans "Modify" %}</a></div> {% if item.operation.code_patriarche %} <p><label>{%trans "Complete ID:"%}</label> diff --git a/archaeological_context_records/urls.py b/archaeological_context_records/urls.py index 75808b114..7d288b031 100644 --- a/archaeological_context_records/urls.py +++ b/archaeological_context_records/urls.py @@ -1,6 +1,6 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (C) 2010-2012 Étienne Loks <etienne.loks_AT_peacefrogsDOTnet> +# Copyright (C) 2010-2013 Étienne Loks <etienne.loks_AT_peacefrogsDOTnet> # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as @@ -29,6 +29,8 @@ urlpatterns = patterns('', views.record_creation_wizard, name='record_creation'), url(r'record_modification/(?P<step>.+)?$', views.record_modification_wizard, name='record_modification'), + url(r'record_modify/(?P<pk>.+)/$', + views.record_modify, name='record_modify'), url(r'record_deletion/(?P<step>.+)?$', views.record_deletion_wizard, name='record_deletion'), url(r'record_source_creation/(?P<step>.+)?$', diff --git a/archaeological_context_records/views.py b/archaeological_context_records/views.py index 7f42866d8..73e1cd7b3 100644 --- a/archaeological_context_records/views.py +++ b/archaeological_context_records/views.py @@ -17,6 +17,8 @@ # See the file COPYING for details. +from django.core.urlresolvers import reverse +from django.shortcuts import redirect from django.utils.translation import ugettext_lazy as _ from ishtar_common.views import get_item, show_item, revert_item @@ -70,6 +72,13 @@ record_modification_wizard = RecordModifWizard.as_view([ label=_(u"Context record modification"), url_name='record_modification',) +def record_modify(request, pk): + view = record_modification_wizard(request) + RecordModifWizard.session_set_value( + request, 'selec-record_modification', 'pk', pk, reset=True) + return redirect(reverse('record_modification', + kwargs={'step':'general-record_modification'})) + record_deletion_wizard = RecordDeletionWizard.as_view([ ('selec-record_deletion', RecordFormSelection), ('final-record_deletion', RecordDeletionForm)], diff --git a/archaeological_files/templates/ishtar/sheet_file.html b/archaeological_files/templates/ishtar/sheet_file.html index 6602b8ee3..a83ce3df3 100644 --- a/archaeological_files/templates/ishtar/sheet_file.html +++ b/archaeological_files/templates/ishtar/sheet_file.html @@ -20,6 +20,7 @@ </div> {% endif %} <div class='tool'>{%trans "Export as:"%} <a href='{% url show-file item.pk "odt" %}'>{%trans "OpenOffice.org file"%}</a>, <a href='{% url show-file item.pk "pdf" %}'>{%trans "PDF file"%}</a></div> +<div class='tool modify'><a href='{% url file_modify item.pk %}'>{% trans "Modify" %}</a></div> <h3>{% trans "General"%}</h3> <p><label>{%trans "Year:"%}</label> <span class='value'>{{ item.year }}</span></p> {% if item.numeric_reference %}<p><label>{%trans "Numerical reference:"%}</label> <span class='value'>{{ item.numeric_reference }}</span></p>{% endif %} diff --git a/archaeological_files/urls.py b/archaeological_files/urls.py index ee7a8ee39..694cb1791 100644 --- a/archaeological_files/urls.py +++ b/archaeological_files/urls.py @@ -38,6 +38,8 @@ urlpatterns = patterns('', views.file_creation_wizard, name='file_creation'), url(r'file_modification/(?P<step>.+)?$', views.file_modification_wizard, name='file_modification'), + url(r'file_modify/(?P<pk>.+)/$', + views.file_modify, name='file_modify'), url(r'file_closing/(?P<step>.+)?$', views.file_closing_wizard, name='file_closing'), url(r'file_deletion/(?P<step>.+)?$', diff --git a/archaeological_files/views.py b/archaeological_files/views.py index 6ce194e52..b6650e7a7 100644 --- a/archaeological_files/views.py +++ b/archaeological_files/views.py @@ -19,9 +19,10 @@ import json +from django.core.urlresolvers import reverse from django.db.models import Q from django.http import HttpResponse -from django.shortcuts import render_to_response +from django.shortcuts import render_to_response, redirect from django.utils.translation import ugettext_lazy as _ from ishtar_common.views import get_item, show_item, revert_item @@ -137,6 +138,13 @@ file_modification_wizard = FileModificationWizard.as_view([ }, url_name='file_modification',) +def file_modify(request, pk): + view = file_modification_wizard(request) + FileModificationWizard.session_set_value( + request, 'selec-file_modification', 'pk', pk, reset=True) + return redirect(reverse('file_modification', + kwargs={'step':'general-file_modification'})) + file_closing_wizard = FileClosingWizard.as_view([ ('selec-file_closing', FileFormSelection), ('date-file_closing', ClosingDateFormSelection), diff --git a/archaeological_finds/templates/ishtar/sheet_find.html b/archaeological_finds/templates/ishtar/sheet_find.html index 7e45637d8..89f335e1a 100644 --- a/archaeological_finds/templates/ishtar/sheet_find.html +++ b/archaeological_finds/templates/ishtar/sheet_find.html @@ -22,6 +22,7 @@ {% endif %} <div class='tool'>{%trans "Export as:"%} <a href='{% url show-find item.pk "odt" %}'>{%trans "OpenOffice.org file"%}</a>, <a href='{% url show-find item.pk "pdf" %}'>{%trans "PDF file"%}</a></div> +<div class='tool modify'><a href='{% url find_modify item.pk %}'>{% trans "Modify" %}</a></div> {% if item.image %} <a href='{{item.image.url}}' rel="prettyPhoto" title="{{item.label}}"><img src='{{item.thumbnail.url}}'/></a> diff --git a/archaeological_finds/urls.py b/archaeological_finds/urls.py index 8a3a2fdb6..bf49b021d 100644 --- a/archaeological_finds/urls.py +++ b/archaeological_finds/urls.py @@ -29,6 +29,8 @@ urlpatterns = patterns('', views.find_creation_wizard, name='find_creation'), url(r'find_modification/(?P<step>.+)?$', views.find_modification_wizard, name='find_modification'), + url(r'find_modify/(?P<pk>.+)/$', + views.find_modify, name='find_modify'), url(r'find_source_creation/(?P<step>.+)?$', views.find_source_creation_wizard, name='find_source_creation'), diff --git a/archaeological_finds/views.py b/archaeological_finds/views.py index b01cd4934..b5a3debce 100644 --- a/archaeological_finds/views.py +++ b/archaeological_finds/views.py @@ -17,6 +17,8 @@ # See the file COPYING for details. +from django.core.urlresolvers import reverse +from django.shortcuts import redirect from django.utils.translation import ugettext_lazy as _ from ishtar_common.views import get_item, show_item, revert_item @@ -72,6 +74,14 @@ find_modification_wizard = FindModificationWizard.as_view([ label=_(u"Find modification"), url_name='find_modification',) +def find_modify(request, pk): + view = find_modification_wizard(request) + FindModificationWizard.session_set_value( + request, 'selec-find_modification', 'pk', pk, reset=True) + return redirect(reverse('find_modification', + kwargs={'step':'find-find_modification'})) + + find_source_creation_wizard = FindSourceWizard.as_view([ ('selec-find_source_creation', SourceFindFormSelection), ('source-find_source_creation', SourceForm), diff --git a/archaeological_operations/templates/ishtar/sheet_operation.html b/archaeological_operations/templates/ishtar/sheet_operation.html index 2768fd96c..945b3f4e5 100644 --- a/archaeological_operations/templates/ishtar/sheet_operation.html +++ b/archaeological_operations/templates/ishtar/sheet_operation.html @@ -23,6 +23,8 @@ <div class='tool'>{%trans "Export as:"%} <a href='{% url show-operation item.pk "odt" %}'>{%trans "OpenOffice.org file"%}</a>, <a href='{% url show-operation item.pk "pdf" %}'>{%trans "PDF file"%}</a></div> +<div class='tool modify'><a href='{% url operation_modify item.pk %}'>{% trans "Modify" %}</a></div> + <h3>{% trans "General"%}</h3> {% if item.common_name %}<p><label>{%trans "Name:"%}</label> <span class='value'>{{ item.common_name }}</span></p>{% endif %} <p><label>{%trans "Year:"%}</label> <span class='value'>{{ item.year }}</span></p> diff --git a/archaeological_operations/urls.py b/archaeological_operations/urls.py index e0daa8590..bd207dd80 100644 --- a/archaeological_operations/urls.py +++ b/archaeological_operations/urls.py @@ -48,6 +48,8 @@ urlpatterns = patterns('', url(r'operation_modification/(?P<step>.+)?$', views.operation_modification_wizard, name='operation_modification'), + url(r'operation_modify/(?P<pk>.+)/$', + views.operation_modify, name='operation_modify'), url(r'operation_closing/(?P<step>.+)?$', views.operation_closing_wizard, name='operation_closing'), url(r'operation_deletion/(?P<step>.+)?$', diff --git a/archaeological_operations/views.py b/archaeological_operations/views.py index e2fa5c868..0c4609181 100644 --- a/archaeological_operations/views.py +++ b/archaeological_operations/views.py @@ -20,9 +20,10 @@ import json import os +from django.core.urlresolvers import reverse from django.db.models import Q from django.http import HttpResponse -from django.shortcuts import render_to_response +from django.shortcuts import render_to_response, redirect from django.template.defaultfilters import slugify from django.utils.translation import ugettext_lazy as _, pgettext_lazy @@ -227,6 +228,13 @@ operation_modification_wizard = OperationModificationWizard.as_view([ }, url_name='operation_modification',) +def operation_modify(request, pk): + view = operation_modification_wizard(request) + OperationModificationWizard.session_set_value(request, + 'selec-operation_modification', 'pk', pk, reset=True) + return redirect(reverse('operation_modification', + kwargs={'step':'general-operation_modification'})) + 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 ba95e5863..205afe867 100644 --- a/ishtar_common/static/media/style.css +++ b/ishtar_common/static/media/style.css @@ -561,6 +561,11 @@ table.confirm tr.spacer td:last-child{ font-style:italic; } +#window .tool.modify{ + font-style:normal; + font-weight:bold; +} + #window .body{ position:absolute; padding:2px 10px 6px 10px; diff --git a/ishtar_common/wizards.py b/ishtar_common/wizards.py index 7add2faa8..b775a0a36 100644 --- a/ishtar_common/wizards.py +++ b/ishtar_common/wizards.py @@ -20,7 +20,9 @@ import datetime from django.conf import settings -from django.contrib.formtools.wizard.views import NamedUrlWizardView +from django.contrib.formtools.wizard.storage import get_storage +from django.contrib.formtools.wizard.views import NamedUrlWizardView, \ + normalize_name from django.core.exceptions import ObjectDoesNotExist from django.core.files.images import ImageFile from django.db.models.fields.files import FileField @@ -608,6 +610,20 @@ class Wizard(NamedUrlWizardView): form_key + '-0-' + key #only check if the first field is available return key in request.session[storage.prefix]['step_data'][form_key] + @classmethod + def session_set_value(cls, request, form_key, key, value, reset=False): + prefix = form_key.split('-')[1] + normalize_name(cls.__name__) + storage = get_storage(cls.storage_name, prefix, request, + getattr(cls, 'file_storage', None)) + if reset: + storage.reset() + data = storage.get_step_data(form_key) + if not data: + data = {}#MultiValueDict() + key = key if key.startswith(form_key) else form_key + '-' + key + data[key] = value + storage.set_step_data(form_key, data) + def session_get_value(self, form_key, key, multi=False): """Get the value of a specific form""" if not self.session_has_key(form_key, key, multi): |