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 --- ishtar_common/models_common.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'ishtar_common/models_common.py') 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 -- cgit v1.2.3