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
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
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
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,)
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'],)
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'],)
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)
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
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