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