diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2019-09-10 13:38:42 +0200 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2019-09-10 13:38:42 +0200 |
commit | 389f86b06d5f6129614cb312c7034cdc4bb1b684 (patch) | |
tree | a445b831d1646d990d8ed2c194f047fa9f4724e7 /ishtar_common/views_item.py | |
parent | 633e7d5f217bf1693b3baf1eeb11740365cfe5b3 (diff) | |
download | Ishtar-389f86b06d5f6129614cb312c7034cdc4bb1b684.tar.bz2 Ishtar-389f86b06d5f6129614cb312c7034cdc4bb1b684.zip |
Locks: lock_user in model - display lock icon on tables, links - add a warning on sheet
Diffstat (limited to 'ishtar_common/views_item.py')
-rw-r--r-- | ishtar_common/views_item.py | 31 |
1 files changed, 21 insertions, 10 deletions
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 = "<a class='display_details' href='#' " \ - "onclick='load_window(\"%s\")'>" \ - "<i class=\"fa fa-info-circle\" aria-hidden=\"true\"></i></a>" - link_ext_template = '<a href="{}" target="_blank">{}</a>' + link_template = \ + "<a class='display_details' href='#' " \ + "onclick='load_window(\"{}\")'>" \ + "<i class=\"fa fa-info-circle\" aria-hidden=\"true\"></i><lock></a>" + link_ext_template = '<a href="{}" target="_blank"></a>' + lock = ' <i class="fa fa-lock text-danger" aria-hidden="true"></i>' + 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', "<pk>") + if not has_locks: + lnk = lnk.replace('<lock>', "") 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>', lock) + else: + lnk = lnk.replace('<lock>', "") 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): |