diff options
Diffstat (limited to 'chimere/models.py')
| -rw-r--r-- | chimere/models.py | 25 |
1 files changed, 18 insertions, 7 deletions
diff --git a/chimere/models.py b/chimere/models.py index ca608e8..936353d 100644 --- a/chimere/models.py +++ b/chimere/models.py @@ -23,9 +23,8 @@ Models description import os, string, re import simplejson as json from lxml import etree -from datetime import datetime, timedelta +import datetime from subprocess import Popen, PIPE -import unidecode from django.conf import settings from django.contrib.gis.db import models @@ -36,6 +35,7 @@ from django.core.exceptions import ValidationError from django.core.urlresolvers import reverse from django.db.models.signals import post_save from django import forms +from django.template import defaultfilters from django.utils.translation import ugettext_lazy as _ from chimere.widgets import PointField, RouteField, SelectMultipleField, \ @@ -308,10 +308,10 @@ class Marker(GeographicItem): super(Marker, self).__init__(*args, **kwargs) # add read attributes for properties for property in self.getProperties(): - attr_name = unidecode.unidecode(property.propertymodel.name).lower() - attr_name = re.sub(r'\W+','_', attr_name.strip()) + attr_name = defaultfilters.slugify(property.propertymodel.name) + attr_name = re.sub(r'-','_', attr_name) if not hasattr(self, attr_name): - setattr(self, attr_name, property.value) + setattr(self, attr_name, property.python_value) def get_init_multi(self): multis = [forms.model_to_dict(multi) @@ -701,8 +701,9 @@ def getDateCondition(): ''' if not settings.CHIMERE_DAYS_BEFORE_EVENT: return "" - now = datetime.now().strftime('%Y-%m-%d') - after = (datetime.now() + timedelta(settings.CHIMERE_DAYS_BEFORE_EVENT) + now = datetime.datetime.now().strftime('%Y-%m-%d') + after = (datetime.datetime.now() + \ + datetime.timedelta(settings.CHIMERE_DAYS_BEFORE_EVENT) ).strftime('%Y-%m-%d') date_condition = " and %(alias)s.start_date is null or " date_condition += "(%(alias)s.start_date >= '" + now + "' and " @@ -938,3 +939,13 @@ class Property(models.Model): class Meta: verbose_name = _(u"Property") + @property + def python_value(self): + if self.propertymodel.type == 'D': + try: + return datetime.date(*[int(val) for val in self.value.split('-')]) + except: + return "" + else: + return self.value + |
