summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
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
commit6aa00adfac33c9b21208332bd1e29df9d5882f3e (patch)
tree9ded4e826a7dcce3577fb28c9e652c1971b9870f
parent861999ff77ff11aedc73a83aa084f03d723e720b (diff)
downloadIshtar-6aa00adfac33c9b21208332bd1e29df9d5882f3e.tar.bz2
Ishtar-6aa00adfac33c9b21208332bd1e29df9d5882f3e.zip
Closing an archaeological file (closes #558)
-rw-r--r--ishtar/ishtar_base/admin.py4
-rw-r--r--ishtar/ishtar_base/forms.py5
-rw-r--r--ishtar/ishtar_base/forms_files.py22
-rw-r--r--ishtar/ishtar_base/forms_operations.py10
-rw-r--r--ishtar/ishtar_base/menus.py4
-rw-r--r--ishtar/ishtar_base/models.py15
-rw-r--r--ishtar/ishtar_base/urls.py2
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>.+)$',