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 | a3aa47a3cc09cdc8d13a33f909aadc70cbbe3397 (patch) | |
| tree | 20ebf8d742f2241482420cc89c8a3c4d8d87ab92 /ishtar_common/models.py | |
| parent | 6b80f7b90c714c335533fa55ba5bf859de717e38 (diff) | |
| download | Ishtar-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.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": | 
