diff options
Diffstat (limited to 'chimere/main/models.py')
-rw-r--r-- | chimere/main/models.py | 25 |
1 files changed, 20 insertions, 5 deletions
diff --git a/chimere/main/models.py b/chimere/main/models.py index 093918b..daf7b3b 100644 --- a/chimere/main/models.py +++ b/chimere/main/models.py @@ -59,7 +59,7 @@ class TinyUrl(models.Model): @classmethod def getParametersByUrn(cls, urn): c_id = 0 - for idx, char in enumerate(urn): + for idx, char in enumerate(reversed(urn)): c_id += cls.digits.index(char)*pow(cls.base, idx) try: params = cls.objects.get(id=c_id).parameters @@ -70,11 +70,11 @@ class TinyUrl(models.Model): @classmethod def getUrnByParameters(cls, parameters): try: - object = cls.objects.get(parameters=parameters) + obj = cls.objects.get(parameters=parameters) except cls.DoesNotExist: - object = cls(parameters=parameters) - object.save() - n = object.id + obj = cls(parameters=parameters) + obj.save() + n = obj.id urn = '' while 1: idx = n % cls.base @@ -214,6 +214,11 @@ Format YYYY-MM-DD")) def __unicode__(self): return self.name + @property + def date(self): + if settings.DAYS_BEFORE_EVENT: + return self.start_date + class Meta: ordering = ('status', 'name') verbose_name = _("Point of interest") @@ -266,6 +271,11 @@ Format YYYY-MM-DD")) 'icon_width':cat.icon.image.width, 'icon_height':cat.icon.image.height,}) return ",".join(jsons) + def get_absolute_url(self): + parameters = 'current_feature=%d&checked_categories=%s' % (self.id, + self.categories.all()[0].id) + return settings.BASE_URL + 'ty/' + TinyUrl.getUrnByParameters(parameters) + class Route(models.Model): '''Route on the map ''' @@ -332,6 +342,11 @@ Format YYYY-MM-DD")) "color":"%(color)s"}}""" % {'id':self.id, 'name':self.name, 'color':color, 'geometry':self.route.geojson,} + def getTinyUrl(self): + parameters = 'current_feature=%d&checked_categories=%s' % (self.id, + self.categories[0].id) + return TinyUrl.getUrnByParameters(parameters) + def getDateCondition(): ''' Return an SQL condition for apparition of dates |