diff options
Diffstat (limited to 'archaeological_files/wizards.py')
-rw-r--r-- | archaeological_files/wizards.py | 68 |
1 files changed, 20 insertions, 48 deletions
diff --git a/archaeological_files/wizards.py b/archaeological_files/wizards.py index 00949b8db..7fac15c66 100644 --- a/archaeological_files/wizards.py +++ b/archaeological_files/wizards.py @@ -1,6 +1,6 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (C) 2012-2014 Étienne Loks <etienne.loks_AT_peacefrogsDOTnet> +# Copyright (C) 2012-2015 Étienne Loks <etienne.loks_AT_peacefrogsDOTnet> # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as @@ -25,15 +25,14 @@ from django.template import RequestContext from django.utils.translation import ugettext_lazy as _ from ishtar_common.forms import reverse_lazy -from ishtar_common.wizards import Wizard, ClosingWizard +from ishtar_common.wizards import ClosingWizard from archaeological_operations.wizards import OperationWizard,\ - OperationAdministrativeActWizard,\ - AdministrativeActDeletionWizard -from ishtar_common.models import Town + OperationAdministrativeActWizard from archaeological_operations.models import AdministrativeAct, Parcel, \ - Operation + Operation import models + class FileWizard(OperationWizard): model = models.File object_parcel_type = 'associated_file' @@ -41,46 +40,11 @@ class FileWizard(OperationWizard): town_step_keys = ['towns-'] wizard_done_window = reverse_lazy('show-file') - ''' - def get_form(self, step=None, data=None, files=None): - """ - Manage towns - """ - if data: - data = data.copy() - else: - data = {} - # manage the dynamic choice of towns - if not step: - # step = self.determine_step(request, storage) - step = self.steps.current - form = self.get_form_list()[step] - town_form_key = self.town_step_key - town_form_key += self.url_name - if step.startswith(self.parcel_step_key) \ - and hasattr(form, 'management_form') \ - and self.session_has_key(town_form_key): - towns = [] - 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][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(step, data, files) - """ - return form - ''' - def get_extra_model(self, dct, form_list): dct = super(FileWizard, self).get_extra_model(dct, form_list) if not dct.get('numeric_reference'): - current_ref = models.File.objects.filter(year=dct['year'] - ).aggregate(Max('numeric_reference'))["numeric_reference__max"] + 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 @@ -126,9 +90,11 @@ class FileWizard(OperationWizard): parcel.save() return res + class FileModificationWizard(FileWizard): modification = True + class FileClosingWizard(ClosingWizard): model = models.File fields = ['year', 'numeric_reference', 'internal_reference', @@ -139,12 +105,14 @@ class FileClosingWizard(ClosingWizard): fields += ['saisine_type', 'reference_number'] fields += ['towns'] + class FileDeletionWizard(FileClosingWizard): def get_formated_datas(self, forms): datas = super(FileDeletionWizard, self).get_formated_datas(forms) datas.append((_("Associated operations"), [])) for operation in Operation.objects.filter( - associated_file=self.current_obj).all(): + associated_file=self.current_obj).all(): + if operation.end_date: datas[-1][1].append(('', unicode(operation))) return datas @@ -154,8 +122,9 @@ class FileDeletionWizard(FileClosingWizard): for operation in Operation.objects.filter(associated_file=obj).all(): operation.delete() obj.delete() - return render_to_response('ishtar/wizard/wizard_delete_done.html', {}, - context_instance=RequestContext(self.request)) + return render_to_response( + 'ishtar/wizard/wizard_delete_done.html', {}, + context_instance=RequestContext(self.request)) class FileAdministrativeActWizard(OperationAdministrativeActWizard): @@ -168,8 +137,9 @@ class FileAdministrativeActWizard(OperationAdministrativeActWizard): # and '_deletion' so it is creation file_id = self.session_get_value(form_key, "pk") try: - return ((_(u"Archaelogical file"), - unicode(models.File.objects.get(pk=file_id))),) + return ( + (_(u"Archaelogical file"), + unicode(models.File.objects.get(pk=file_id))),) except models.File.DoesNotExist: return else: @@ -183,8 +153,10 @@ class FileAdministrativeActWizard(OperationAdministrativeActWizard): except AdministrativeAct.DoesNotExist: return + class FileEditAdministrativeActWizard(FileAdministrativeActWizard): model = AdministrativeAct edit = True + def get_associated_item(self, dct): return self.get_current_object().associated_file |