diff options
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 |
commit | 556b3e2c9d2d379fdcf1d6bcecac9bcd7c8d275d (patch) | |
tree | b96309b8e181ee2ae5a20bc52f7162fe96712156 /chimere/models.py | |
parent | 6d4cf0337e09e67bb454c2116cce13846aa0d22d (diff) | |
download | Chimè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.py | 66 |
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): |