diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2016-03-09 12:23:49 +0100 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2016-03-09 12:23:49 +0100 |
commit | 98e523350c4eeb2bfe2b1d31666c301724749305 (patch) | |
tree | a976bf8c56a7e2fe5a3a0c5b5235a84649afda33 /chimere/models.py | |
parent | ec9676ef71f859a85707ab712568bf9d7f83b392 (diff) | |
download | Chimère-98e523350c4eeb2bfe2b1d31666c301724749305.tar.bz2 Chimère-98e523350c4eeb2bfe2b1d31666c301724749305.zip |
Custom color for each feature - better management of display details - show polygon on main map!
Diffstat (limited to 'chimere/models.py')
-rw-r--r-- | chimere/models.py | 24 |
1 files changed, 16 insertions, 8 deletions
diff --git a/chimere/models.py b/chimere/models.py index f605e08..62be67a 100644 --- a/chimere/models.py +++ b/chimere/models.py @@ -187,7 +187,8 @@ class ColorTheme(models.Model): class Color(models.Model): """Color """ - code = models.CharField(_(u"Code"), max_length=6) + code = models.CharField(_(u"Code/name"), max_length=20, + help_text=_(u"HTML code/name")) order = models.IntegerField(_(u"Order")) color_theme = models.ForeignKey(ColorTheme, verbose_name=_(u"Color theme")) @@ -753,6 +754,7 @@ class Marker(GeographicItem): items['geometry'] = json.loads(self.point.geojson) items['properties'].update({ 'pk': self.id, + 'key': "marker-{}".format(self.id), 'name': self.name, 'icon_path': unicode(cat.icon.image), 'icon_hover_path': unicode(cat.hover_icon.image) @@ -1178,6 +1180,9 @@ class Route(GeographicItem): width = models.IntegerField(_(u"Width"), blank=True, null=True) has_associated_marker = models.BooleanField(_(u"Has an associated marker"), default=True) + color = models.CharField( + _(u"Color"), max_length=20, help_text=_(u"HTML code/name"), + blank=True, null=True) objects = models.GeoManager() class Meta: @@ -1229,11 +1234,10 @@ class Route(GeographicItem): def getGeoJSON(self, color="#000"): '''Return a GeoJSON string ''' - if '#' not in color: - color = '#' + color attributes = {"type": "Feature", "geometry": json.loads(self.route.geojson), "properties": {"pk": self.id, "name": self.name, + 'key': "route-{}".format(self.pk), "color": color}} return json.dumps(attributes) @@ -1336,6 +1340,7 @@ class AggregatedRoute(models.Model): attributes = { 'color': color, 'geometry': json.loads(self.route.geojson), 'type': "Feature", "properties": { + 'key': "aggroute-{}".format(self.pk), "pk": self.id, "name": u'Aggregated route'}} return json.dumps(attributes) @@ -1353,6 +1358,12 @@ class Polygon(GeographicItem): height_field='height', width_field='width') height = models.IntegerField(_(u"Height"), blank=True, null=True) width = models.IntegerField(_(u"Width"), blank=True, null=True) + color = models.CharField( + _(u"Color"), max_length=20, help_text=_(u"HTML code/name"), + blank=True, null=True) + inner_color = models.CharField( + _(u"Inner color"), max_length=20, + help_text=_(u"HTML code/name"), blank=True, null=True) objects = models.GeoManager() class Meta: @@ -1366,13 +1377,10 @@ class Polygon(GeographicItem): def getGeoJSON(self, color="#000", inner_color='#0F0'): '''Return a GeoJSON string ''' - if '#' not in color: - color = '#' + color - if '#' not in inner_color: - color = '#' + inner_color attributes = {"type": "Feature", - "geometry": json.loads(self.route.geojson), + "geometry": json.loads(self.polygon.geojson), "properties": {"pk": self.id, "name": self.name, + 'key': "polygon-{}".format(self.pk), "color": color, "inner_color": inner_color}} return json.dumps(attributes) |