diff options
Diffstat (limited to 'archaeological_files')
-rw-r--r-- | archaeological_files/views.py | 24 | ||||
-rw-r--r-- | archaeological_files/wizards.py | 68 |
2 files changed, 33 insertions, 59 deletions
diff --git a/archaeological_files/views.py b/archaeological_files/views.py index 942ee6ae3..fd0507295 100644 --- a/archaeological_files/views.py +++ b/archaeological_files/views.py @@ -17,7 +17,8 @@ # See the file COPYING for details. -import json, re +import json +import re from django.core.urlresolvers import reverse from django.db.models import Q @@ -32,17 +33,17 @@ from archaeological_operations.models import Operation import models from ishtar_common.wizards import SearchWizard -from archaeological_operations.wizards import is_preventive, is_not_preventive +from archaeological_operations.wizards import AdministrativeActDeletionWizard, \ + is_preventive, is_not_preventive from wizards import * from ishtar_common.forms_common import TownFormset -from archaeological_operations.forms import ParcelFormSet, \ - DocumentGenerationAdminActForm +from archaeological_operations.forms import ParcelFormSet from forms import * -from archaeological_operations.views import generatedoc_administrativeactop -RE_YEAR_INDEX = re.compile(r"([1-2][0-9]{3})-([0-9]+)") # eg.: 2014-123 +RE_YEAR_INDEX = re.compile(r"([1-2][0-9]{3})-([0-9]+)") # eg.: 2014-123 + def autocomplete_file(request): if not request.user.has_perm('ishtar_common.view_file', models.File) and \ @@ -55,10 +56,10 @@ def autocomplete_file(request): query = Q() for q in q.split(' '): extra = Q(internal_reference__icontains=q) | \ - Q(towns__name__icontains=q) | \ - Q(address__icontains=q) + Q(towns__name__icontains=q) | \ + Q(address__icontains=q) try: - value = int(q) + int(q) extra = extra | Q(year=q) | Q(numeric_reference=q) except ValueError: pass @@ -69,8 +70,8 @@ def autocomplete_file(request): query = query & extra limit = 20 files = models.File.objects.filter(query)[:limit] - data = json.dumps([{'id':file.pk, 'value':unicode(file)} - for file in files]) + data = json.dumps([{'id': file.pk, 'value': unicode(file)} + for file in files]) return HttpResponse(data, mimetype='text/plain') get_file = get_item(models.File, 'get_file', 'file', @@ -88,6 +89,7 @@ get_file = get_item(models.File, 'get_file', 'file', },) revert_file = revert_item(models.File) + def extra_file_dct(request, item): dct = {} if (request.user.has_perm('ishtar_common.add_operation', Operation) 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 |