diff options
-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 08c656b1c..c9621d21c 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, ) @@ -3344,8 +3343,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, @@ -3405,14 +3402,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 259128b7a..63a5b92fc 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 @@ -1367,10 +1366,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 b5e228852..7595d8648 100644 --- a/ishtar_common/tests.py +++ b/ishtar_common/tests.py @@ -89,7 +89,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 @@ -3765,7 +3764,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) @@ -3782,7 +3781,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) @@ -3805,7 +3804,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) @@ -3850,7 +3849,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) @@ -3894,8 +3893,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): @@ -3915,7 +3913,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) @@ -3942,7 +3940,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) @@ -3974,7 +3972,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) @@ -4006,7 +4004,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 baaa25c95..9e2aff0ac 100644 --- a/ishtar_common/utils.py +++ b/ishtar_common/utils.py @@ -3177,6 +3177,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: @@ -3187,18 +3188,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 b96baee01..48f56508c 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 _ 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__) @@ -1376,12 +1376,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 |