diff options
Diffstat (limited to 'chimere/main')
-rw-r--r-- | chimere/main/models.py | 25 | ||||
-rw-r--r-- | chimere/main/views.py | 8 |
2 files changed, 27 insertions, 6 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 diff --git a/chimere/main/views.py b/chimere/main/views.py index 70ba5cd..cf538d9 100644 --- a/chimere/main/views.py +++ b/chimere/main/views.py @@ -195,7 +195,13 @@ def welcome(request, display=None): Welcome string """ response_dct = {'display':display} - response_dct['news_lst'] = News.objects.filter(available=True) + news = list(News.objects.filter(available=True).all()) + if settings.DAYS_BEFORE_EVENT: + q = checkDate(Q(status='A', start_date__isnull=False)) + news += list(Marker.objects.filter(q).all()) + news.sort(key=lambda x:x.date, reverse=True) + response_dct['news_lst'] = news + n = news[0] return loader.render_to_string('welcome.html', response_dct) def submited(request, area_name="", action=""): |