diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2019-05-21 14:10:15 +0200 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2019-06-17 13:21:28 +0200 |
commit | e1add4422cd9801a2683b4c9f68b2e9e60a9f28a (patch) | |
tree | 8d42915f90dc0a3b575604560c5521211f1d7567 /ishtar_common/views_item.py | |
parent | 2b1f1b5e2473f824acf804a0d8ed398721b05104 (diff) | |
download | Ishtar-e1add4422cd9801a2683b4c9f68b2e9e60a9f28a.tar.bz2 Ishtar-e1add4422cd9801a2683b4c9f68b2e9e60a9f28a.zip |
Optimize tables query for operations and sites
Diffstat (limited to 'ishtar_common/views_item.py')
-rw-r--r-- | ishtar_common/views_item.py | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/ishtar_common/views_item.py b/ishtar_common/views_item.py index 000b17a33..80975eb0a 100644 --- a/ishtar_common/views_item.py +++ b/ishtar_common/views_item.py @@ -1101,7 +1101,7 @@ def _format_geojson(rows, link_template): return data -def _get_data_from_query(items, query_table_cols, request, extra_request_keys, +def _get_data_from_query(items, query_table_cols, extra_request_keys, point_field=None): for query_keys in query_table_cols: if not isinstance(query_keys, (tuple, list)): @@ -1615,7 +1615,6 @@ def get_item(model, func_name, default_name, extra_request_keys=None, for extra in extras: items = items.extra(**extra) - items = items.distinct() items_nb = items.values('id').aggregate(Count('id'))['id__count'] @@ -1784,8 +1783,11 @@ def get_item(model, func_name, default_name, extra_request_keys=None, if data_type == 'json-map': point_field = query_table_cols.pop() datas = _get_data_from_query( - items, query_table_cols, request, my_extra_request_keys, + items, query_table_cols, my_extra_request_keys, point_field=point_field) + elif getattr(model, "NEW_QUERY_ENGINE", False): + datas = _get_data_from_query( + items, query_table_cols, my_extra_request_keys) else: datas = _get_data_from_query_old( items, query_table_cols, request, my_extra_request_keys, @@ -1851,6 +1853,10 @@ def get_item(model, func_name, default_name, extra_request_keys=None, k = "__".join(tab_cols) if hasattr(model, 'COL_LINK') and k in model.COL_LINK: value = link_ext_template.format(value, value) + if isinstance(value, datetime.date): + value = value.strftime('%Y-%m-%d') + if isinstance(value, datetime.datetime): + value = value.strftime('%Y-%m-%d %H:%M:%S') res[k] = value if full == 'shortcut': if 'cached_label' in res: |