diff options
author | Étienne Loks <etienne.loks@peacefrogs.net> | 2012-10-21 01:31:49 +0200 |
---|---|---|
committer | Étienne Loks <etienne.loks@peacefrogs.net> | 2012-10-21 01:31:49 +0200 |
commit | ea73bf44c5d527f407c89b35b22b21abf2f32617 (patch) | |
tree | b0ce9167008a2ef608f522680f3d11a0459663e4 /archaeological_files/wizards.py | |
parent | 8d594a01220d5cbbe9d6e856d1aef04bbb8daf3e (diff) | |
download | Ishtar-ea73bf44c5d527f407c89b35b22b21abf2f32617.tar.bz2 Ishtar-ea73bf44c5d527f407c89b35b22b21abf2f32617.zip |
Djangoization - Major refactoring (step 7)
Work on archaeological_files wizards
Diffstat (limited to 'archaeological_files/wizards.py')
-rw-r--r-- | archaeological_files/wizards.py | 51 |
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 |