summaryrefslogtreecommitdiff
path: root/archaeological_operations
diff options
context:
space:
mode:
Diffstat (limited to 'archaeological_operations')
-rw-r--r--archaeological_operations/forms.py15
-rw-r--r--archaeological_operations/models.py2
-rw-r--r--archaeological_operations/urls.py37
-rw-r--r--archaeological_operations/views.py204
-rw-r--r--archaeological_operations/wizards.py43
5 files changed, 156 insertions, 145 deletions
diff --git a/archaeological_operations/forms.py b/archaeological_operations/forms.py
index dc342f477..95d2d5275 100644
--- a/archaeological_operations/forms.py
+++ b/archaeological_operations/forms.py
@@ -337,21 +337,6 @@ PeriodFormset = formset_factory(PeriodForm, can_delete=True,
formset=PeriodFormSet)
PeriodFormset.form_label = _("Periods")
-def has_associated_file(form_name, file_key='associated_file', negate=False):
- def func(self, request, storage):
- if storage.prefix not in request.session or \
- 'step_data' not in request.session[storage.prefix] or \
- form_name not in request.session[storage.prefix]['step_data'] or\
- form_name + '-' + file_key not in \
- request.session[storage.prefix]['step_data'][form_name]:
- return negate
- try:
- file_id = int(request.session[storage.prefix]['step_data']\
- [form_name][form_name+'-'+file_key])
- return not negate
- except ValueError:
- return negate
- return func
class FinalOperationClosingForm(FinalForm):
confirm_msg = " "
confirm_end_msg = _(u"Would you like to close this operation?")
diff --git a/archaeological_operations/models.py b/archaeological_operations/models.py
index 42026eebe..831190342 100644
--- a/archaeological_operations/models.py
+++ b/archaeological_operations/models.py
@@ -17,6 +17,8 @@
# See the file COPYING for details.
+import datetime
+
from django.conf import settings
from django.contrib.gis.db import models
from django.db.models import Q, Count, Sum, Max, Avg
diff --git a/archaeological_operations/urls.py b/archaeological_operations/urls.py
index fb3278e31..89e1a63fc 100644
--- a/archaeological_operations/urls.py
+++ b/archaeological_operations/urls.py
@@ -19,40 +19,39 @@
from django.conf.urls.defaults import *
-"""
import views
# forms
urlpatterns = patterns('',
- url(r'operation_search/(?P<step>.+)$',
- views.operation_search_wizard, name='operation_search'),
- url(r'operation_creation/(?P<step>.+)$',
- views.operation_creation_wizard, name='operation_creation'),
- url(r'operation_modification/(?P<step>.+)$',
- views.operation_modification_wizard,
- name='operation_modification'),
- url(r'operation_closing/(?P<step>.+)$',
- views.operation_closing_wizard, name='operation_closing'),
- url(r'operation_deletion/(?P<step>.+)$',
- views.operation_deletion_wizard, name='operation_deletion'),
- url(r'operation_administrativeactop/(?P<step>.+)$',
+ url(r'operation_administrativeactop/(?P<step>.+)?$',
views.operation_administrativeactop_wizard,
name='operation_administrativeactop'),
- url(r'operation_administrativeactop_modification/(?P<step>.+)$',
+ url(r'operation_administrativeactop_modification/(?P<step>.+)?$',
views.operation_administrativeactop_modification_wizard,
name='operation_administrativeactop_modification'),
- url(r'operation_administrativeactop_deletion/(?P<step>.+)$',
+ url(r'operation_administrativeactop_deletion/(?P<step>.+)?$',
views.operation_administrativeactop_deletion_wizard,
name='operation_administrativeactop_deletion'),
- url(r'operation_source_creation/(?P<step>.+)$',
+ url(r'operation_source_creation/(?P<step>.+)?$',
views.operation_source_creation_wizard,
name='operation_source_creation'),
- url(r'operation_source_modification/(?P<step>.+)$',
+ url(r'operation_source_modification/(?P<step>.+)?$',
views.operation_source_modification_wizard,
name='operation_source_modification'),
- url(r'operation_source_deletion/(?P<step>.+)$',
+ url(r'operation_source_deletion/(?P<step>.+)?$',
views.operation_source_deletion_wizard,
name='operation_source_deletion'),
+ url(r'operation_search/(?P<step>.+)?$',
+ views.operation_search_wizard, name='operation_search'),
+ url(r'operation_creation/(?P<step>.+)?$',
+ views.operation_creation_wizard, name='operation_creation'),
+ url(r'operation_modification/(?P<step>.+)?$',
+ views.operation_modification_wizard,
+ name='operation_modification'),
+ url(r'operation_closing/(?P<step>.+)?$',
+ views.operation_closing_wizard, name='operation_closing'),
+ url(r'operation_deletion/(?P<step>.+)?$',
+ views.operation_deletion_wizard, name='operation_deletion'),
)
urlpatterns += patterns('archaeological_operations.views',
@@ -72,4 +71,4 @@ urlpatterns += patterns('archaeological_operations.views',
'get_administrativeactop', name='get-administrativeactop'),
url(r'get-operationsource/(?P<type>.+)?$',
'get_operationsource', name='get-operationsource'),
-)"""
+)
diff --git a/archaeological_operations/views.py b/archaeological_operations/views.py
index c00624fe1..38e2a1bc4 100644
--- a/archaeological_operations/views.py
+++ b/archaeological_operations/views.py
@@ -22,6 +22,7 @@ import json
from django.db.models import Q
from django.http import HttpResponse
from django.shortcuts import render_to_response
+from django.utils.translation import ugettext_lazy as _
from ishtar_common.views import get_item, show_item, revert_item
from ishtar_common.wizards import SearchWizard
@@ -95,130 +96,131 @@ def dashboard_operation(request, dct, obj_id=None, *args, **kwargs):
context_instance=RequestContext(request))
operation_search_wizard = SearchWizard.as_view([
- ('general-operation_search', OperationFormSelection)],
- label=_(u"Operation search"),
- url_name='operation_search',)
+ ('general-operation_search', OperationFormSelection)],
+ label=_(u"Operation search"),
+ url_name='operation_search',)
operation_creation_wizard = OperationWizard.as_view([
- ('general-operation_creation', OperationFormGeneral),
- ('preventive-operation_creation', OperationFormPreventive),
- ('preventivediag-operation_creation', OperationFormPreventiveDiag),
- ('townsgeneral-operation_creation', TownFormset),
- ('towns-operation_creation', SelectedTownFormset),
- ('parcelsgeneral-operation_creation', SelectedParcelGeneralFormSet),
- ('parcels-operation_creation', SelectedParcelFormSet),
- ('remains-operation_creation', RemainFormset),
- ('periods-operation_creation', PeriodFormset),
- ('final-operation_creation', FinalForm)],
- label=_(u"Operation creation"),
- condition_dict={
- 'preventive-operation_creation':\
- is_preventive('general-operation_creation',
- models.OperationType,
- 'operation_type', 'prev_excavation'),
- 'preventivediag-operation_creation':\
- is_preventive('general-operation_creation',
- models.OperationType,
- 'operation_type', 'arch_diagnostic'),
- 'townsgeneral-operation_creation':has_associated_file(
- 'general-operation_creation', negate=True),
- 'towns-operation_creation':has_associated_file(
- 'general-operation_creation'),
- 'parcelsgeneral-operation_creation':has_associated_file(
- 'general-operation_creation', negate=True),
- 'parcels-operation_creation':has_associated_file(
- 'general-operation_creation'),
- },
- url_name='operation_creation',)
+ ('general-operation_creation', OperationFormGeneral),
+ ('preventive-operation_creation', OperationFormPreventive),
+ ('preventivediag-operation_creation', OperationFormPreventiveDiag),
+ ('townsgeneral-operation_creation', TownFormset),
+ ('towns-operation_creation', SelectedTownFormset),
+ ('parcelsgeneral-operation_creation', SelectedParcelGeneralFormSet),
+ ('parcels-operation_creation', SelectedParcelFormSet),
+ ('remains-operation_creation', RemainFormset),
+ ('periods-operation_creation', PeriodFormset),
+ ('final-operation_creation', FinalForm)],
+ label=_(u"Operation creation"),
+ condition_dict={
+ 'preventive-operation_creation':\
+ is_preventive('general-operation_creation', models.OperationType,
+ 'operation_type', 'prev_excavation'),
+ 'preventivediag-operation_creation':\
+ is_preventive('general-operation_creation', models.OperationType,
+ 'operation_type', 'arch_diagnostic'),
+ 'townsgeneral-operation_creation':has_associated_file(
+ 'general-operation_creation', negate=True),
+ 'towns-operation_creation':has_associated_file(
+ 'general-operation_creation'),
+ 'parcelsgeneral-operation_creation':has_associated_file(
+ 'general-operation_creation', negate=True),
+ 'parcels-operation_creation':has_associated_file(
+ 'general-operation_creation'),
+ },
+ url_name='operation_creation',)
operation_modification_wizard = OperationModificationWizard.as_view([
- ('selec-operation_modification', OperationFormSelection),
- ('general-operation_modification', OperationFormGeneral),
- ('preventive-operation_modification', OperationFormPreventive),
- ('preventivediag-operation_modification', OperationFormPreventiveDiag),
- ('towns-operation_modification', SelectedTownFormset),
- ('townsgeneral-operation_modification', TownFormset),
- ('parcels-operation_modification', SelectedParcelFormSet),
- ('parcelsgeneral-operation_modification', SelectedParcelGeneralFormSet),
- ('remains-operation_modification', RemainFormset),
- ('periods-operation_modification', PeriodFormset),
- ('final-operation_modification', FinalForm)],
- label=_(u"Operation modification"),
- condition_dict={
- 'preventive-operation_modification':is_preventive(
- 'general-operation_modification', models.OperationType,
- 'operation_type', 'prev_excavation'),
- 'preventivediag-operation_modification':is_preventive(
- 'general-operation_modification', models.OperationType,
- 'operation_type', 'arch_diagnostic'),
- 'townsgeneral-operation_modification':has_associated_file(
- 'general-operation_modification', negate=True),
- 'towns-operation_modification':has_associated_file(
- 'general-operation_modification'),
- 'parcelsgeneral-operation_modification':has_associated_file(
- 'general-operation_modification', negate=True),
- 'parcels-operation_modification':has_associated_file(
- 'general-operation_modification'),
- },
- url_name='operation_modification',)
+ ('selec-operation_modification', OperationFormSelection),
+ ('general-operation_modification', OperationFormGeneral),
+ ('preventive-operation_modification', OperationFormPreventive),
+ ('preventivediag-operation_modification', OperationFormPreventiveDiag),
+ ('towns-operation_modification', SelectedTownFormset),
+ ('townsgeneral-operation_modification', TownFormset),
+ ('parcels-operation_modification', SelectedParcelFormSet),
+ ('parcelsgeneral-operation_modification', SelectedParcelGeneralFormSet),
+ ('remains-operation_modification', RemainFormset),
+ ('periods-operation_modification', PeriodFormset),
+ ('final-operation_modification', FinalForm)],
+ label=_(u"Operation modification"),
+ condition_dict={
+ 'preventive-operation_modification':is_preventive(
+ 'general-operation_modification', models.OperationType,
+ 'operation_type', 'prev_excavation'),
+ 'preventivediag-operation_modification':is_preventive(
+ 'general-operation_modification', models.OperationType,
+ 'operation_type', 'arch_diagnostic'),
+ 'townsgeneral-operation_modification':has_associated_file(
+ 'general-operation_modification', negate=True),
+ 'towns-operation_modification':has_associated_file(
+ 'general-operation_modification'),
+ 'parcelsgeneral-operation_modification':has_associated_file(
+ 'general-operation_modification', negate=True),
+ 'parcels-operation_modification':has_associated_file(
+ 'general-operation_modification'),
+ },
+ url_name='operation_modification',)
operation_closing_wizard = OperationClosingWizard.as_view([
- ('selec-operation_closing', OperationFormSelection),
- ('date-operation_closing', ClosingDateFormSelection),
- ('final-operation_closing', FinalOperationClosingForm)],
- label=_(u"Operation closing"),
- url_name='operation_closing',)
+ ('selec-operation_closing', OperationFormSelection),
+ ('date-operation_closing', ClosingDateFormSelection),
+ ('final-operation_closing', FinalOperationClosingForm)],
+ label=_(u"Operation closing"),
+ url_name='operation_closing',)
operation_deletion_wizard = OperationDeletionWizard.as_view([
- ('selec-operation_deletion', OperationFormSelection),
- ('final-operation_deletion', OperationDeletionForm)],
- label=_(u"Operation deletion"),
- url_name='operation_deletion',)
+ ('selec-operation_deletion', OperationFormSelection),
+ ('final-operation_deletion', OperationDeletionForm)],
+ label=_(u"Operation deletion"),
+ url_name='operation_deletion',)
operation_source_creation_wizard = OperationSourceWizard.as_view([
- ('selec-operation_source_creation', SourceOperationFormSelection),
- ('source-operation_source_creation',OperationSourceForm),
- ('authors-operation_source_creation', AuthorFormset),
- ('final-operation_source_creation', FinalForm)],
- label=_(u"Operation: source creation"),
- url_name='operation_source_creation',)
+ ('selec-operation_source_creation', SourceOperationFormSelection),
+ ('source-operation_source_creation',OperationSourceForm),
+ ('authors-operation_source_creation', AuthorFormset),
+ ('final-operation_source_creation', FinalForm)],
+ label=_(u"Operation: source creation"),
+ url_name='operation_source_creation',)
operation_source_modification_wizard = OperationSourceWizard.as_view([
- ('selec-operation_source_modification', OperationSourceFormSelection),
- ('source-operation_source_modification', OperationSourceForm),
- ('authors-operation_source_modification', AuthorFormset),
- ('final-operation_source_modification', FinalForm)],
- label=_(u"Operation: source modification"),
- url_name='operation_source_modification',)
+ ('selec-operation_source_modification', OperationSourceFormSelection),
+ ('source-operation_source_modification', OperationSourceForm),
+ ('authors-operation_source_modification', AuthorFormset),
+ ('final-operation_source_modification', FinalForm)],
+ label=_(u"Operation: source modification"),
+ url_name='operation_source_modification',)
operation_source_deletion_wizard = OperationSourceDeletionWizard.as_view([
- ('selec-operation_source_deletion', OperationSourceFormSelection),
- ('final-operation_source_deletion', SourceDeletionForm)],
- label=_(u"Operation: source deletion"),
- url_name='operation_source_deletion',)
+ ('selec-operation_source_deletion', OperationSourceFormSelection),
+ ('final-operation_source_deletion', SourceDeletionForm)],
+ label=_(u"Operation: source deletion"),
+ url_name='operation_source_deletion',)
operation_administrativeactop_wizard = \
OperationAdministrativeActWizard.as_view([
('selec-operation_administrativeactop', OperationFormSelection),
- ('administrativeact-operation_administrativeactop', AdministrativeActOpeForm),
+ ('administrativeact-operation_administrativeactop',
+ AdministrativeActOpeForm),
('final-operation_administrativeactop', FinalForm)],
- label=_(u"Operation: new administrative act"),
- url_name='operation_administrativeactop',)
+ label=_(u"Operation: new administrative act"),
+ url_name='operation_administrativeactop',)
operation_administrativeactop_modification_wizard = \
OperationEditAdministrativeActWizard.as_view([
- ('selec-operation_administrativeactop_modification',
- AdministrativeActOpeFormSelection),
- ('administrativeact-operation_administrativeactop_modification',
- AdministrativeActOpeForm),
- ('final-operation_administrativeactop_modification', FinalForm)],
- url_name='operation_administrativeactop_modification',)
+ ('selec-operation_administrativeactop_modification',
+ AdministrativeActOpeFormSelection),
+ ('administrativeact-operation_administrativeactop_modification',
+ AdministrativeActOpeForm),
+ ('final-operation_administrativeactop_modification', FinalForm)],
+ label=_(u"Operation: administrative act modification"),
+ url_name='operation_administrativeactop_modification',)
operation_administrativeactop_deletion_wizard = \
AdministrativeActDeletionWizard.as_view([
- ('selec-operation_administrativeactop_deletion',
- AdministrativeActOpeFormSelection),
- ('final-operation_administrativeactop_deletion',
- FinalAdministrativeActDeleteForm)],
- url_name='operation_administrativeactop_deletion',)
+ ('selec-operation_administrativeactop_deletion',
+ AdministrativeActOpeFormSelection),
+ ('final-operation_administrativeactop_deletion',
+ FinalAdministrativeActDeleteForm)],
+ label=_(u"Operation: administrative act deletion"),
+ url_name='operation_administrativeactop_deletion',)
diff --git a/archaeological_operations/wizards.py b/archaeological_operations/wizards.py
index 7c09c1154..66469b5b7 100644
--- a/archaeological_operations/wizards.py
+++ b/archaeological_operations/wizards.py
@@ -19,6 +19,7 @@
from django.conf import settings
from django.core.exceptions import ObjectDoesNotExist
+from django.db.models import Max
from django.shortcuts import render_to_response
from django.template import RequestContext
from django.utils.translation import ugettext_lazy as _
@@ -150,18 +151,20 @@ class OperationSourceWizard(SourceWizard):
initial = super(OperationSourceWizard, self).get_form_initial(step)
# put default index and operation_id field in the main source form
general_form_key = 'selec-' + self.url_name
- if step.startswith('source-') \
- and self.session_has_key(general_form_key):
- gen_storage = self.request.session[storage.prefix]['step_data']\
- [general_form_key]
- if general_form_key+"-operation" in gen_storage:
- operation_id = int(gen_storage[general_form_key+"-operation"])
- elif general_form_key+"-pk" in gen_storage:
- pk = int(gen_storage[general_form_key+"-pk"])
+ if step.startswith('source-'):
+ operation_id = None
+ if self.session_has_key(general_form_key, 'operation'):
try:
+ operation_id = int(self.session_get_value(general_form_key,
+ "operation"))
+ except ValueError:
+ pass
+ elif self.session_has_key(general_form_key, "pk"):
+ try:
+ pk = self.session_get_value(general_form_key, "pk")
source = models.OperationSource.objects.get(pk=pk)
operation_id = source.operation.pk
- except ObjectDoesNotExist:
+ except (ValueError, ObjectDoesNotExist):
pass
if operation_id:
initial['hidden_operation_id'] = operation_id
@@ -241,7 +244,7 @@ def is_preventive(form_name, model, type_key='operation_type', key=''):
return False
try:
typ = request.session[storage.prefix]['step_data']\
- [form_name][form_name+'-'+type_key]
+ [form_name][form_name+'-'+type_key]
if type(typ) in (list, tuple):
typ = typ[0]
typ = int(typ)
@@ -250,3 +253,23 @@ def is_preventive(form_name, model, type_key='operation_type', key=''):
return False
return func
+def has_associated_file(form_name, file_key='associated_file', negate=False):
+ def func(self):
+ request = self.request
+ storage = self.storage
+ if storage.prefix not in request.session or \
+ 'step_data' not in request.session[storage.prefix] or \
+ form_name not in request.session[storage.prefix]['step_data'] or\
+ form_name + '-' + file_key not in \
+ request.session[storage.prefix]['step_data'][form_name]:
+ return negate
+ try:
+ file_id = request.session[storage.prefix]['step_data']\
+ [form_name][form_name+'-'+file_key]
+ if type(file_id) in (list, tuple):
+ file_id = file_id[0]
+ file_id = int(file_id)
+ return not negate
+ except ValueError:
+ return negate
+ return func