def items(self): articles_pks = self.articles.filter( published=True, language__in=utils.served_langs()).values_list('pk', flat=True) categories = self.categories.filter(published=True, language__in=utils.served_langs()) articles_from_categories_pks = Article.objects.filter( published=True, language__in=utils.served_langs(), category__in=categories).values_list('pk', flat=True) pks = list(articles_pks) + list(articles_from_categories_pks) articles = Article.objects.filter(pk__in=pks)[:self.articles_limit] return articles
def pageView(request, slug, homepage=False): if homepage: try: page = Page.objects.get(homepage=True, published=True, language__in=served_langs()) return page.get_view(request) except Page.DoesNotExist: raise Http404 try: page = Page.objects.get(homepage=False, slug=slug, published=True, language__in=served_langs()) return page.get_view(request) except Page.DoesNotExist: raise Http404
def get_object(self): queryset = self.get_queryset() filters = {} filters[self.lookup_field] = self.kwargs[self.lookup_field] try: filters['language'] = current_lang() obj = queryset.get(**filters) except CategoriesModule.DoesNotExist: del filters['language'] filters['language__in'] = served_langs() obj = get_object_or_404(queryset, **filters) return obj
def contentView(request, path): path = path.split('/') try: # first slice of path must be PageCategory root_category_page = Page.objects \ .instance_of(PageCategory) \ .get(slug=path[0], published=True, language__in=served_langs()) if root_category_page.deps_published is False: raise Http404 except Page.DoesNotExist: raise Http404 remaining_path = path[1:] parent = root_category_page.category for i, slug in enumerate(remaining_path): if i == len(remaining_path) - 1: # last slice can be Article or Category try: category = Category.objects.get(slug=slug, published=True, parent=parent, language__in=served_langs()) return Response({ 'component_name': 'Category', 'component_data': CategorySerializer(category, context={ 'request': request }).data, 'meta': category.meta }) except Category.DoesNotExist: pass try: article = Article.objects.get(slug=slug, published=True, category=parent, language__in=served_langs()) return Response({ 'component_name': 'Article', 'component_data': ArticleSerializer(article, context={ 'request': request }).data, 'meta': article.meta }) except Article.DoesNotExist: raise Http404 else: # not-last slice must be Category try: category = Category.objects.get(slug=slug, published=True, parent=parent, language__in=served_langs()) parent = category except Category.DoesNotExist: raise Http404
def items(self): return self.categories.filter(published=True, language__in=utils.served_langs())
def articles(self): return self._articles.filter(published=True, language__in=utils.served_langs())