diff options
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 |
commit | 58568e150d54f4715d4bc91bf0ebefa772a39682 (patch) | |
tree | 45d5fe6bcd60fe66954db08976a649bfa9203747 /archaeological_operations/wizards.py | |
parent | 4bf634a003ab6c3d9edf1cc7fa40e7203d59711f (diff) | |
download | Ishtar-58568e150d54f4715d4bc91bf0ebefa772a39682.tar.bz2 Ishtar-58568e150d54f4715d4bc91bf0ebefa772a39682.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.py | 43 |
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 |