summaryrefslogtreecommitdiff
path: root/chimere/models.py
diff options
context:
space:
mode:
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
commit98e523350c4eeb2bfe2b1d31666c301724749305 (patch)
treea976bf8c56a7e2fe5a3a0c5b5235a84649afda33 /chimere/models.py
parentec9676ef71f859a85707ab712568bf9d7f83b392 (diff)
downloadChimè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.py24
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)