summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2025-05-15 12:34:46 +0200
committerÉtienne Loks <etienne.loks@iggdrasil.net>2025-10-15 19:32:59 +0200
commit22c4b4d765a465eb7704aae43f17957bc5c665ce (patch)
treec6c2c35c77020a2f02c93609ada0894ac679361a
parent8696d418561fa9c1a32e417a866300472bfa77cb (diff)
downloadIshtar-22c4b4d765a465eb7704aae43f17957bc5c665ce.tar.bz2
Ishtar-22c4b4d765a465eb7704aae43f17957bc5c665ce.zip
🐛 revert geo reverse patch specific for debian bullseye
-rw-r--r--ishtar_common/forms_common.py11
-rw-r--r--ishtar_common/models_imports.py5
-rw-r--r--ishtar_common/tests.py20
-rw-r--r--ishtar_common/utils.py13
-rw-r--r--ishtar_common/widgets.py11
5 files changed, 11 insertions, 49 deletions
diff --git a/ishtar_common/forms_common.py b/ishtar_common/forms_common.py
index 4a6e7dc76..757e3dc85 100644
--- a/ishtar_common/forms_common.py
+++ b/ishtar_common/forms_common.py
@@ -83,7 +83,6 @@ from ishtar_common.utils import (
is_downloadable,
max_size_help,
max_value_current_year,
- reverse_coordinates,
update_data,
)
@@ -3356,8 +3355,6 @@ class GISForm(forms.ModelForm, CustomForm, ManageOldType):
geom = getattr(instance, keys[0])
map_srid = geom.srid or 4326
widget = widgets.OSMWidget
- if map_srid == 4326:
- widget = widgets.ReversedOSMWidget
self.fields[keys[0]].widget = widget(
attrs={
"map_srid": map_srid,
@@ -3417,14 +3414,6 @@ class GISForm(forms.ModelForm, CustomForm, ManageOldType):
value = value.replace("POINT", "POINT Z")
cleaned_data["point_3d"] = f'{value.split(")")[0]} {cleaned_data["z"]})'
- if "x" not in self.geo_keys:
- # reverse...
- geo_value = cleaned_data[self.geo_keys[0]]
- if geo_value:
- if not isinstance(geo_value, str):
- geo_value = geo_value.ewkt
- if geo_value.startswith("SRID=4326;"):
- cleaned_data[self.geo_keys[0]] = reverse_coordinates(geo_value)
for rel in models.GeoVectorData.RELATED_MODELS:
if cleaned_data.get(rel, None):
return cleaned_data
diff --git a/ishtar_common/models_imports.py b/ishtar_common/models_imports.py
index 273b0eab5..99d7e9fd6 100644
--- a/ishtar_common/models_imports.py
+++ b/ishtar_common/models_imports.py
@@ -79,7 +79,6 @@ from ishtar_common.utils import (
num2col,
put_session_message,
put_session_var,
- reverse_coordinates,
update_data,
OwnPerms,
SheetItem,
@@ -1373,10 +1372,6 @@ def convert_geom(feature, srid):
srs = 4326 if not has_z else 4979
if profile.srs and profile.srs.srid:
srs = profile.srs.srid
- if srs != srid:
- # Coordinates are reversed - should be fixed on Django 3.2
- feature = reverse_coordinates(
- GEOSGeometry(feature).transform(srs, clone=True).ewkt)
return feature
diff --git a/ishtar_common/tests.py b/ishtar_common/tests.py
index 818967c64..053e19e7c 100644
--- a/ishtar_common/tests.py
+++ b/ishtar_common/tests.py
@@ -88,7 +88,6 @@ from ishtar_common.utils import (
move_dict_data,
rename_and_simplify_media_name,
try_fix_file,
- reverse_coordinates,
EachCharacterTypeValidator,
)
from ishtar_common.tasks import launch_export
@@ -3777,7 +3776,7 @@ class GeoVectorFormTest(TestCase):
self.assertIn("id_point_2d", content)
self._test_post_create_pre_geo(c, geom_type)
data = self._init_default_data(geom_type)
- data.update({geom_type: reverse_coordinates(point_2d.ewkt)})
+ data.update({geom_type: point_2d.ewkt})
edited_geo = self._test_post_geo(c, geom_type, data)
self.assertEqual(edited_geo.point_2d.coords, point_2d.coords)
self.assertEqual(edited_geo.point_2d.srid, point_2d.srid)
@@ -3794,7 +3793,7 @@ class GeoVectorFormTest(TestCase):
self._test_post_create_pre_geo(c, geom_type)
data = self._init_default_data(geom_type)
data.update({
- "point_3d": reverse_coordinates(point.ewkt),
+ "point_3d": point.ewkt,
"z": 10
})
edited_geo = self._test_post_geo(c, geom_type, data)
@@ -3817,7 +3816,7 @@ class GeoVectorFormTest(TestCase):
edited_geo = self._test_post_geo(c, geom_type, data)
self.assertEqual(
list(edited_geo.multi_points.coords),
- [tuple(reversed(t)) for t in points.coords]
+ list(points.coords)
)
self.assertEqual(edited_geo.multi_points.srid, 4326)
@@ -3862,7 +3861,7 @@ class GeoVectorFormTest(TestCase):
edited_geo = self._test_post_geo(c, geom_type, data)
self.assertEqual(
list(edited_geo.multi_polygon.coords),
- [tuple(tuple(t[::-1] for t in tu) for tu in tup) for tup in multi_polygon.coords]
+ list(multi_polygon.coords)
)
self.assertEqual(edited_geo.multi_polygon.srid, 4326)
@@ -3906,8 +3905,7 @@ class GeoVectorFormTest(TestCase):
data = self._init_default_data(geom_type)
data.update({geom_type: point_2d_for_edit.ewkt})
edited_geo = self._test_post_geo(c, geom_type, data, geo_vector)
- # Old version of django reverse coordinates
- self.assertEqual(edited_geo.point_2d.coords, point_2d_for_edit.coords[::-1])
+ self.assertEqual(edited_geo.point_2d.coords, point_2d_for_edit.coords)
self.assertEqual(edited_geo.point_2d.srid, point_2d_for_edit.srid)
def test_edit_geo_vector_point3d(self):
@@ -3927,7 +3925,7 @@ class GeoVectorFormTest(TestCase):
self._test_get_edit_geo(geo_vector, content)
data = self._init_default_data(geom_type)
data.update({"z": 20})
- data.update({geom_type: reverse_coordinates(point_for_edit.ewkt)})
+ data.update({geom_type: point_for_edit.ewkt})
edited_geo = self._test_post_geo(c, geom_type, data, geo_vector)
# Old version of django reverse coordinates
self.assertEqual(edited_geo.point_3d.coords, point_for_edit.coords)
@@ -3954,7 +3952,7 @@ class GeoVectorFormTest(TestCase):
# Old version of django reverse coordinates
self.assertEqual(
list(edited_geo.multi_points.coords),
- [tuple(reversed(t)) for t in points_edit.coords]
+ list(points_edit.coords)
)
self.assertEqual(edited_geo.multi_points.srid, 4326)
@@ -3986,7 +3984,7 @@ class GeoVectorFormTest(TestCase):
# Old version of django reverse coordinates
self.assertEqual(
list(edited_geo.multi_line.coords),
- [tuple(t[::-1] for t in tu) for tu in lines_edit.coords]
+ list(lines_edit.coords)
)
self.assertEqual(edited_geo.multi_line.srid, 4326)
@@ -4018,7 +4016,7 @@ class GeoVectorFormTest(TestCase):
# Old version of django reverse coordinates
self.assertEqual(
list(edited_geo.multi_polygon.coords),
- [tuple(tuple(t[::-1] for t in tu) for tu in tup) for tup in multi_polygon_edit.coords]
+ list(multi_polygon_edit.coords)
)
self.assertEqual(edited_geo.multi_polygon.srid, 4326)
diff --git a/ishtar_common/utils.py b/ishtar_common/utils.py
index e3a1a00fc..242fa4159 100644
--- a/ishtar_common/utils.py
+++ b/ishtar_common/utils.py
@@ -3208,6 +3208,7 @@ def fast_line_count(filename):
Efficient line counter for a file
"""
CHUNK_SIZE = 1024 * 1024
+
def _count(reader):
b = reader(CHUNK_SIZE)
while b:
@@ -3218,18 +3219,6 @@ def fast_line_count(filename):
return count + 1
-RE_NUMBER = r"[+-]?\d+(?:\.\d*)?"
-RE_COORDS = r"(" + RE_NUMBER + r") (" + RE_NUMBER + r")"
-
-
-def reverse_coordinates(wkt):
- return re.sub(RE_COORDS, r"\2 \1", wkt)
-
-
-def reverse_list_coordinates(lst):
- return list(reversed(lst))
-
-
def add_business_days(from_date: datetime.datetime,
business_days_to_add: int) -> datetime.datetime:
"""
diff --git a/ishtar_common/widgets.py b/ishtar_common/widgets.py
index 54c832d38..85a1d20b1 100644
--- a/ishtar_common/widgets.py
+++ b/ishtar_common/widgets.py
@@ -41,7 +41,7 @@ from json import JSONEncoder
from django.utils.translation import gettext_lazy as _, get_language
from ishtar_common import models
-from ishtar_common.utils import get_columns_from_class, reverse_coordinates
+from ishtar_common.utils import get_columns_from_class
logger = logging.getLogger(__name__)
@@ -1386,12 +1386,3 @@ class OSMWidget(gis_forms.OSMWidget):
"ol-layerswitcher/ol-layerswitcher.js",
"gis/js/OLMapWidget.js",
)
-
-
-class ReversedOSMWidget(OSMWidget):
- def get_context(self, name, value, attrs):
- if value:
- if not isinstance(value, str): # should be geo
- value = reverse_coordinates(value.ewkt)
- context = super().get_context(name, value, attrs)
- return context