summaryrefslogtreecommitdiff
path: root/chimere/models.py
diff options
context:
space:
mode:
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
commitd747bb7da4800b6956194fb4ead89ec73e0c84a9 (patch)
treea5e6bafb0471232cb0d67dc2deafcfa0a028f2fc /chimere/models.py
parent25d2888bc10e782e85e097aac8a0879a3c148cc7 (diff)
downloadChimère-d747bb7da4800b6956194fb4ead89ec73e0c84a9.tar.bz2
Chimère-d747bb7da4800b6956194fb4ead89ec73e0c84a9.zip
Add aggregated polygons
Diffstat (limited to 'chimere/models.py')
-rw-r--r--chimere/models.py25
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")),