def get_articles(self, request): if not self.article_count: return Article.objects.none() if self.dynamic_category_config and settings.ALDRYN_NEWSBLOG_CATEGORIES_FROM_REQUEST: attribute_obj = None for attribute in settings.ALDRYN_NEWSBLOG_CATEGORIES_FROM_REQUEST.split('.'): if attribute_obj is None: attribute_obj = getattr(request, attribute) else: attribute_obj = getattr(attribute_obj, attribute) if attribute_obj is not None: categories = attribute_obj.all() else: categories = self.category_config.all() queryset = Article.objects if not self.get_edit_mode(request): queryset = queryset.published() languages = get_valid_languages_from_request( self.app_config.namespace, request) if self.language not in languages: return queryset.none() queryset = queryset.translated(*languages).filter( app_config=self.app_config, is_featured=True) if categories.count() != 0: queryset = queryset.filter( categories__in=categories ) return queryset[:self.article_count]
def get_articles(self, article, request): """ Returns a queryset of articles that are related to the given article. """ languages = get_valid_languages_from_request( article.app_config.namespace, request) qs = article.related.translated(*languages) if not self.get_edit_mode(request): qs = qs.published() return qs
def get_articles(self, article, request): """ Returns a queryset of articles that are related to the given article. """ languages = get_valid_languages_from_request( article.app_config.namespace, request) qs = article.related.translated(*languages) if not self.get_edit_mode(request): qs = qs.published() return qs
def get_articles(self, request): if not self.article_count: return Article.objects.none() queryset = Article.objects if not self.get_edit_mode(request): queryset = queryset.published() languages = get_valid_languages_from_request(self.app_config.namespace, request) queryset = queryset.translated(*languages).filter( app_config=self.app_config, is_featured=True) return queryset[:self.article_count]
def get_articles(self, request): if not self.article_count: return Article.objects.none() queryset = Article.objects if not self.get_edit_mode(request): queryset = queryset.published() languages = get_valid_languages_from_request( self.app_config.namespace, request) queryset = queryset.translated(*languages).filter( app_config=self.app_config, is_featured=True) return queryset[:self.article_count]
def get_articles(self, request): """ Returns a queryset of the latest N articles. N is the plugin setting: latest_articles. """ queryset = Article.objects if not self.get_edit_mode(request): queryset = queryset.published() languages = get_valid_languages_from_request(self.app_config.namespace, request) queryset = queryset.translated(*languages).filter( app_config=self.app_config) return queryset[:self.latest_articles]
def get_articles(self, request): """ Returns a queryset of the latest N articles. N is the plugin setting: latest_articles. """ queryset = Article.objects if not self.get_edit_mode(request): queryset = queryset.published() languages = get_valid_languages_from_request( self.app_config.namespace, request) queryset = queryset.translated(*languages).filter( app_config=self.app_config) return queryset[:self.latest_articles]
def get_articles(self, request): queryset = Article.objects if not self.get_edit_mode(request): queryset = queryset.published() languages = get_valid_languages_from_request(self.app_config.namespace, request) if self.language not in languages: return queryset.none() queryset = queryset.translated(*languages).filter( app_config=self.app_config, tags=self.tag) if self.article_count > 0: queryset = queryset[:self.article_count] return queryset
def get_queryset(self, article, request): """ Returns a queryset of articles that have common categories with the given article. """ languages = get_valid_languages_from_request( article.app_config.namespace, request) if self.language not in languages: return Article.objects.none() filter_categories = article.categories.exclude( pk__in=models.Subquery(self.exclude_categories.values('pk'))) queryset = Article.objects.filter( categories__in=filter_categories).exclude( pk=article.pk).translated(*languages) if not self.get_edit_mode(request): queryset = queryset.published() return queryset.distinct()
def get_articles(self, request): """ Return a queryset of the latest articles, filtered by the category set in the plugin settings and sliced to the desired count. """ queryset = Article.objects if not self.get_edit_mode(request): queryset = queryset.published() languages = get_valid_languages_from_request(self.app_config.namespace, request) if self.language not in languages: return queryset.none() queryset = queryset.translated(*languages).filter( app_config=self.app_config).filter(categories=self.category) if self.article_count > 0: queryset = queryset[:self.article_count] return queryset
def get_articles(self, request): """ Returns a queryset of the latest N articles in one or more of the M categories. N is the plugin setting: latest_articles. M is the plugin setting: categories """ queryset = Article.objects.published() queryset = queryset.all().filter(categories__in=self.categories.all()) if not self.latest_articles: return Article.objects.none() languages = get_valid_languages_from_request(self.app_config.namespace, request) if self.language not in languages: return queryset.none() queryset = queryset.translated(*languages).filter( app_config=self.app_config) return queryset[:self.latest_articles]
def get_articles(self, request): """ Returns a queryset of the latest N articles. N is the plugin setting: latest_articles. """ if self.dynamic_category_config and settings.ALDRYN_NEWSBLOG_CATEGORIES_FROM_REQUEST: attribute_obj = None for attribute in settings.ALDRYN_NEWSBLOG_CATEGORIES_FROM_REQUEST.split('.'): if attribute_obj is None: attribute_obj = getattr(request, attribute) else: attribute_obj = getattr(attribute_obj, attribute) if attribute_obj is not None: categories = attribute_obj.all() else: categories = self.category_config.all() queryset = Article.objects featured_qs = Article.objects.all().filter(is_featured=True) if not self.get_edit_mode(request): queryset = queryset.published() featured_qs = featured_qs.published() languages = get_valid_languages_from_request( self.app_config.namespace, request) if self.language not in languages: return queryset.none() queryset = queryset.translated(*languages).filter( app_config=self.app_config) featured_qs = featured_qs.translated(*languages).filter( app_config=self.app_config) exclude_featured = featured_qs.values_list( 'pk', flat=True)[:self.exclude_featured] queryset = queryset.exclude(pk__in=list(exclude_featured)) if categories.count() != 0: queryset = queryset.filter( categories__in=categories ) return queryset[:self.latest_articles]
def get_articles(self, article, request): """ Returns a queryset of articles that have common tags with the given article. """ languages = get_valid_languages_from_request( article.app_config.namespace, request) if self.language not in languages: return Article.objects.none() filter_tags = article.tags.exclude( pk__in=models.Subquery(self.exclude_tags.values('pk'))) queryset = Article.objects.filter(tags__in=article.tags.all()).exclude( tags__in=self.exclude_tags.all()).exclude( pk=article.pk).translated(*languages) if not self.get_edit_mode(request): queryset = queryset.published() queryset = queryset.distinct() if self.article_count > 0: queryset = queryset[:self.article_count] return queryset
def get_articles(self, request): """ Returns a queryset of the latest N articles. N is the plugin setting: latest_articles. """ queryset = Article.objects featured_qs = Article.objects.all().filter(is_featured=True) if not self.get_edit_mode(request): queryset = queryset.published() featured_qs = featured_qs.published() languages = get_valid_languages_from_request( self.app_config.namespace, request) if self.language not in languages: return queryset.none() queryset = queryset.translated(*languages).filter( app_config=self.app_config) featured_qs = featured_qs.translated(*languages).filter( app_config=self.app_config) exclude_featured = list(featured_qs.values_list( 'pk', flat=True))[:self.exclude_featured] queryset = queryset.exclude(pk__in=list(exclude_featured)) return queryset[:self.latest_articles]
def get_articles(self, request): """ Returns a queryset of the latest N articles. N is the plugin setting: latest_articles. """ queryset = Article.objects featured_qs = Article.objects.all().filter(is_featured=True) if not self.get_edit_mode(request): queryset = queryset.published() featured_qs = featured_qs.published() languages = get_valid_languages_from_request( self.app_config.namespace, request) if self.language not in languages: return queryset.none() queryset = queryset.translated(*languages).filter( app_config=self.app_config) featured_qs = featured_qs.translated(*languages).filter( app_config=self.app_config) exclude_featured = featured_qs.values_list( 'pk', flat=True)[:self.exclude_featured] queryset = queryset.exclude(pk__in=list(exclude_featured)) return queryset[:self.latest_articles]
def dispatch(self, request, *args, **kwargs): self.valid_languages = get_valid_languages_from_request( self.namespace, request) return super(AppHookCheckMixin, self).dispatch(request, *args, **kwargs)
def __init__(self, *args, **kwargs): super(ArticleList, self).__init__(*args, **kwargs) request = kwargs.pop('request') self.valid_languages = get_valid_languages_from_request( self.namespace, request)
def dispatch(self, request, *args, **kwargs): self.valid_languages = get_valid_languages_from_request( self.namespace, request) return super(AppHookCheckMixin, self).dispatch( request, *args, **kwargs)