diff options
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 |
commit | c8d3021cee3397e200df30eac12984b5770adb6c (patch) | |
tree | 20ebf8d742f2241482420cc89c8a3c4d8d87ab92 /ishtar_common/models.py | |
parent | 72a1783b7617ce501f598b7d6cc5868a15ff5fe5 (diff) | |
download | Ishtar-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.py | 19 |
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": |