summaryrefslogtreecommitdiff
path: root/chimere/models.py
diff options
context:
space:
mode:
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
commit073803dcd5ef341bc1eeada67942adb78a4c253d (patch)
tree437959eb20b6112cd30212b4ea5c9f12f2233e25 /chimere/models.py
parent8752c3258b67013cf4fa35f2d1c26685f1574d4f (diff)
downloadChimè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.py28
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
'''