diff options
-rw-r--r-- | archaeological_operations/forms.py | 8 | ||||
-rw-r--r-- | archaeological_operations/views.py | 8 | ||||
-rw-r--r-- | ishtar_common/views.py | 15 |
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(): |