summaryrefslogtreecommitdiff
path: root/main/models.py
diff options
context:
space:
mode:
Diffstat (limited to 'main/models.py')
-rw-r--r--main/models.py30
1 files changed, 25 insertions, 5 deletions
diff --git a/main/models.py b/main/models.py
index 16796d0..a2f8de5 100644
--- a/main/models.py
+++ b/main/models.py
@@ -42,6 +42,27 @@ class News(models.Model):
class Meta:
verbose_name = _("News")
+class ColorTheme(models.Model):
+ """Color theme
+ """
+ name = models.CharField(_("Name"), max_length=150)
+ def __unicode__(self):
+ return self.name
+ class Meta:
+ verbose_name = _("Color theme")
+
+class Color(models.Model):
+ """Color
+ """
+ code = models.CharField(_("Code"), max_length=6)
+ order = models.IntegerField(_("Ordre"))
+ color_theme = models.ForeignKey(ColorTheme, verbose_name=_("Color theme"))
+ def __unicode__(self):
+ return self.code
+ class Meta:
+ ordering = ["order"]
+ verbose_name = _("Color")
+
class Category(models.Model):
"""Category of Point Of Interest (POI)
"""
@@ -72,7 +93,7 @@ class SubCategory(models.Model):
name = models.CharField(_("Name"), max_length=150)
available = models.BooleanField(_("Available"))
icon = models.ForeignKey(Icon, verbose_name=_("Icon"))
- color = models.CharField(max_length=10, blank=True, null=True)
+ color_theme = models.ForeignKey(ColorTheme, verbose_name=_("Color theme"))
order = models.IntegerField(_("Order"))
TYPE = (('M', _('Marker')),
('R', _('Route')),
@@ -229,12 +250,11 @@ class Route(models.Model):
properties.append(property)
return properties
- def getGeoJSON(self):
+ def getGeoJSON(self, color="#000"):
'''Return a GeoJSON string
'''
- color = '#000'
- if self.subcategory.color:
- color = self.subcategory.color
+ if '#' not in color:
+ color = '#' + color
return """{"type":"Feature", "geometry":%(geometry)s, \
"properties":{"pk": %(id)d, "name": "%(name)s", \
"color":"%(color)s"}}""" % {'id':self.id, 'name':self.name,