diff options
| author | Étienne Loks <etienne.loks@peacefrogs.net> | 2012-10-28 18:08:26 +0100 | 
|---|---|---|
| committer | Étienne Loks <etienne.loks@peacefrogs.net> | 2012-10-28 18:11:32 +0100 | 
| commit | 1de3b3d005ab0c3bb9ee9b8ea24807eb48aa2b5b (patch) | |
| tree | 38bc126aa0295a45a15e1950b17ece3320bd1803 | |
| parent | 3dc454fc3e4239762d9a5a1a50954dc58085db8c (diff) | |
| download | Chimère-1de3b3d005ab0c3bb9ee9b8ea24807eb48aa2b5b.tar.bz2 Chimère-1de3b3d005ab0c3bb9ee9b8ea24807eb48aa2b5b.zip  | |
Filter news by area (refs #389)
| -rw-r--r-- | chimere/templatetags/chimere_tags.py | 7 | ||||
| -rw-r--r-- | chimere/tests.py | 20 | 
2 files changed, 18 insertions, 9 deletions
diff --git a/chimere/templatetags/chimere_tags.py b/chimere/templatetags/chimere_tags.py index b345adf..1258a3d 100644 --- a/chimere/templatetags/chimere_tags.py +++ b/chimere/templatetags/chimere_tags.py @@ -61,8 +61,11 @@ def display_news(context, display=False):          # Retrieve active markers          today = date.today()          after = today + timedelta(settings.CHIMERE_DAYS_BEFORE_EVENT) -        news += list(Marker.objects.filter(status='A', start_date__lte=after -                     ).filter(Q(end_date__gte=today)|Q(end_date__isnull=True))) +        q = Marker.objects.filter(status='A', start_date__lte=after +                     ).filter(Q(end_date__gte=today)|Q(end_date__isnull=True)) +        if area: +            q = q.filter(area.getIncludeMarker()) +        news += list(q)      news.sort(key=lambda x:x.date, reverse=True)      context_data['news_lst'] = news      return context_data diff --git a/chimere/tests.py b/chimere/tests.py index 68a3cdf..c372202 100644 --- a/chimere/tests.py +++ b/chimere/tests.py @@ -18,12 +18,16 @@ from chimere.forms import MarkerForm  from chimere.templatetags.chimere_tags import display_news  from chimere.utils import ShapefileManager -def area_setup(): +def areas_setup():      area_1 = Area.objects.create(name='area 1', urn='area-1', order=1,                  available=True,                  upper_left_corner='SRID=4326;POINT(-4.907753 48.507656)',                  lower_right_corner='SRID=4326;POINT(-4.049447 48.279688)') -    return area_1 +    area_2 = Area.objects.create(name='area 2', urn='area-2', order=2, +                available=True, +                upper_left_corner='SRID=4326;POINT(-3 47.5)', +                lower_right_corner='SRID=4326;POINT(-2.5 47)') +    return [area_1]  def subcategory_setup():      category = Category.objects.create(name='Main category', @@ -170,7 +174,7 @@ class GeoRSSImporterTest(TestCase, ImporterTest):  class FeedsTest(TestCase):      def setUp(self): -        self.area = area_setup() +        self.areas = areas_setup()          self.markers = marker_setup()      def test_rss(self): @@ -180,7 +184,7 @@ class FeedsTest(TestCase):          self.assertEqual(200, response.status_code)          doc = lxml.etree.fromstring(response.content)          self.assertEqual(int(doc.xpath('count(//item)')), len(self.markers)) -        url = reverse('chimere:feeds-areaid', args=('', self.area.pk)) +        url = reverse('chimere:feeds-areaid', args=('', self.areas[0].pk))          response = self.client.get(url)          self.assertEqual(200, response.status_code)          doc = lxml.etree.fromstring(response.content) @@ -188,7 +192,6 @@ class FeedsTest(TestCase):  class MarkerFormTest(TestCase):      def setUp(self): -        self.area = area_setup()          self.subcategories = subcategory_setup()      def test_marker_creation(self): @@ -203,15 +206,16 @@ class MarkerFormTest(TestCase):  class DynamicCategoryTest(TestCase):      def setUp(self): -        self.area = area_setup() +        self.areas = areas_setup()          self.markers = marker_setup()      def test_dynamic_evaluation(self): -        cats = self.area.getCategories(status='A', filter_available=True) +        cats = self.areas[0].getCategories(status='A', filter_available=True)          self.assertEqual(len(cats), 1)  class NewsTest(TestCase):      def setUp(self): +        self.areas = areas_setup()          self.markers = marker_setup()          self.news = []          self.news.append(News.objects.create(title=u"Test news 1", @@ -222,3 +226,5 @@ class NewsTest(TestCase):      def test_news_display(self):          context = display_news(Context({}))          self.assertEqual(len(context['news_lst']), 2) +        context = display_news(Context({'area_name':'area-2'})) +        self.assertEqual(len(context['news_lst']), 1)  | 
