diff options
author | Étienne Loks <etienne.loks@peacefrogs.net> | 2012-05-05 00:35:35 +0200 |
---|---|---|
committer | Étienne Loks <etienne.loks@peacefrogs.net> | 2012-05-05 00:35:35 +0200 |
commit | 073803dcd5ef341bc1eeada67942adb78a4c253d (patch) | |
tree | 437959eb20b6112cd30212b4ea5c9f12f2233e25 /chimere/models.py | |
parent | 8752c3258b67013cf4fa35f2d1c26685f1574d4f (diff) | |
download | Chimère-073803dcd5ef341bc1eeada67942adb78a4c253d.tar.bz2 Chimère-073803dcd5ef341bc1eeada67942adb78a4c253d.zip |
Give the ability to configure multiple layers (database work)
Diffstat (limited to 'chimere/models.py')
-rw-r--r-- | chimere/models.py | 28 |
1 files changed, 26 insertions, 2 deletions
diff --git a/chimere/models.py b/chimere/models.py index 0d8415e..565cdd7 100644 --- a/chimere/models.py +++ b/chimere/models.py @@ -147,7 +147,8 @@ class SubCategory(models.Model): category = models.ForeignKey(Category, verbose_name=_(u"Category")) name = models.CharField(_(u"Name"), max_length=150) available = models.BooleanField(_(u"Available")) - areas = SelectMultipleField('Area', related_name='areas', blank=True) + areas = SelectMultipleField('Area', related_name='subcategories', + blank=True) icon = models.ForeignKey(Icon, verbose_name=_(u"Icon")) color_theme = models.ForeignKey(ColorTheme, verbose_name=_(u"Color theme"), blank=True, null=True) @@ -763,6 +764,16 @@ class SimpleArea: subcats.union(SubCategory.objects.raw(sql)) return subcats +class Layer(models.Model): + name = models.CharField(_(u"Name"), max_length=150) + layer_code = models.TextField(_(u"Layer code"), max_length=300) + + def __unicode__(self): + return self.name + + class Meta: + verbose_name = _("Layer") + class Area(models.Model, SimpleArea): """Rectangular area of the map """ @@ -776,7 +787,9 @@ class Area(models.Model, SimpleArea): lower_right_corner = models.PointField(_(u"Lower right corner"), default='POINT(0 0)', srid=settings.CHIMERE_EPSG_DISPLAY_PROJECTION) default = models.NullBooleanField(_(u"Default area"), - help_text=_(u"Only one area is ste by default")) + help_text=_(u"Only one area is set by default")) + layers = SelectMultipleField(Layer, related_name='areas', + through='AreaLayers', blank=True) objects = models.GeoManager() def __unicode__(self): @@ -818,6 +831,17 @@ def area_post_save(sender, **kwargs): default.save() post_save.connect(area_post_save, sender=Area) +class AreaLayers(models.Model): + area = models.ForeignKey(Area) + layer = models.ForeignKey(Layer) + order = models.IntegerField(_(u"Order")) + default = models.NullBooleanField(_(u"Default layer")) + + class Meta: + ordering = ('order',) + verbose_name = _("Layers") + verbose_name_plural = _("Layers") + class PropertyModel(models.Model): '''Model for a property ''' |