summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--archaeological_operations/forms.py8
-rw-r--r--archaeological_operations/views.py8
-rw-r--r--ishtar_common/views.py15
3 files changed, 28 insertions, 3 deletions
diff --git a/archaeological_operations/forms.py b/archaeological_operations/forms.py
index 62425b68d..f2a81a85d 100644
--- a/archaeological_operations/forms.py
+++ b/archaeological_operations/forms.py
@@ -106,6 +106,14 @@ class OperationSelect(forms.Form):
remains = forms.ChoiceField(label=_(u"Remains"),
choices=models.RemainType.get_types())
year = forms.IntegerField(label=_("Year"))
+ start_before = forms.DateField(label=_(u"Started before"),
+ widget=widgets.JQueryDate)
+ start_after = forms.DateField(label=_(u"Started after"),
+ widget=widgets.JQueryDate)
+ end_before = forms.DateField(label=_(u"Ended before"),
+ widget=widgets.JQueryDate)
+ end_after = forms.DateField(label=_(u"Ended after"),
+ widget=widgets.JQueryDate)
end_date = forms.NullBooleanField(label=_(u"Is open?"))
def __init__(self, *args, **kwargs):
diff --git a/archaeological_operations/views.py b/archaeological_operations/views.py
index 96fd2efd2..e12b8edd6 100644
--- a/archaeological_operations/views.py
+++ b/archaeological_operations/views.py
@@ -94,9 +94,15 @@ def get_available_operation_code(request, year=None):
get_operation = get_item(models.Operation, 'get_operation', 'operation',
bool_fields = ['end_date__isnull'],
+ dated_fields = ['start_date__lte', 'start_date__gte',
+ 'excavation_end_date__lte', 'excavation_end_date__gte'],
extra_request_keys={'common_name':'common_name__icontains',
'end_date':'end_date__isnull',
- 'year_index':('year', 'operation_code')})
+ 'year_index':('year', 'operation_code'),
+ 'start_before':'start_date__lte',
+ 'start_after':'start_date__gte',
+ 'end_before':'excavation_end_date__lte',
+ 'end_after':'excavation_end_date__gte',})
show_operation = show_item(models.Operation, 'operation')
revert_operation = revert_item(models.Operation)
diff --git a/ishtar_common/views.py b/ishtar_common/views.py
index 4a1a656d9..83833e517 100644
--- a/ishtar_common/views.py
+++ b/ishtar_common/views.py
@@ -173,7 +173,7 @@ HIERARCHIC_LEVELS = 5
HIERARCHIC_FIELDS = ['period', 'unit', 'material_type']
PRIVATE_FIELDS = ('id', 'history_modifier', 'order')
def get_item(model, func_name, default_name, extra_request_keys=[],
- base_request={}, bool_fields=[]):
+ base_request={}, bool_fields=[], dated_fields=[]):
"""
Generic treatment of tables
"""
@@ -213,7 +213,18 @@ def get_item(model, func_name, default_name, extra_request_keys=[],
dct.pop(k)
else:
dct[k] = dct[k] == u"2" and True or False
-
+ for k in dated_fields:
+ if k in dct:
+ if not dct[k]:
+ dct.pop(k)
+ try:
+ items = dct[k].split('/')
+ assert len(items) == 3
+ dct[k] = datetime.date(*map(lambda x: int(x),
+ reversed(items))
+ ).strftime('%Y-%m-%d')
+ except AssertionError:
+ dct.pop(k)
# manage hierarchic conditions
or_reqs = []
for req in dct.copy():