diff options
Diffstat (limited to 'ishtar_common/views.py')
-rw-r--r-- | ishtar_common/views.py | 15 |
1 files changed, 13 insertions, 2 deletions
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(): |