From 2485e5e42df1e260d6d44788bddd7bf04122d953 Mon Sep 17 00:00:00 2001 From: Étienne Loks Date: Sun, 18 Sep 2022 02:13:19 +0200 Subject: Town: catch error on surface calculate --- CHANGES.md | 7 +++++++ ishtar_common/models_common.py | 6 +++++- ishtar_common/version.py | 4 ++-- 3 files changed, 14 insertions(+), 3 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index d0adb3952..2e0e814da 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -6,6 +6,13 @@ date: 2022-07-10 Ishtar changelog ================ +v3.2.4 - 2022-09-18 +-------------------- + +### Bug fix ### + +- Town: catch error on surface calculate + v3.2.3 - 2022-07-12 -------------------- diff --git a/ishtar_common/models_common.py b/ishtar_common/models_common.py index aae79c4fe..e164677ba 100644 --- a/ishtar_common/models_common.py +++ b/ishtar_common/models_common.py @@ -23,6 +23,7 @@ from django.contrib.auth.models import User, Group from django.contrib.contenttypes.models import ContentType from django.contrib.gis.db import models from django.contrib.gis.geos import Point +from django.contrib.gis.gdal.error import GDALException from django.contrib.postgres.fields import JSONField from django.contrib.postgres.search import SearchVectorField, SearchVector from django.contrib.sites.models import Site @@ -2024,7 +2025,10 @@ class Town(Imported, models.Model): def generate_area(self, force=False): if not force and (self.surface or not self.limit): return - surface = self.limit.transform(settings.SURFACE_SRID, clone=True).area + try: + surface = self.limit.transform(settings.SURFACE_SRID, clone=True).area + except GDALException: + return False if surface > 214748364 or not surface: return False self.surface = surface diff --git a/ishtar_common/version.py b/ishtar_common/version.py index 116df27d1..59dda6a51 100644 --- a/ishtar_common/version.py +++ b/ishtar_common/version.py @@ -1,5 +1,5 @@ -# 3.2.3 -VERSION = (3, 2, 3) +# 3.2.4 +VERSION = (3, 2, 4) def get_version(): -- cgit v1.2.3