summaryrefslogtreecommitdiff
path: root/chimere/models.py
diff options
context:
space:
mode:
Diffstat (limited to 'chimere/models.py')
-rw-r--r--chimere/models.py26
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
'''