diff options
Diffstat (limited to 'chimere/feeds.py')
-rw-r--r-- | chimere/feeds.py | 46 |
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: |