示例#1
0
文件: views.py 项目: PARINetwork/pari
 def get_queryset(self):
     year = self.kwargs['year']
     month = self.kwargs['month']
     qs = Article.objects.live().filter(first_published_at__year=year,
                                   first_published_at__month=month).order_by('-first_published_at')
     qs, = filter_by_language(self.request, qs)
     return qs
示例#2
0
    def get_context_data(self, **kwargs):
        context = super(GalleryDetail, self).get_context_data(**kwargs)
        qs = Article.objects.live().select_related('featured_image')
        qs = qs.filter(categories=context["category"])
        qs, = filter_by_language(self.request, qs)
        qs = qs.order_by('-first_published_at')
        paginator = Paginator(qs, self.paginate_by)
        try:
            page_num = self.request.GET.get("page", 1)
        except ValueError:
            page_num = 1
        try:
            context["articles"] = paginator.page(page_num)
        except (PageNotAnInteger, EmptyPage):
            raise Http404
        context["languages"] = settings.LANGUAGES
        category = context["category"]
        context["title"] = category.name
        context["sub_heading"] = category.description
        context["tab"] = 'gallery'

        categories_in_gallery = [
            'Little takes', 'tongues', 'visible-work-invisible-women'
        ]
        if context["category"].slug in categories_in_gallery:
            self.template_name = 'category/category_detail.html'
        context['current_page'] = category.name
        return context
示例#3
0
文件: views.py 项目: PARINetwork/pari
 def get_queryset(self):
     live_articles_by_author = Article.objects.live().filter(
         authors__author__slug=self.kwargs["slug"]
     )
     qs = live_articles_by_author.order_by("-first_published_at")
     qs, = filter_by_language(self.request, qs)
     return qs
示例#4
0
    def test_no_filter_is_applied_and_all_given_items_are_returned_if_lang_is_all(self):
        request = RequestFactory().get('/locations/100-chennai/?lang=all')
        articles_query_to_filter = MagicMock()
        articles_result_after_filter = ["article1", "article2"]
        articles_query_to_filter.filter.return_value = articles_result_after_filter
        filtered_result = filter_by_language(request, articles_query_to_filter)

        assert not articles_query_to_filter.filter.called
        assert filtered_result == (articles_query_to_filter,)
示例#5
0
    def test_english_is_chosen_if_no_lang_is_passed_in_query_param(self):
        request = RequestFactory().get('/locations/100-chennai/')
        articles_query_to_filter = MagicMock()
        articles_result_after_filter = ["article1", "article2"]
        articles_query_to_filter.filter.return_value = articles_result_after_filter
        filtered_result = filter_by_language(request, articles_query_to_filter)

        articles_query_to_filter.filter.assert_called_with(language="en")
        assert filtered_result == (['article1', 'article2'],)
示例#6
0
    def test_lang_is_used_from_query_params(self):
        request = RequestFactory().get('/locations/100-chennai/?lang=hi')
        articles_query_to_filter = MagicMock()
        articles_result_after_filter = ["article1", "article2"]
        articles_query_to_filter.filter.return_value = articles_result_after_filter
        filtered_result = filter_by_language(request, articles_query_to_filter)

        articles_query_to_filter.filter.assert_called_with(language="hi")
        assert filtered_result == (['article1', 'article2'],)
示例#7
0
 def test_all_items_are_filtered_when_multiple_items_to_be_filtered_is_given(self):
     request = RequestFactory().get('/locations/100-chennai/')
     articles_query_to_filter = MagicMock()
     albums_query_to_filter = MagicMock()
     articles_result_after_filter = ["article1", "article2"]
     albums_result_after_filter = ["album1"]
     articles_query_to_filter.filter.return_value = articles_result_after_filter
     albums_query_to_filter.filter.return_value = albums_result_after_filter
     filtered_result = filter_by_language(request, articles_query_to_filter, albums_query_to_filter)
     
     articles_query_to_filter.filter.assert_called_with(language="en")
     albums_query_to_filter.filter.assert_called_with(language="en")
     assert filtered_result == (articles_result_after_filter, albums_result_after_filter)
示例#8
0
文件: views.py 项目: malkum/pari
 def get_context_data(self, **kwargs):
     context = super(LocationDetail, self).get_context_data(**kwargs)
     location = context['location']
     articles_qs = Article.objects.live().filter(locations=location)
     images_qs = AffixImage.objects.filter(locations=location)
     albums_slides = AlbumSlide.objects.filter(image__in=images_qs)
     albums_qs = Album.objects.live().filter(
         slides=albums_slides).distinct()
     live_faces = Face.objects.live()
     faces_qs = live_faces.filter(
         Q(location=location) | Q(image__in=images_qs))
     articles_qs, albums_qs = filter_by_language(self.request, articles_qs,
                                                 albums_qs)
     context['articles'] = itertools.chain(articles_qs, albums_qs, faces_qs)
     context['LANGUAGES'] = settings.LANGUAGES
     context[
         'title'] = location.name + ', ' + location.district + ', ' + location.state
     context['current_page'] = 'location-detail'
     return context
示例#9
0
 def get_context_data(self, **kwargs):
     context = super(StoryDetail, self).get_context_data(**kwargs)
     qs = Article.objects.live().select_related('featured_image')
     qs = qs.filter(categories=context["category"])
     qs, = filter_by_language(self.request, qs)
     qs = qs.order_by('-first_published_at')
     paginator = Paginator(qs, self.paginate_by)
     try:
         page_num = self.request.GET.get("page", 1)
     except ValueError:
         page_num = 1
     try:
         context["articles"] = paginator.page(page_num)
     except (PageNotAnInteger, EmptyPage):
         raise Http404
     context["languages"] = settings.LANGUAGES
     category = context['category']
     context["title"] = category.name
     context["sub_heading"] = category.description
     context["tab"] = 'stories'
     context["current_page"] = 'single-category'
     return context