"""News app common app.""" from rest_framework import generics, permissions from news import filters, models from news.serializers import common as serializers from utils.views import JWTGenericViewMixin class NewsMixin: """News mixin.""" permission_classes = (permissions.AllowAny, ) serializer_class = serializers.NewsSerializer def get_queryset(self, *args, **kwargs): """Override get_queryset method""" return models.News.objects.published() \ .by_country_code(code=self.request.country_code) \ .order_by('-is_highlighted', '-created') class NewsListView(NewsMixin, generics.ListAPIView): """News list view.""" filter_class = filters.NewsListFilterSet class NewsDetailView(NewsMixin, JWTGenericViewMixin, generics.RetrieveAPIView): """News detail view.""" class NewsTypeListView(generics.ListAPIView): """NewsType list view.""" serializer_class = serializers.NewsTypeSerializer permission_classes = (permissions.AllowAny, ) pagination_class = None queryset = models.NewsType.objects.all()