diff options
| -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>.+)$', | 
