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  | 
