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