diff options
author | Étienne Loks <etienne.loks@peacefrogs.net> | 2011-08-04 23:32:09 +0200 |
---|---|---|
committer | Étienne Loks <etienne.loks@peacefrogs.net> | 2011-08-04 23:32:09 +0200 |
commit | 6aa00adfac33c9b21208332bd1e29df9d5882f3e (patch) | |
tree | 9ded4e826a7dcce3577fb28c9e652c1971b9870f | |
parent | 861999ff77ff11aedc73a83aa084f03d723e720b (diff) | |
download | Ishtar-6aa00adfac33c9b21208332bd1e29df9d5882f3e.tar.bz2 Ishtar-6aa00adfac33c9b21208332bd1e29df9d5882f3e.zip |
Closing an archaeological file (closes #558)
-rw-r--r-- | ishtar/ishtar_base/admin.py | 4 | ||||
-rw-r--r-- | ishtar/ishtar_base/forms.py | 5 | ||||
-rw-r--r-- | ishtar/ishtar_base/forms_files.py | 22 | ||||
-rw-r--r-- | ishtar/ishtar_base/forms_operations.py | 10 | ||||
-rw-r--r-- | ishtar/ishtar_base/menus.py | 4 | ||||
-rw-r--r-- | ishtar/ishtar_base/models.py | 15 | ||||
-rw-r--r-- | ishtar/ishtar_base/urls.py | 2 |
7 files changed, 38 insertions, 24 deletions
diff --git a/ishtar/ishtar_base/admin.py b/ishtar/ishtar_base/admin.py index e2388a86a..c1bcd9766 100644 --- a/ishtar/ishtar_base/admin.py +++ b/ishtar/ishtar_base/admin.py @@ -59,10 +59,10 @@ admin.site.register(models.Person, PersonAdmin) class FileAdmin(HistorizedObjectAdmin): list_display = ['year', 'numeric_reference', 'internal_reference', - 'is_active', 'file_type', 'general_contractor',] + 'end_date', 'file_type', 'general_contractor',] if settings.COUNTRY == 'fr': list_display += ['saisine_type', 'reference_number'] - list_filter = ("file_type", "year", 'is_active',) + list_filter = ("file_type", "year",) search_fields = ('towns__name',) model = models.File diff --git a/ishtar/ishtar_base/forms.py b/ishtar/ishtar_base/forms.py index 1021caee5..e4f52b1cd 100644 --- a/ishtar/ishtar_base/forms.py +++ b/ishtar/ishtar_base/forms.py @@ -691,6 +691,11 @@ class DeletionWizard(Wizard): return render_to_response('wizard_delete_done.html', {}, context_instance=RequestContext(request)) +class ClosingDateFormSelection(forms.Form): + form_label = _("Closing date") + end_date = forms.DateField(label=_(u"Closing date"), + widget=widgets.JQueryDate) + class ClosingWizard(Wizard): # "close" an item # to be define in the overloaded class diff --git a/ishtar/ishtar_base/forms_files.py b/ishtar/ishtar_base/forms_files.py index 4f5ac18f4..61db92fa5 100644 --- a/ishtar/ishtar_base/forms_files.py +++ b/ishtar/ishtar_base/forms_files.py @@ -34,8 +34,9 @@ from ishtar import settings import models import widgets -from forms import Wizard, FinalForm, FormSet, ClosingWizard, SearchWizard, \ - formset_factory, get_now, reverse_lazy +from forms import Wizard, FinalForm, FormSet, ClosingWizard, \ + ClosingDateFormSelection, SearchWizard, formset_factory, get_now, \ + reverse_lazy from forms_common import TownFormset, ParcelFormSet, \ get_town_field, get_person_field from forms_operations import OperationAdministrativeActWizard, \ @@ -282,6 +283,16 @@ class FileClosingWizard(ClosingWizard): fields += ['saisine_type', 'reference_number'] fields += ['towns'] +class FinalFileClosingForm(FinalForm): + confirm_msg = " " + confirm_end_msg = _(u"Would you like to close this archaeological file?") + +file_closing_wizard = FileClosingWizard([ + ('selec-file_closing', FileFormSelection), + ('date-file_closing', ClosingDateFormSelection), + ('final-file_closing', FinalFileClosingForm)], + url_name='file_closing',) + class FileDeletionWizard(FileClosingWizard): def get_formated_datas(self, forms): datas = super(FileDeletionWizard, self).get_formated_datas(forms) @@ -310,13 +321,6 @@ file_deletion_wizard = FileDeletionWizard([ ('selec-file_deletion', FileFormSelection), ('final-file_deletion', FinalFileDeleteForm)], url_name='file_deletion',) -""" -file_closing_wizard = FileWizard([ - ('selec-file_closing', FileFormSelection), - ('date-operation_closing', OperationDateFormSelection), - ('final-operation_closing', FinalOperationClosingForm)], - url_name='operation_closing',) -""" class FileAdministrativeActWizard(OperationAdministrativeActWizard): model = models.File diff --git a/ishtar/ishtar_base/forms_operations.py b/ishtar/ishtar_base/forms_operations.py index 30fc11bec..3227e8d84 100644 --- a/ishtar/ishtar_base/forms_operations.py +++ b/ishtar/ishtar_base/forms_operations.py @@ -35,7 +35,8 @@ from ishtar import settings import models import widgets from forms import Wizard, FinalForm, FormSet, SearchWizard, ClosingWizard, \ - DeletionWizard, formset_factory, get_now, reverse_lazy, get_form_selection + ClosingDateFormSelection, DeletionWizard, formset_factory, get_now, \ + reverse_lazy, get_form_selection from forms_common import TownForm, TownFormSet, TownFormset, ParcelFormSet, \ ParcelForm, AuthorFormset, SourceForm, SourceWizard, SourceSelect, \ SourceDeletionForm, get_town_field @@ -479,11 +480,6 @@ operation_modification_wizard = OperationWizard([ }, url_name='operation_modification',) -class OperationDateFormSelection(forms.Form): - form_label = _("Closing date") - end_date = forms.DateField(label=_(u"Closing date"), - widget=widgets.JQueryDate) - class OperationClosingWizard(ClosingWizard): model = models.Operation fields = ['year', 'operation_code', 'operation_type', 'associated_file', @@ -495,7 +491,7 @@ class FinalOperationClosingForm(FinalForm): operation_closing_wizard = OperationClosingWizard([ ('selec-operation_closing', OperationFormSelection), - ('date-operation_closing', OperationDateFormSelection), + ('date-operation_closing', ClosingDateFormSelection), ('final-operation_closing', FinalOperationClosingForm)], url_name='operation_closing',) diff --git a/ishtar/ishtar_base/menus.py b/ishtar/ishtar_base/menus.py index a5a0e17ec..7844fdc9d 100644 --- a/ishtar/ishtar_base/menus.py +++ b/ishtar/ishtar_base/menus.py @@ -110,6 +110,10 @@ class Menu: MenuItem('file_modification', _(u"Modification"), model=models.File, access_controls=['change_file', 'change_own_file']), + MenuItem('file_closing', _(u"Closing"), + model=models.File, + access_controls=['change_file', + 'change_own_file']), MenuItem('file_deletion', _(u"Deletion"), model=models.File, access_controls=['delete_file', 'delete_own_file']), diff --git a/ishtar/ishtar_base/models.py b/ishtar/ishtar_base/models.py index a41b17215..4fcb79186 100644 --- a/ishtar/ishtar_base/models.py +++ b/ishtar/ishtar_base/models.py @@ -762,7 +762,7 @@ class File(BaseHistorizedItem, OwnPerms): blank=True, null=True) permit_reference = models.CharField(_(u"Permit reference"), max_length=60, blank=True, null=True) - is_active = models.BooleanField(_(u"Is active?"), default=True) + end_date = models.DateField(_(u"Closing date"), null=True, blank=True) towns = models.ManyToManyField("Town", verbose_name=_(u"Towns"), related_name='file') creation_date = models.DateField(_(u"Creation date"), @@ -824,16 +824,19 @@ class File(BaseHistorizedItem, OwnPerms): @classmethod def get_query_owns(cls, user): - return Q(history_modifier=user) & Q(is_active=True) + return Q(history_modifier=user) & Q(end_date__isnull=True) + + def is_active(self): + return not bool(self.end_date) def closing(self): - if self.is_active: + if self.is_active(): return for item in self.history.all(): - if item.is_active(): + if not item.end_date: break - closing_item = item - return {'date':item.history_date, 'user':item.history_modifier} + return {'date':item.history_date, + 'user':IshtarUser.objects.get(pk=item.history_modifier_id)} def total_surface_ha(self): if self.total_surface: diff --git a/ishtar/ishtar_base/urls.py b/ishtar/ishtar_base/urls.py index d41027369..b31aa323d 100644 --- a/ishtar/ishtar_base/urls.py +++ b/ishtar/ishtar_base/urls.py @@ -42,6 +42,8 @@ urlpatterns = patterns('', ishtar_forms.file_creation_wizard, name='file_creation'), url(BASE_URL + r'file_modification/(?P<step>.+)$', ishtar_forms.file_modification_wizard, name='file_modification'), + url(BASE_URL + r'file_closing/(?P<step>.+)$', + ishtar_forms.file_closing_wizard, name='file_closing'), url(BASE_URL + r'file_deletion/(?P<step>.+)$', ishtar_forms.file_deletion_wizard, name='file_deletion'), url(BASE_URL + r'file_administrativeactfile/(?P<step>.+)$', |