summaryrefslogtreecommitdiff
path: root/ishtar/ishtar_base
diff options
context:
space:
mode:
Diffstat (limited to 'ishtar/ishtar_base')
-rw-r--r--ishtar/ishtar_base/admin.py3
-rw-r--r--ishtar/ishtar_base/forms_operations.py18
-rw-r--r--ishtar/ishtar_base/models.py2
3 files changed, 21 insertions, 2 deletions
diff --git a/ishtar/ishtar_base/admin.py b/ishtar/ishtar_base/admin.py
index ace959295..e2388a86a 100644
--- a/ishtar/ishtar_base/admin.py
+++ b/ishtar/ishtar_base/admin.py
@@ -69,7 +69,8 @@ class FileAdmin(HistorizedObjectAdmin):
admin.site.register(models.File, FileAdmin)
class OperationAdmin(HistorizedObjectAdmin):
- list_display = ['year', 'operation_code', 'start_date', 'end_date',
+ list_display = ['year', 'operation_code', 'start_date',
+ 'excavation_end_date', 'end_date',
'operation_type']
list_filter = ("year", "operation_type",)
search_fields = ['towns__name', 'operation_code']
diff --git a/ishtar/ishtar_base/forms_operations.py b/ishtar/ishtar_base/forms_operations.py
index 6e6cdc03e..5ed882530 100644
--- a/ishtar/ishtar_base/forms_operations.py
+++ b/ishtar/ishtar_base/forms_operations.py
@@ -232,6 +232,8 @@ class OperationFormGeneral(forms.Form):
choices=[])
start_date = forms.DateField(label=_(u"Start date"), required=False,
widget=widgets.JQueryDate)
+ excavation_end_date = forms.DateField(label=_(u"Excavation end date"),
+ required=False, widget=widgets.JQueryDate)
surface = forms.IntegerField(required=False, widget=widgets.AreaWidget,
label=_(u"Total surface (m²)"),
validators=[validators.MinValueValidator(0),
@@ -248,6 +250,20 @@ class OperationFormGeneral(forms.Form):
self.fields['operation_type'].choices = models.OperationType.get_types()
self.fields['operation_type'].help_text = models.OperationType.get_help()
+ def clean(self):
+ # verify the logic between start date and excavation end date
+ if not self.cleaned_data['excavation_end_date']:
+ return self.cleaned_data
+ if self.cleaned_data['excavation_end_date'] and \
+ not self.cleaned_data['start_date']:
+ raise forms.ValidationError(_(u"If you want to set an excavation \
+end date you have to provide a start date."))
+ if self.cleaned_data['excavation_end_date'] < \
+ self.cleaned_data['start_date']:
+ raise forms.ValidationError(_(u"The excavation end date cannot be \
+before the start date."))
+ return self.cleaned_data
+
class OperationFormReference(forms.Form):
form_label = _("References")
associated_models = {'in_charge':models.Person,
@@ -470,7 +486,7 @@ class OperationDateFormSelection(forms.Form):
class OperationClosingWizard(ClosingWizard):
model = models.Operation
fields = ['year', 'operation_code', 'operation_type', 'associated_file',
- 'in_charge', 'start_date', 'end_date', 'comment', 'towns', 'remains']
+'in_charge', 'start_date', 'excavation_end_date', 'comment', 'towns', 'remains']
class FinalOperationClosingForm(FinalForm):
confirm_msg = " "
diff --git a/ishtar/ishtar_base/models.py b/ishtar/ishtar_base/models.py
index 4c4cdfc2e..8c4c91dae 100644
--- a/ishtar/ishtar_base/models.py
+++ b/ishtar/ishtar_base/models.py
@@ -629,6 +629,8 @@ class Operation(BaseHistorizedItem, OwnPerms):
TABLE_COLS = ['operation_code', 'year', 'operation_type',
'remains', 'towns', 'associated_file', 'start_date']
start_date = models.DateField(_(u"Start date"), null=True, blank=True)
+ excavation_end_date = models.DateField(_(u"Excavation end date"), null=True,
+ blank=True)
end_date = models.DateField(_(u"Closing date"), null=True, blank=True)
in_charge = models.ForeignKey('Person', related_name='+', null=True,
blank=True, verbose_name=_(u"In charge"))