diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2019-07-03 12:46:51 +0200 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2019-07-03 12:46:51 +0200 |
commit | 9387d122749bf22477145b367683708a7cca10d9 (patch) | |
tree | 16205f1739d6fabf45fd9ea41e221e0a8dc1d6af /ishtar_common/views_item.py | |
parent | 5be5e1fb11a3c14fda29d2e623ee55c6d08b509c (diff) | |
download | Ishtar-9387d122749bf22477145b367683708a7cca10d9.tar.bz2 Ishtar-9387d122749bf22477145b367683708a7cca10d9.zip |
Geo search and sheets: add a point precision for display
Diffstat (limited to 'ishtar_common/views_item.py')
-rw-r--r-- | ishtar_common/views_item.py | 22 |
1 files changed, 15 insertions, 7 deletions
diff --git a/ishtar_common/views_item.py b/ishtar_common/views_item.py index 0b0c61b86..799292969 100644 --- a/ishtar_common/views_item.py +++ b/ishtar_common/views_item.py @@ -32,7 +32,7 @@ from weasyprint import HTML, CSS from weasyprint.fonts import FontConfiguration from ishtar_common.utils import check_model_access_control, CSV_OPTIONS, \ - get_all_field_names + get_all_field_names, Round from ishtar_common.models import HistoryError, get_current_profile, \ PRIVATE_FIELDS, GeneralType, SearchAltName from .menus import Menu @@ -1124,14 +1124,22 @@ def _get_data_from_query(items, query_table_cols, extra_request_keys, values = ['id'] + query_table_cols if point_field: - items = items.annotate( - point_x=ExpressionWrapper( + profile = get_current_profile() + precision = profile.point_precision + if precision is not None: + exp_x = ExpressionWrapper( + Round(Func(point_field, function='ST_X'), precision), + output_field=FloatField()) + exp_y = ExpressionWrapper( + Round(Func(point_field, function='ST_Y'), precision), + output_field=FloatField()) + else: + exp_x = ExpressionWrapper( Func(point_field, function='ST_X'), output_field=FloatField()) - ) - items = items.annotate( - point_y=ExpressionWrapper( + exp_y = ExpressionWrapper( Func(point_field, function='ST_Y'), output_field=FloatField()) - ) + items = items.annotate(point_x=exp_x) + items = items.annotate(point_y=exp_y) values += ['point_x', 'point_y'] data_list = items.values_list(*values) return data_list |