summaryrefslogtreecommitdiff
path: root/chimere/feeds.py
diff options
context:
space:
mode:
Diffstat (limited to 'chimere/feeds.py')
-rw-r--r--chimere/feeds.py46
1 files changed, 28 insertions, 18 deletions
diff --git a/chimere/feeds.py b/chimere/feeds.py
index 53444ac..025ceb0 100644
--- a/chimere/feeds.py
+++ b/chimere/feeds.py
@@ -31,6 +31,7 @@ from django.shortcuts import get_object_or_404
from chimere.models import Category, SubCategory, Marker, Area
+
class BaseFeed(Feed):
"""
Base feed for Chimere objects
@@ -42,8 +43,8 @@ class BaseFeed(Feed):
if item.categories.all() and item.categories.all()[0]:
cat = item.categories.all()[0].pk
return reverse('chimere:index') + '?zoom=16&lat=%f&lon=%f&'\
- 'current_feature=%d&checked_categories=%d' % (coord.y, coord.x, item.id,
- cat)
+ 'current_feature=%d&checked_categories=%d' % (coord.y, coord.x,
+ item.id, cat)
def item_pubdate(self, item):
"""
@@ -57,6 +58,7 @@ class BaseFeed(Feed):
def item_geometry(self, obj):
return obj.point
+
class LatestPOIsByCategory(BaseFeed):
'''
Last Points of interests by category in Feeds
@@ -87,11 +89,13 @@ class LatestPOIsByCategory(BaseFeed):
and its status is available
This returns a list of the 15 last markers/POIs ordering by date
"""
- q = Marker.objects.filter(status__exact='A',
+ q = Marker.objects.filter(
+ status__exact='A',
categories__category__id__exact=obj.id,
available_date__isnull=False).order_by('-available_date')[:15]
return q
+
class LatestPOIsBySubCategory(BaseFeed):
'''
Last Points of interests by SubCategory in Feeds
@@ -112,11 +116,13 @@ class LatestPOIsBySubCategory(BaseFeed):
return reverse('chimere:feeds-subcat', args=['', obj.id])
def items(self, obj):
- q = Marker.objects.filter(categories__id__exact=obj.id,
- available_date__isnull=False, status__exact='A').order_by(
- '-available_date')[:15]
+ q = Marker.objects.filter(
+ categories__id__exact=obj.id,
+ available_date__isnull=False, status__exact='A')\
+ .order_by('-available_date')[:15]
return q
+
class LatestPOIs(BaseFeed):
'''
Last Points of interests
@@ -134,10 +140,12 @@ class LatestPOIs(BaseFeed):
return _("Latest points of interest from ") + settings.PROJECT_NAME
def items(self):
- q = Marker.objects.filter(status__exact='A',
- available_date__isnull=False).order_by('-available_date')[:15]
+ q = Marker.objects.filter(
+ status__exact='A',
+ available_date__isnull=False).order_by('-available_date')[:15]
return q
+
class LatestPOIsByZone(BaseFeed):
'''
Last Points of interests by zone by coordinates
@@ -168,16 +176,16 @@ class LatestPOIsByZone(BaseFeed):
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),
- (lower_right_lon, lower_right_lat),
- (lower_left_lon, lower_left_lat),
- (upper_left_lon, upper_left_lat)),
- srid=settings.CHIMERE_EPSG_DISPLAY_PROJECTION)
+ (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.CHIMERE_EPSG_DISPLAY_PROJECTION)
return areaBox
def title(self, obj):
return settings.PROJECT_NAME + u" - " +\
- _(u"Last points of interest by area")
+ _(u"Last points of interest by area")
def link(self, obj):
"""
@@ -187,7 +195,7 @@ class LatestPOIsByZone(BaseFeed):
if not obj:
raise FeedDoesNotExist
area = str(self.upper_left_lat) + '_' + str(self.upper_left_lon) + \
- '_' + str(self.lower_right_lat) + '_' + str(self.lower_right_lon)
+ '_' + str(self.lower_right_lat) + '_' + str(self.lower_right_lon)
return reverse('chimere:feeds-area', args=['', area])
def items(self, obj):
@@ -196,10 +204,12 @@ class LatestPOIsByZone(BaseFeed):
which is requested.
This returns a list of the 15 last markers/POIs ordering by date
"""
- q = Marker.objects.filter(point__contained=obj, status__exact='A',
- available_date__isnull=False).order_by('-available_date')[:15]
+ q = Marker.objects.filter(
+ point__contained=obj, status__exact='A',
+ available_date__isnull=False).order_by('-available_date')[:15]
return q
+
class LatestPOIsByZoneID(BaseFeed):
'''
Last Points of interests by zone by id
@@ -212,7 +222,7 @@ class LatestPOIsByZoneID(BaseFeed):
def title(self, obj):
return settings.PROJECT_NAME + u" - " + \
- _(u"Last points of interest") + u" - " + obj.name
+ _(u"Last points of interest") + u" - " + obj.name
def link(self, obj):
if not obj: