summaryrefslogtreecommitdiff
path: root/chimere/models.py
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@peacefrogs.net>2012-02-28 00:29:13 +0100
committerÉtienne Loks <etienne.loks@peacefrogs.net>2012-02-28 00:29:13 +0100
commit556b3e2c9d2d379fdcf1d6bcecac9bcd7c8d275d (patch)
treeb96309b8e181ee2ae5a20bc52f7162fe96712156 /chimere/models.py
parent6d4cf0337e09e67bb454c2116cce13846aa0d22d (diff)
downloadChimère-556b3e2c9d2d379fdcf1d6bcecac9bcd7c8d275d.tar.bz2
Chimère-556b3e2c9d2d379fdcf1d6bcecac9bcd7c8d275d.zip
Allow modification of markers on the main interface
Diffstat (limited to 'chimere/models.py')
-rw-r--r--chimere/models.py66
1 files changed, 37 insertions, 29 deletions
diff --git a/chimere/models.py b/chimere/models.py
index a3dc4b4..5c5a48d 100644
--- a/chimere/models.py
+++ b/chimere/models.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
-# Copyright (C) 2008-2011 Étienne Loks <etienne.loks_AT_peacefrogsDOTnet>
+# Copyright (C) 2008-2012 Étienne Loks <etienne.loks_AT_peacefrogsDOTnet>
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as
@@ -188,19 +188,18 @@ class SubCategory(models.Model):
return [(category, sub_cats) for category, sub_cats \
in sub_categories.items()]
-class Marker(models.Model):
- '''Marker for a POI
- '''
+class GeographicItem(models.Model):
name = models.CharField(_(u"Name"), max_length=150)
categories = SelectMultipleField(SubCategory)
- point = PointField(_(u"Localisation"),
- srid=settings.CHIMERE_EPSG_DISPLAY_PROJECTION)
- picture = models.ImageField(_(u"Image"), upload_to='upload', blank=True,
- null=True, height_field='height', width_field='width')
- height = models.IntegerField(_(u"Height"), blank=True, null=True)
- width = models.IntegerField(_(u"Width"), blank=True, null=True)
+ submiter_session_key = models.CharField(_(u"Submitter session key"),
+ blank=True, null=True, max_length=40)
+ submiter_email = models.EmailField(_(u"Submitter email"), blank=True,
+ null=True)
+ submiter_comment = models.CharField(_(u"Submitter comment"), max_length=200,
+ blank=True, null=True)
STATUS = (('S', _(u'Submited')),
('A', _(u'Available')),
+ ('M', _(u'Modified')),
('D', _(u'Disabled')),)
STATUS_DCT = {}
for key, label in STATUS:
@@ -209,15 +208,29 @@ class Marker(models.Model):
if settings.CHIMERE_DAYS_BEFORE_EVENT:
start_date = models.DateField(_(u"Start date"), blank=True, null=True,
help_text=_(u"Not mandatory. Set it for dated item such as event. "\
- u"Format YYYY-MM-DD (2012-03-28 for 28 march 2012)."))
+ u"Format YYYY-MM-DD"))
end_date = models.DateField(_(u"End date"), blank=True, null=True,
help_text=_(u"Not mandatory. Set it only if you have a multi-day "\
- u"event. Format YYYY-MM-DD (2012-03-28 for 28 march 2012)."))
+ u"event. Format YYYY-MM-DD"))
+ class Meta:
+ abstract = True
+
+class Marker(GeographicItem):
+ '''Marker for a POI
+ '''
+ ref_item = models.ForeignKey("Marker", blank=True, null=True,
+ verbose_name=_(u"Reference marker"), related_name='submited_marker')
+ point = PointField(_(u"Localisation"),
+ srid=settings.CHIMERE_EPSG_DISPLAY_PROJECTION)
if 'chimere_rss' in settings.INSTALLED_APPS:
available_date = models.DateTimeField(_(u"Available Date"), blank=True,
null=True)
route = models.ForeignKey(u"Route", blank=True, null=True,
related_name='associated_marker')
+ picture = models.ImageField(_(u"Image"), upload_to='upload', blank=True,
+ null=True, height_field='height', width_field='width')
+ height = models.IntegerField(_(u"Height"), blank=True, null=True)
+ width = models.IntegerField(_(u"Width"), blank=True, null=True)
objects = BaseGeoManager()
def __unicode__(self):
@@ -320,6 +333,15 @@ class Marker(models.Model):
self.default_category.pk)
return settings.BASE_URL + 'ty/' + TinyUrl.getUrnByParameters(parameters)
+"""
+class PictureFile(models.Model):
+ name = models.CharField(_(u"Name"), max_length=150)
+ picture = models.ImageField(_(u"Image"), upload_to='upload', blank=True,
+ null=True, height_field='height', width_field='width')
+ height = models.IntegerField(_(u"Height"), blank=True, null=True)
+ width = models.IntegerField(_(u"Width"), blank=True, null=True)
+"""
+
class RouteFile(models.Model):
name = models.CharField(_(u"Name"), max_length=150)
raw_file = models.FileField(_(u"Raw file (gpx or kml)"), upload_to='upload')
@@ -375,11 +397,11 @@ class RouteFile(models.Model):
return wkt_tpl % u','.join([u'%s %s' % (pt[0], pt[1]) \
for pt in pts])
-class Route(models.Model):
+class Route(GeographicItem):
'''Route on the map
'''
- name = models.CharField(_(u"Name"), max_length=150)
- categories = SelectMultipleField(SubCategory)
+ ref_item = models.ForeignKey("Route", blank=True, null=True,
+ verbose_name=_(u"Reference route"), related_name='submited_route')
route = RouteField(_(u"Route"),
srid=settings.CHIMERE_EPSG_DISPLAY_PROJECTION)
associated_file = models.ForeignKey(RouteFile, blank=True, null=True,
@@ -388,20 +410,6 @@ class Route(models.Model):
null=True, height_field='height', width_field='width')
height = models.IntegerField(_(u"Height"), blank=True, null=True)
width = models.IntegerField(_(u"Width"), blank=True, null=True)
- STATUS = (('S', _(u'Submited')),
- ('A', _(u'Available')),
- ('D', _(u'Disabled')),)
- STATUS_DCT = {}
- for key, label in STATUS:
- STATUS_DCT[key] = label
- if settings.CHIMERE_DAYS_BEFORE_EVENT:
- start_date = models.DateField(_(u"Start date"), blank=True, null=True,
- help_text=_(u"Not mandatory. Set it for dated item such as event. "\
- u"Format YYYY-MM-DD"))
- end_date = models.DateField(_(u"End date"), blank=True, null=True,
- help_text=_(u"Not mandatory. Set it only if you have a multi-day "\
- u"event. Format YYYY-MM-DD"))
- status = models.CharField(_(u"Status"), max_length=1, choices=STATUS)
objects = BaseGeoManager()
def __unicode__(self):