def get_queryset(self): return super(RSSView, self).get_queryset().filter( # Exclude all SuperFeatures (until we ever decide to support them) Not(filter=Type(value=get_superfeature_model().search_objects.mapping.doc_type)) ).filter( Term(**{'hide_from_rss': False}) )
def list(self, request, *args, **kwargs): """Modified list view to driving listing from ES""" search_kwargs = {"published": False} for field_name in ("before", "after", "status", "published"): if field_name in get_query_params(self.request): search_kwargs[field_name] = get_query_params( self.request).get(field_name) for field_name in ("tags", "types", "feature_types"): if field_name in get_query_params(self.request): search_kwargs[field_name] = get_query_params( self.request).getlist(field_name) if "search" in get_query_params(self.request): search_kwargs["query"] = get_query_params( self.request).get("search") queryset = self.model.search_objects.search(**search_kwargs) if "authors" in get_query_params(self.request): authors = get_query_params(self.request).getlist("authors") queryset = queryset.filter(Authors(authors)) if "exclude" in get_query_params(self.request): exclude = get_query_params(self.request).get("exclude") queryset = queryset.filter( es_filter.Not(es_filter.Type(**{'value': exclude}))) # always filter out Super Features from listing page queryset = queryset.filter( es_filter.Not(filter=es_filter.Type(value=get_superfeature_model( ).search_objects.mapping.doc_type))) page = self.paginate_queryset(queryset) if page is not None: serializer = self.get_serializer(page, many=True) return self.get_paginated_response(serializer.data) serializer = self.get_serializer(queryset, many=True) return Response(serializer.data)
def list(self, request, *args, **kwargs): """Modified list view to driving listing from ES""" search_kwargs = {"published": False} for field_name in ("before", "after", "status", "published"): if field_name in get_query_params(self.request): search_kwargs[field_name] = get_query_params(self.request).get(field_name) for field_name in ("tags", "types", "feature_types"): if field_name in get_query_params(self.request): search_kwargs[field_name] = get_query_params(self.request).getlist(field_name) if "search" in get_query_params(self.request): search_kwargs["query"] = get_query_params(self.request).get("search") queryset = self.model.search_objects.search(**search_kwargs) if "authors" in get_query_params(self.request): authors = get_query_params(self.request).getlist("authors") queryset = queryset.filter(Authors(authors)) if "exclude" in get_query_params(self.request): exclude = get_query_params(self.request).get("exclude") queryset = queryset.filter( es_filter.Not(es_filter.Type(**{'value': exclude})) ) # always filter out Super Features from listing page queryset = queryset.filter( es_filter.Not(filter=es_filter.Type( value=get_superfeature_model().search_objects.mapping.doc_type)) ) page = self.paginate_queryset(queryset) if page is not None: serializer = self.get_serializer(page, many=True) return self.get_paginated_response(serializer.data) serializer = self.get_serializer(queryset, many=True) return Response(serializer.data)
def get_queryset(self): return super(RSSView, self).get_queryset().filter( # Exclude all SuperFeatures (until we ever decide to support them) Not(filter=Type( value=get_superfeature_model().search_objects.mapping.doc_type) )).filter(Term(**{'hide_from_rss': False}))
from django.shortcuts import get_object_or_404 from rest_framework import views, status from rest_framework.response import Response from rest_framework.permissions import IsAdminUser from bulbs.api.permissions import CanEditContent from bulbs.super_features.utils import get_superfeature_model, get_superfeature_partial_serializer from bulbs.super_features.serializers import BaseSuperFeatureRelationOrderingSerializer SUPERFEATURE_MODEL = get_superfeature_model() SUPERFEATURE_PARTIAL_SERIALIZER = get_superfeature_partial_serializer() class RelationViewSet(views.APIView): permission_classes = (IsAdminUser, CanEditContent,) def get(self, request, pk): children = SUPERFEATURE_MODEL.objects.filter(parent__id=pk).order_by("ordering") result = SUPERFEATURE_PARTIAL_SERIALIZER(children, many=True) return Response(result.data, status=status.HTTP_200_OK) class RelationOrderingViewSet(views.APIView): permission_classes = (IsAdminUser, CanEditContent,) def put(self, request, pk):
from django.shortcuts import get_object_or_404 from rest_framework import views, status from rest_framework.response import Response from rest_framework.permissions import IsAdminUser from bulbs.api.permissions import CanEditContent from bulbs.super_features.utils import get_superfeature_model, get_superfeature_partial_serializer from bulbs.super_features.serializers import BaseSuperFeatureRelationOrderingSerializer SUPERFEATURE_MODEL = get_superfeature_model() SUPERFEATURE_PARTIAL_SERIALIZER = get_superfeature_partial_serializer() class RelationViewSet(views.APIView): permission_classes = ( IsAdminUser, CanEditContent, ) def get(self, request, pk): children = SUPERFEATURE_MODEL.objects.filter( parent__id=pk).order_by("ordering") result = SUPERFEATURE_PARTIAL_SERIALIZER(children, many=True) return Response(result.data, status=status.HTTP_200_OK) class RelationOrderingViewSet(views.APIView):