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
commitc8d3021cee3397e200df30eac12984b5770adb6c (patch)
tree20ebf8d742f2241482420cc89c8a3c4d8d87ab92 /ishtar_common/models.py
parent72a1783b7617ce501f598b7d6cc5868a15ff5fe5 (diff)
downloadIshtar-c8d3021cee3397e200df30eac12984b5770adb6c.tar.bz2
Ishtar-c8d3021cee3397e200df30eac12984b5770adb6c.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":