diff options
Diffstat (limited to 'chimere/models.py')
| -rw-r--r-- | chimere/models.py | 26 | 
1 files changed, 21 insertions, 5 deletions
| diff --git a/chimere/models.py b/chimere/models.py index d06e42d..295de1c 100644 --- a/chimere/models.py +++ b/chimere/models.py @@ -32,6 +32,7 @@ from django.contrib.gis.gdal import SpatialReference  from django.contrib import admin  from django.core.files import File  from django.core.exceptions import ValidationError +from django.db.models.signals import post_save  from django import forms  from django.utils.translation import ugettext_lazy as _ @@ -288,11 +289,11 @@ class Marker(GeographicItem):                                                 null=True)      route = models.ForeignKey(u"Route", blank=True, null=True,                                related_name='associated_marker') -    pictures = models.ManyToManyField(u"PictureFile", verbose_name='Pictures', -               blank=True, null=True, related_name='marker') -    multimedia_files = models.ManyToManyField(u"MultimediaFile", -                       verbose_name='Multimedia files', blank=True, null=True, -                       related_name='marker') +    #pictures = models.ManyToManyField(u"PictureFile", verbose_name='Pictures', +    #           blank=True, null=True, related_name='marker') +    #multimedia_files = models.ManyToManyField(u"MultimediaFile", +    #                   verbose_name='Multimedia files', blank=True, null=True, +    #                   related_name='marker')#, edit_inline=models.STACKED)      description = models.TextField(_(u"Description"), blank=True, null=True)      objects = BaseGeoManager() @@ -473,6 +474,7 @@ class MultimediaFile(models.Model):      multimedia_type = models.ForeignKey(MultimediaType)      miniature = models.BooleanField(_(u"Display inside the description?"),                                    default=settings.CHIMERE_MINIATURE_BY_DEFAULT) +    marker = models.ForeignKey(Marker)      def __unicode__(self):          return self.name or u"" @@ -500,6 +502,7 @@ class PictureFile(models.Model):      miniature = models.BooleanField(_(u"Display inside the description?"),                                    default=settings.CHIMERE_MINIATURE_BY_DEFAULT)      order = models.IntegerField(_(u"Order"), default=1) +    marker = models.ForeignKey(Marker)      def __unicode__(self):          return self.name or u"" @@ -742,6 +745,8 @@ class Area(models.Model, SimpleArea):              default='POINT(0 0)', srid=settings.CHIMERE_EPSG_DISPLAY_PROJECTION)      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"))      objects = models.GeoManager()      def __unicode__(self): @@ -772,6 +777,17 @@ class Area(models.Model, SimpleArea):          sql = "ST_Contains(" + area + ", " + geometry + ")"          return sql +def area_post_save(sender, **kwargs): +    if not kwargs['instance']: +        return +    area = kwargs['instance'] +    if area.default: +        defaults = Area.filter(default=True).exclude(pk=area.pk) +        for default in defaults: +            default.default = False +            default.save() +post_save.connect(area_post_save, sender=Area) +  class PropertyModel(models.Model):      '''Model for a property      ''' | 
