Esempio n. 1
0
 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})
     )
Esempio n. 2
0
    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)
Esempio n. 3
0
    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)
Esempio n. 4
0
 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}))
Esempio n. 5
0
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):
Esempio n. 6
0
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):