summaryrefslogtreecommitdiff
path: root/archaeological_files/wizards.py
diff options
context:
space:
mode:
Diffstat (limited to 'archaeological_files/wizards.py')
-rw-r--r--archaeological_files/wizards.py51
1 files changed, 27 insertions, 24 deletions
diff --git a/archaeological_files/wizards.py b/archaeological_files/wizards.py
index b161deae0..e98248965 100644
--- a/archaeological_files/wizards.py
+++ b/archaeological_files/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 _
@@ -26,14 +27,15 @@ from django.utils.translation import ugettext_lazy as _
from ishtar_common.wizards import Wizard, ClosingWizard
from archaeological_operations.wizards import OperationAdministrativeActWizard,\
AdministrativeActDeletionWizard
-from archaeological_operations.models import AdministrativeAct
+from ishtar_common.models import Town
+from archaeological_operations.models import AdministrativeAct, Parcel
import models
class FileWizard(Wizard):
model = models.File
object_parcel_type = 'associated_file'
- def get_form(self, request, storage, step=None, data=None, files=None):
+ def get_form(self, step=None, data=None, files=None):
"""
Manage towns
"""
@@ -43,40 +45,40 @@ class FileWizard(Wizard):
data = {}
# manage the dynamic choice of towns
if not step:
- step = self.determine_step(request, storage)
- form = self.get_form_list(request, storage)[step]
+ # step = self.determine_step(request, storage)
+ step = self.steps.current
+ form = self.get_form_list()[step]
town_form_key = 'towns-' + self.url_name
if step.startswith('parcels-') and hasattr(form, 'management_form') \
- and self.session_has_key(request, storage, town_form_key):
+ and self.session_has_key(self.request, self.storage, town_form_key):
towns = []
- qdict = request.session[storage.prefix]['step_data'][town_form_key]
+ qdict = self.request.session[self.storage.prefix]['step_data']\
+ [town_form_key]
for k in qdict.keys():
if k.endswith("town") and qdict[k]:
try:
- town = Town.objects.get(pk=int(qdict[k]))
+ town = Town.objects.get(pk=int(qdict[k][0]))
towns.append((town.pk, unicode(town)))
except (ObjectDoesNotExist, ValueError):
pass
data['TOWNS'] = sorted(towns, key=lambda x:x[1])
- form = super(FileWizard, self).get_form(request, storage, step, data,
- files)
+ form = super(FileWizard, self).get_form(step, data, files)
return form
- def get_extra_model(self, dct, request, storage, form_list):
- dct = super(FileWizard, self).get_extra_model(dct, request, storage,
- form_list)
+ def get_extra_model(self, dct, form_list):
+ dct = super(FileWizard, self).get_extra_model(dct, form_list)
if not dct['numeric_reference']:
current_ref = models.File.objects.filter(year=dct['year']
).aggregate(Max('numeric_reference'))["numeric_reference__max"]
dct['numeric_reference'] = current_ref and current_ref + 1 or 1
return dct
- def done(self, request, storage, form_list, **kwargs):
+ def done(self, form_list, **kwargs):
'''
Save parcels
'''
- r = super(FileWizard, self).done(request, storage, form_list,
- return_object=True, **kwargs)
+ r = super(FileWizard, self).done(form_list, return_object=True,
+ **kwargs)
if type(r) not in (list, tuple) or len(r) != 2:
return r
obj, res = r
@@ -92,7 +94,7 @@ class FileWizard(Wizard):
dct = frm.cleaned_data.copy()
if 'parcel' in dct:
try:
- parcel = models.Parcel.objects.get(pk=dct['parcel'])
+ parcel = Parcel.objects.get(pk=dct['parcel'])
setattr(parcel, self.object_parcel_type, obj)
parcel.save()
except (ValueError, ObjectDoesNotExist):
@@ -106,10 +108,10 @@ class FileWizard(Wizard):
dct[self.object_parcel_type] = obj
if 'DELETE' in dct:
dct.pop('DELETE')
- parcel = models.Parcel.objects.filter(**dct).count()
+ parcel = Parcel.objects.filter(**dct).count()
if not parcel:
- dct['history_modifier'] = request.user
- parcel = models.Parcel(**dct)
+ dct['history_modifier'] = self.request.user
+ parcel = Parcel(**dct)
parcel.save()
return res
@@ -125,6 +127,7 @@ class FileClosingWizard(ClosingWizard):
if settings.COUNTRY == 'fr':
fields += ['saisine_type', 'reference_number']
fields += ['towns']
+
class FileDeletionWizard(FileClosingWizard):
def get_formated_datas(self, forms):
datas = super(FileDeletionWizard, self).get_formated_datas(forms)
@@ -135,14 +138,14 @@ class FileDeletionWizard(FileClosingWizard):
datas[-1][1].append(('', unicode(operation)))
return datas
- 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()
for operation in models.Operation.objects.filter(
associated_file=obj).all():
operation.delete()
obj.delete()
return render_to_response('wizard_done.html', {},
- context_instance=RequestContext(request))
+ context_instance=RequestContext(self.request))
class FileAdministrativeActWizard(OperationAdministrativeActWizard):
@@ -151,5 +154,5 @@ class FileAdministrativeActWizard(OperationAdministrativeActWizard):
class FileEditAdministrativeActWizard(FileAdministrativeActWizard):
model = AdministrativeAct
edit = True
- def get_associated_item(self, request, storage, dct):
- return self.get_current_object(request, storage).associated_file
+ def get_associated_item(self, dct):
+ return self.get_current_object().associated_file