summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
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
commit80e38f8925b5f2fdbe3e1bcb8536fb77da27140b (patch)
tree6cda46de6827b50ad59d59d54f359c25cc411f40
parentf6e4d1156f96be86e6fb8e59655452065e643717 (diff)
downloadChimè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.py24
-rw-r--r--chimere/models.py2
-rw-r--r--chimere/templatetags/chimere_tags.py7
-rw-r--r--chimere/urls.py18
-rw-r--r--example_project/settings.py1
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&current_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/'