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      '''  | 
