From 1d5254416b11ef1010d5ac31f2a53677254c6497 Mon Sep 17 00:00:00 2001 From: Étienne Loks Date: Tue, 10 Sep 2019 13:38:42 +0200 Subject: Locks: lock_user in model - display lock icon on tables, links - add a warning on sheet --- ishtar_common/views_item.py | 31 +++++++++++++++++++++---------- 1 file changed, 21 insertions(+), 10 deletions(-) (limited to 'ishtar_common/views_item.py') diff --git a/ishtar_common/views_item.py b/ishtar_common/views_item.py index 62aff2e81..2c4cc1a55 100644 --- a/ishtar_common/views_item.py +++ b/ishtar_common/views_item.py @@ -1146,6 +1146,8 @@ def _get_data_from_query(items, query_table_cols, extra_request_keys, items = items.annotate(point_x=exp_x) items = items.annotate(point_y=exp_y) values += ['point_x', 'point_y'] + if hasattr(items.model, "locked"): + values.append("locked") data_list = items.values_list(*values) return data_list @@ -1838,17 +1840,22 @@ def get_item(model, func_name, default_name, extra_request_keys=None, if sign == '-': datas = reversed(datas) datas = list(datas)[start:end] - link_template = "" \ - "" - link_ext_template = '{}' + link_template = \ + "" \ + "" + link_ext_template = '' + lock = ' ' + has_locks = hasattr(model, "locked") if data_type.startswith("json"): rows = [] if data_type == 'json-map': - - lnk = link_template % reverse('show-' + default_name, - args=[999999, '']) + lnk = link_template.format( + reverse('show-' + default_name, args=[999999, '']), + ) lnk = lnk.replace('999999', "") + if not has_locks: + lnk = lnk.replace('', "") data = json.dumps(_format_geojson(datas, lnk)) return HttpResponse(data, content_type='application/json') for data in datas: @@ -1858,8 +1865,12 @@ def get_item(model, func_name, default_name, extra_request_keys=None, if not no_link: try: lnk_template = link_template - lnk = lnk_template % reverse('show-' + default_name, - args=[data[0], '']) + lnk = lnk_template.format( + reverse('show-' + default_name, args=[data[0], ''])) + if has_locks and data[-1]: + lnk = lnk.replace('', lock) + else: + lnk = lnk.replace('', "") except NoReverseMatch: logger.warning( '**WARN "show-' + default_name + '" args (' @@ -1867,7 +1878,7 @@ def get_item(model, func_name, default_name, extra_request_keys=None, lnk = '' res["link"] = lnk for idx, value in enumerate(data[1:]): - if not value: + if not value or idx >= len(table_cols): continue table_col = table_cols[idx] if type(table_col) not in (list, tuple): -- cgit v1.2.3