summaryrefslogtreecommitdiff
path: root/ishtar_common/models.py
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2017-10-27 17:51:52 +0200
committerÉtienne Loks <etienne.loks@iggdrasil.net>2017-10-27 17:51:52 +0200
commita3aa47a3cc09cdc8d13a33f909aadc70cbbe3397 (patch)
tree20ebf8d742f2241482420cc89c8a3c4d8d87ab92 /ishtar_common/models.py
parent6b80f7b90c714c335533fa55ba5bf859de717e38 (diff)
downloadIshtar-a3aa47a3cc09cdc8d13a33f909aadc70cbbe3397.tar.bz2
Ishtar-a3aa47a3cc09cdc8d13a33f909aadc70cbbe3397.zip
Command import_insee_comm_csv: import town relations
Diffstat (limited to 'ishtar_common/models.py')
-rw-r--r--ishtar_common/models.py19
1 files changed, 19 insertions, 0 deletions
diff --git a/ishtar_common/models.py b/ishtar_common/models.py
index a06568d99..36da56cad 100644
--- a/ishtar_common/models.py
+++ b/ishtar_common/models.py
@@ -2688,6 +2688,25 @@ class Town(Imported, models.Model):
self.save()
return self.cached_label
+ def generate_geo(self):
+ if self.limit:
+ return
+ parents = None
+ if not self.parents.count():
+ return
+ for parent in self.parents.all():
+ if not parent.limit:
+ return
+ if not parents:
+ parents = parent.limit
+ else:
+ parents = parents.union(parent.limit)
+ # if union is a simple polygon make it a multi
+ if 'MULTI' not in parents.wkt:
+ parents = parents.wkt.replace('POLYGON', 'MULTIPOLYGON(') + ")"
+ self.limit = parents
+ return self.limit
+
def _generate_cached_label(self):
cached_label = self.name
if settings.COUNTRY == "fr":