diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2016-05-30 19:56:07 +0200 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2016-05-30 19:56:07 +0200 |
commit | d747bb7da4800b6956194fb4ead89ec73e0c84a9 (patch) | |
tree | a5e6bafb0471232cb0d67dc2deafcfa0a028f2fc /chimere/models.py | |
parent | 25d2888bc10e782e85e097aac8a0879a3c148cc7 (diff) | |
download | Chimère-d747bb7da4800b6956194fb4ead89ec73e0c84a9.tar.bz2 Chimère-d747bb7da4800b6956194fb4ead89ec73e0c84a9.zip |
Add aggregated polygons
Diffstat (limited to 'chimere/models.py')
-rw-r--r-- | chimere/models.py | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/chimere/models.py b/chimere/models.py index 48e7f4b..c38c9c2 100644 --- a/chimere/models.py +++ b/chimere/models.py @@ -1054,6 +1054,31 @@ class Polygon(GeographicItem): post_save.connect(weighted_post_save, sender=Polygon) +class AggregatedPolygon(models.Model): + ''' + Database view for aggregated polygons + ''' + polygon = models.MultiPolygonField() + subcategory = models.ForeignKey(SubCategory) + status = models.CharField(_(u"Status"), max_length=1, choices=STATUS) + + class Meta: + managed = False + db_table = 'chimere_aggregated_polygons' + + def getGeoJSON(self, color="#000"): + '''Return a GeoJSON string + ''' + if '#' not in color: + color = '#' + color + attributes = { + 'color': color, 'geometry': json.loads(self.polygon.geojson), + 'type': "Feature", "properties": { + 'key': "aggpoly-{}".format(self.pk), + "pk": self.id, "name": u'Aggregated polygon'}} + return json.dumps(attributes) + + class MultimediaType(models.Model): MEDIA_TYPES = (('A', _(u"Audio")), ('V', _(u"Video")), |