summaryrefslogtreecommitdiff
path: root/archaeological_operations/wizards.py
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@peacefrogs.net>2012-10-21 15:04:28 +0200
committerÉtienne Loks <etienne.loks@peacefrogs.net>2012-10-21 15:04:28 +0200
commit038b12ea13407d69fbbe8f0fae3067aa55f1f763 (patch)
treea8d881b59447269f2e92578cf5924759bad17704 /archaeological_operations/wizards.py
parentea73bf44c5d527f407c89b35b22b21abf2f32617 (diff)
downloadIshtar-038b12ea13407d69fbbe8f0fae3067aa55f1f763.tar.bz2
Ishtar-038b12ea13407d69fbbe8f0fae3067aa55f1f763.zip
Djangoization - Major refactoring (step 8)
* clean-up on request and storage args in methods * view creation now managed by South * clean some mess in session values by using MultiValueDict
Diffstat (limited to 'archaeological_operations/wizards.py')
-rw-r--r--archaeological_operations/wizards.py89
1 files changed, 46 insertions, 43 deletions
diff --git a/archaeological_operations/wizards.py b/archaeological_operations/wizards.py
index 542d0118b..2dae72aad 100644
--- a/archaeological_operations/wizards.py
+++ b/archaeological_operations/wizards.py
@@ -31,35 +31,36 @@ class OperationWizard(Wizard):
model = models.Operation
object_parcel_type = 'operation'
- def get_template(self, request, storage):
- templates = super(OperationWizard, self).get_template(request, storage)
+ def get_template_names(self):
+ templates = super(OperationWizard, self).get_template_names()
current_step = storage.get_current_step() or self.get_first_step(
request, storage)
if current_step.startswith('towns-'):
- templates = ['towns_wizard.html'] + templates
+ # vérifier que le context_data est bien chargé
+ #templates = ['ishtar/wizard/towns_wizard.html'] + templates
+ templates = ['ishtar/wizar/towns_wizard.html'] + templates
return templates
- def get_extra_context(self, request, storage):
+ def get_context_data(self, form, **kwargs):
"""
Return extra context for templates
"""
- context = super(OperationWizard, self).get_extra_context(request,
- storage)
+ context = super(OperationWizard, self).get_context_data(forms,
+ **kwargs)
#step = self.determine_step(request, storage)
step = self.steps.current
if not step.startswith('towns-'):
return context
- context['TOWNS'] = self.get_towns(request, storage)
+ context['TOWNS'] = self.get_towns()
return context
- def get_towns(self, request, storage):
+ def get_towns(self):
"""
Obtention des villes disponibles
"""
general_form_key = 'general-' + self.url_name
towns = []
- file_id = self.session_get_value(request, storage, general_form_key,
- "associated_file")
+ file_id = self.session_get_value(general_form_key, "associated_file")
if file_id:
try:
for town in models.File.objects.get(pk=int(file_id)
@@ -71,7 +72,7 @@ class OperationWizard(Wizard):
else:
return -1
- def get_form(self, request, storage, step=None, data=None, files=None):
+ def get_form(self, step=None, data=None, files=None):
"""
Manage specifics fields
"""
@@ -82,13 +83,13 @@ class OperationWizard(Wizard):
if not step:
#step = self.determine_step(request, storage)
step = self.steps.current
- form = self.get_form_list(request, storage)[step]
+ form = self.get_form_list()[step]
general_form_key = 'general-' + self.url_name
# manage the dynamic choice of towns
if step.startswith('towns-') and hasattr(form, 'management_form'):
- data['TOWNS'] = self.get_towns(request, storage)
+ data['TOWNS'] = self.get_towns()
elif step.startswith('parcels') and hasattr(form, 'management_form'):
- file_id = self.session_get_value(request, storage, general_form_key,
+ file_id = self.session_get_value(general_form_key,
"associated_file")
if file_id:
parcels = []
@@ -103,8 +104,8 @@ class OperationWizard(Wizard):
town_form_key = step.startswith('parcelsgeneral') \
and 'townsgeneral-' or 'towns-'
town_form_key += self.url_name
- town_ids = self.session_get_value(request, storage,
- town_form_key, 'town', multi=True) or []
+ town_ids = self.session_get_value(town_form_key, 'town',
+ multi=True) or []
towns = []
for town_id in town_ids:
try:
@@ -114,8 +115,7 @@ class OperationWizard(Wizard):
pass
data['TOWNS'] = sorted(towns, key=lambda x:x[1])
data = data or None
- form = super(OperationWizard, self).get_form(request, storage, step,
- data, files)
+ form = super(OperationWizard, self).get_form(step, data, files)
return form
def get_formated_datas(self, forms):
@@ -138,7 +138,8 @@ class OperationModificationWizard(OperationWizard):
class OperationClosingWizard(ClosingWizard):
model = models.Operation
fields = ['year', 'operation_code', 'operation_type', 'associated_file',
-'in_charge', 'start_date', 'excavation_end_date', 'comment', 'towns', 'remains']
+ 'in_charge', 'start_date', 'excavation_end_date', 'comment',
+ 'towns', 'remains']
class OperationDeletionWizard(DeletionWizard):
model = models.Operation
@@ -146,15 +147,14 @@ class OperationDeletionWizard(DeletionWizard):
class OperationSourceWizard(SourceWizard):
model = models.OperationSource
- def get_form_initial(self, request, storage, step):
- initial = super(OperationSourceWizard, self).get_form_initial(request,
- storage, step)
+ def get_form_initial(self, step):
+ 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(request, storage, general_form_key):
- gen_storage = request.session[storage.prefix]['step_data']\
- [general_form_key]
+ 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:
@@ -180,27 +180,27 @@ class OperationSourceDeletionWizard(DeletionWizard):
class OperationAdministrativeActWizard(OperationWizard):
edit = False
- def get_extra_model(self, dct, request, storage, form_list):
- dct['history_modifier'] = request.user
+ def get_extra_model(self, dct, form_list):
+ dct['history_modifier'] = self.request.user
return dct
- def get_associated_item(self, request, storage, dct):
- return self.get_current_object(request, storage)
+ def get_associated_item(self, dct):
+ return self.get_current_object()
- def save_model(self, dct, m2m, whole_associated_models, request, storage,
- form_list, return_object):
- associated_item = self.get_associated_item(request, storage, dct)
+ def save_model(self, dct, m2m, whole_associated_models, form_list,
+ return_object):
+ associated_item = self.get_associated_item(dct)
if not associated_item:
- return self.render(request, storage, form_list[-1])
+ return self.render(form_list[-1])
if isinstance(associated_item, models.File):
dct['associated_file'] = associated_item
elif isinstance(associated_item, models.Operation):
dct['operation'] = associated_item
- dct['history_modifier'] = request.user
+ dct['history_modifier'] = self.request.user
if 'pk' in dct:
dct.pop('pk')
if self.edit:
- admact = self.get_current_object(request, storage)
+ admact = self.get_current_object()
for k in dct:
if hasattr(admact, k):
setattr(admact, k, dct[k])
@@ -208,14 +208,14 @@ class OperationAdministrativeActWizard(OperationWizard):
admact = models.AdministrativeAct(**dct)
admact.save()
res = render_to_response('wizard_done.html', {},
- context_instance=RequestContext(request))
+ context_instance=RequestContext(self.request))
return res
class OperationEditAdministrativeActWizard(OperationAdministrativeActWizard):
model = models.AdministrativeAct
edit = True
- def get_associated_item(self, request, storage, dct):
- return self.get_current_object(request, storage).operation
+ def get_associated_item(self, dct):
+ return self.get_current_object().operation
class AdministrativeActDeletionWizard(ClosingWizard):
model = models.AdministrativeAct
@@ -224,11 +224,11 @@ class AdministrativeActDeletionWizard(ClosingWizard):
if settings.COUNTRY == 'fr':
fields += ['ref_sra']
- def done(self, request, storage, form_list, **kwargs):
- obj = self.get_current_object(request, storage)
+ def done(self, form_list, **kwargs):
+ obj = self.get_current_object()
obj.delete()
return render_to_response('wizard_done.html', {},
- context_instance=RequestContext(request))
+ context_instance=RequestContext(self.request))
def is_preventive(form_name, model, type_key='operation_type', key=''):
def func(self):
@@ -241,8 +241,11 @@ def is_preventive(form_name, model, type_key='operation_type', key=''):
request.session[storage.prefix]['step_data'][form_name]:
return False
try:
- typ = int(request.session[storage.prefix]['step_data']\
- [form_name][form_name+'-'+type_key][0])
+ typ = request.session[storage.prefix]['step_data']\
+ [form_name][form_name+'-'+type_key]
+ if type(typ) in (list, tuple):
+ typ = typ[0]
+ typ = int(typ)
return model.is_preventive(typ, key)
except ValueError:
return False