summaryrefslogtreecommitdiff
path: root/archaeological_operations/wizards.py
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@peacefrogs.net>2012-10-21 19:24:56 +0200
committerÉtienne Loks <etienne.loks@peacefrogs.net>2012-10-21 19:24:56 +0200
commit661180e434f94afdec0a6ee86b5c1aa1a7aa354f (patch)
tree45d5fe6bcd60fe66954db08976a649bfa9203747 /archaeological_operations/wizards.py
parent92c84e043c6e788190980883265e50ed8a1fa5a1 (diff)
downloadIshtar-661180e434f94afdec0a6ee86b5c1aa1a7aa354f.tar.bz2
Ishtar-661180e434f94afdec0a6ee86b5c1aa1a7aa354f.zip
Djangoization - Major refactoring (step 10)
* Fix operation wizards * Minor fix on other wizards
Diffstat (limited to 'archaeological_operations/wizards.py')
-rw-r--r--archaeological_operations/wizards.py43
1 files changed, 33 insertions, 10 deletions
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