From 59f97318687a19a8623261aff0bc875ca99c5c7c Mon Sep 17 00:00:00 2001 From: Étienne Loks Date: Wed, 15 Jun 2022 10:22:01 +0200 Subject: Fix migrations --- UPGRADE-V4.md | 14 ++++++++++++++ UPGRADE_V4.md | 14 -------------- .../management/commands/migrate_to_geo_v4.py | 1 + ishtar_common/models_common.py | 22 ++++------------------ 4 files changed, 19 insertions(+), 32 deletions(-) create mode 100644 UPGRADE-V4.md delete mode 100644 UPGRADE_V4.md diff --git a/UPGRADE-V4.md b/UPGRADE-V4.md new file mode 100644 index 000000000..f69dbb9ec --- /dev/null +++ b/UPGRADE-V4.md @@ -0,0 +1,14 @@ +# backup database and media +sudo vim /etc/apt/sources.list.d/iggdrasil.list +# buster -> bullseye +sudo apt update +sudo apt upgrade +screen # data migration is long... +# for each instance in /etc/ishtar/instances +cd /srv/ishtar/{instance_name} +# update fixtures +./manage.py loaddata /usr/share/python3-django-ishtar/fixtures/initial_data-auth-fr.json +# migrate to new geo management +./manage.py migrate_to_geo_v4 --process {number_of_thread} # number_of_thread depend on your CPU +# edit profile type permissions for geovectordata +-> http(s)://{my-ihstar}/admin/ishtar_common/profiletypesummary/ \ No newline at end of file diff --git a/UPGRADE_V4.md b/UPGRADE_V4.md deleted file mode 100644 index f69dbb9ec..000000000 --- a/UPGRADE_V4.md +++ /dev/null @@ -1,14 +0,0 @@ -# backup database and media -sudo vim /etc/apt/sources.list.d/iggdrasil.list -# buster -> bullseye -sudo apt update -sudo apt upgrade -screen # data migration is long... -# for each instance in /etc/ishtar/instances -cd /srv/ishtar/{instance_name} -# update fixtures -./manage.py loaddata /usr/share/python3-django-ishtar/fixtures/initial_data-auth-fr.json -# migrate to new geo management -./manage.py migrate_to_geo_v4 --process {number_of_thread} # number_of_thread depend on your CPU -# edit profile type permissions for geovectordata --> http(s)://{my-ihstar}/admin/ishtar_common/profiletypesummary/ \ No newline at end of file diff --git a/ishtar_common/management/commands/migrate_to_geo_v4.py b/ishtar_common/management/commands/migrate_to_geo_v4.py index d904b279a..188365c45 100644 --- a/ishtar_common/management/commands/migrate_to_geo_v4.py +++ b/ishtar_common/management/commands/migrate_to_geo_v4.py @@ -195,6 +195,7 @@ def _process_main(obj): "x": obj.x, "y": obj.y, "z": obj.z, + "spatial_reference_system": obj.spatial_reference_system } data = models_common.GeoVectorData.objects.create(**attrs) obj.main_geodata = data diff --git a/ishtar_common/models_common.py b/ishtar_common/models_common.py index b13517f25..2fb0d40f6 100644 --- a/ishtar_common/models_common.py +++ b/ishtar_common/models_common.py @@ -2266,6 +2266,8 @@ class GeoVectorData(Imported, OwnPerms): args["z"] = self.z point = Point(**args).transform(srid, clone=True) coordinates = [point.x, point.y] + if srid == 4326: + coordinates = list(reversed(coordinates)) if dim == 3: coordinates.append(point.z) else: @@ -3470,25 +3472,9 @@ class GeoItem(GeographicItem): @property def display_coordinates(self, rounded=True): - if not self.point_2d: + if not self.main_geodata: return "" - profile = get_current_profile() - if ( - not profile.display_srs - or not profile.display_srs.srid - or ( - profile.display_srs == self.spatial_reference_system - and self.x - and self.y - ) - ): - x, y = self.x, self.y - else: - point = self.point_2d.transform(profile.display_srs.srid, clone=True) - x, y = point.x, point.y - if rounded: - return round(x, 5), round(y, 5) - return x, y + return self.main_geodata.display_coordinates(rounded=rounded) @property def display_spatial_reference_system(self): -- cgit v1.2.3