diff options
Diffstat (limited to 'main/models.py')
-rw-r--r-- | main/models.py | 30 |
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, |