summaryrefslogtreecommitdiff
path: root/ishtar_common/views_item.py
diff options
context:
space:
mode:
Diffstat (limited to 'ishtar_common/views_item.py')
-rw-r--r--ishtar_common/views_item.py22
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