diff options
author | Étienne Loks <etienne.loks@peacefrogs.net> | 2012-07-03 00:26:00 +0200 |
---|---|---|
committer | Étienne Loks <etienne.loks@peacefrogs.net> | 2012-07-03 00:26:00 +0200 |
commit | 80e38f8925b5f2fdbe3e1bcb8536fb77da27140b (patch) | |
tree | 6cda46de6827b50ad59d59d54f359c25cc411f40 | |
parent | f6e4d1156f96be86e6fb8e59655452065e643717 (diff) | |
download | Chimère-80e38f8925b5f2fdbe3e1bcb8536fb77da27140b.tar.bz2 Chimère-80e38f8925b5f2fdbe3e1bcb8536fb77da27140b.zip |
Fix feeds - remove BASE_URL ref
* fix area feeds
* fix url feeds
* temporary fix: pass Marker from BaseGeoManager to GeoManager to fix a strange
error in area feeds using contained filter
-rw-r--r-- | chimere/feeds.py | 24 | ||||
-rw-r--r-- | chimere/models.py | 2 | ||||
-rw-r--r-- | chimere/templatetags/chimere_tags.py | 7 | ||||
-rw-r--r-- | chimere/urls.py | 18 | ||||
-rw-r--r-- | example_project/settings.py | 1 |
5 files changed, 30 insertions, 22 deletions
diff --git a/chimere/feeds.py b/chimere/feeds.py index 36364ad..d5ae5ef 100644 --- a/chimere/feeds.py +++ b/chimere/feeds.py @@ -23,6 +23,7 @@ from django.conf import settings from django.contrib.gis.geos import * from django.contrib.syndication.views import Feed, FeedDoesNotExist from django.core.exceptions import ObjectDoesNotExist +from django.core.urlresolvers import reverse from django.utils.translation import ugettext as _ from django.shortcuts import get_object_or_404 @@ -39,8 +40,9 @@ class BaseFeed(Feed): cat = 0 if item.categories.all() and item.categories.all()[0]: cat = item.categories.all()[0].pk - return settings.BASE_URL + '?zoom=16&lat=%d&lon=%d¤t_feature=%d'\ - '&checked_categories=%d' % (coord.y, coord.x, item.id, cat) + return reverse('chimere:index') + '?zoom=16&lat=%d&lon=%d&'\ + 'current_feature=%d&checked_categories=%d' % (coord.y, coord.x, item.id, + cat) def item_pubdate(self, item): """ @@ -73,7 +75,7 @@ class LatestPOIsByCategory(BaseFeed): """ if not obj: raise FeedDoesNotExist - return settings.BASE_URL + 'rss/category/' + str(obj.id) + return reverse('chimere:feeds-cat', args=['', obj.id]) def items(self, obj): """ @@ -103,7 +105,7 @@ class LatestPOIsBySubCategory(BaseFeed): def link(self, obj): if not obj: raise FeedDoesNotExist - return settings.BASE_URL + 'rss/subcategory/' + str(obj.id) + return reverse('chimere:feeds-subcat', args=['', obj.id]) def items(self, obj): q = Marker.objects.filter(categories__id__exact=obj.id, @@ -122,7 +124,7 @@ class LatestPOIs(BaseFeed): return settings.PROJECT_NAME + u" - " + _(u"Last points of interest") def link(self): - return settings.BASE_URL + 'rss/categories/' + return reverse('chimere:feeds-global') def description(self): return _("Latest points of interest from ") + settings.PROJECT_NAME @@ -161,12 +163,12 @@ class LatestPOIsByZone(BaseFeed): lower_left_lat = lower_right_lat lower_left_lon = upper_left_lon # Define a Polygon with the 4 points of the zone. - areaBox = Polygon(((upper_left_lon, upper_left_lat), - (upper_right_lon, upper_right_lat), + areaBox = Polygon(((upper_left_lon, upper_left_lat), + (upper_right_lon, upper_right_lat), (lower_right_lon, lower_right_lat), (lower_left_lon, lower_left_lat), (upper_left_lon, upper_left_lat)), - srid=settings.EPSG_DISPLAY_PROJECTION) + srid=settings.CHIMERE_EPSG_DISPLAY_PROJECTION) return areaBox def title(self, obj): @@ -180,9 +182,9 @@ class LatestPOIsByZone(BaseFeed): """ if not obj: raise FeedDoesNotExist - return settings.BASE_URL + 'rss/area/' \ - + str(self.upper_left_lat) + '_' + str(self.upper_left_lon) + \ + area = str(self.upper_left_lat) + '_' + str(self.upper_left_lon) + \ '_' + str(self.lower_right_lat) + '_' + str(self.lower_right_lon) + return reverse('chimere:feeds-area', args=['', area]) def items(self, obj): """ @@ -211,7 +213,7 @@ class LatestPOIsByZoneID(BaseFeed): def link(self, obj): if not obj: raise FeedDoesNotExist - return settings.BASE_URL + 'rss/areaid/' + str(obj.id) + return reverse('chimere:feeds-areaid', args=['', obj.id]) def items(self, obj): sql = 'select * from "chimere_marker" where ' + obj.getIncludeSql() diff --git a/chimere/models.py b/chimere/models.py index 4fb2455..aa291ca 100644 --- a/chimere/models.py +++ b/chimere/models.py @@ -295,7 +295,7 @@ class Marker(GeographicItem): route = models.ForeignKey(u"Route", blank=True, null=True, related_name='associated_marker') description = models.TextField(_(u"Description"), blank=True, null=True) - objects = BaseGeoManager() + objects = models.GeoManager() def __unicode__(self): return self.name diff --git a/chimere/templatetags/chimere_tags.py b/chimere/templatetags/chimere_tags.py index e70c7df..6785c57 100644 --- a/chimere/templatetags/chimere_tags.py +++ b/chimere/templatetags/chimere_tags.py @@ -1,6 +1,8 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- +from datetime import date, timedelta + from logging import getLogger from django import template @@ -45,7 +47,10 @@ def display_news(context, display=False): news = list(News.objects.filter(available=True)) if settings.CHIMERE_DAYS_BEFORE_EVENT: # Retrieve active markers - news += list(Marker.objects.available().active()) + today = date.today() + after = today + timedelta(settings.CHIMERE_DAYS_BEFORE_EVENT) + news += list(Marker.objects.filter(status='A', end_date__gte=today, + start_date__lte=after)) news.sort(key=lambda x:x.date, reverse=True) context_data['news_lst'] = news if "area_name" in context: diff --git a/chimere/urls.py b/chimere/urls.py index d7596c0..9c1d291 100644 --- a/chimere/urls.py +++ b/chimere/urls.py @@ -37,16 +37,18 @@ urlpatterns = patterns('chimere.views', if settings.CHIMERE_FEEDS: urlpatterns += patterns('', - url(r'^(?P<area_name>\w+/)?feeds$', 'chimere.views.rss', name='feeds-form'), - url(r'^(?P<area_name>\w+/)?feeds/category/(?P<category_id>\d+)$', LatestPOIsByCategory(), - name='feeds-cat'), + url(r'^(?P<area_name>\w+/)?feeds$', 'chimere.views.rss', + name='feeds-form'), + url(r'^(?P<area_name>\w+/)?feeds/category/(?P<category_id>\d+)$', + LatestPOIsByCategory(), name='feeds-cat'), url(r'^(?P<area_name>\w+/)?feeds/subcategory/(?P<category_id>\d+)$', LatestPOIsBySubCategory(), name='feeds-subcat'), - url(r'^(?P<area_name>\w+/)?feeds/global/$', LatestPOIs(), name='feeds-global'), - url(r'^(?P<area_name>\w+/)?feeds/area/(?P<area>[0-9-_.]+)$', LatestPOIs(), - name='feeds-area'), - url(r'^(?P<area_name>\w+/)?feeds/areaid/(?P<area_id>\d+)$', LatestPOIsByZoneID(), - name='feeds-areaid'), + url(r'^(?P<area_name>\w+/)?feeds/global/$', LatestPOIs(), + name='feeds-global'), + url(r'^(?P<area_name>\w+/)?feeds/area/(?P<area>[0-9-_.]+)$', + LatestPOIsByZone(), name='feeds-area'), + url(r'^(?P<area_name>\w+/)?feeds/areaid/(?P<area_id>\d+)$', + LatestPOIsByZoneID(), name='feeds-areaid'), ) urlpatterns += patterns('chimere.views', diff --git a/example_project/settings.py b/example_project/settings.py index 82c4454..a7e8ec7 100644 --- a/example_project/settings.py +++ b/example_project/settings.py @@ -14,7 +14,6 @@ ROOT_PATH = os.path.realpath(os.path.dirname(__file__)) + "/" SERVER_URL = 'http://www.mydomain.com/' EXTRA_URL = 'chimere/' -BASE_URL = SERVER_URL + EXTRA_URL EMAIL_HOST = 'localhost' STATIC_URL = '/' + EXTRA_URL + 'static/' STATIC_ROOT = ROOT_PATH + 'static/' |