diff options
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 |
commit | 22c4b4d765a465eb7704aae43f17957bc5c665ce (patch) | |
tree | c6c2c35c77020a2f02c93609ada0894ac679361a | |
parent | 8696d418561fa9c1a32e417a866300472bfa77cb (diff) | |
download | Ishtar-22c4b4d765a465eb7704aae43f17957bc5c665ce.tar.bz2 Ishtar-22c4b4d765a465eb7704aae43f17957bc5c665ce.zip |
🐛 revert geo reverse patch specific for debian bullseye
-rw-r--r-- | ishtar_common/forms_common.py | 11 | ||||
-rw-r--r-- | ishtar_common/models_imports.py | 5 | ||||
-rw-r--r-- | ishtar_common/tests.py | 20 | ||||
-rw-r--r-- | ishtar_common/utils.py | 13 | ||||
-rw-r--r-- | ishtar_common/widgets.py | 11 |
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 |