news ordering
This commit is contained in:
parent
d77bd1d79c
commit
5ef58b8202
|
|
@ -3,6 +3,8 @@ from django.conf import settings
|
||||||
from django.shortcuts import get_object_or_404
|
from django.shortcuts import get_object_or_404
|
||||||
from django.utils import translation
|
from django.utils import translation
|
||||||
from rest_framework import generics, permissions, response
|
from rest_framework import generics, permissions, response
|
||||||
|
from rest_framework.filters import OrderingFilter
|
||||||
|
from django_filters.rest_framework import DjangoFilterBackend
|
||||||
|
|
||||||
from news import filters, models, serializers
|
from news import filters, models, serializers
|
||||||
from rating.tasks import add_rating
|
from rating.tasks import add_rating
|
||||||
|
|
@ -111,9 +113,11 @@ class NewsBackOfficeLCView(NewsBackOfficeMixinView,
|
||||||
serializer_class = serializers.NewsBackOfficeBaseSerializer
|
serializer_class = serializers.NewsBackOfficeBaseSerializer
|
||||||
filter_class = filters.NewsListFilterSet
|
filter_class = filters.NewsListFilterSet
|
||||||
create_serializers_class = serializers.NewsBackOfficeDetailSerializer
|
create_serializers_class = serializers.NewsBackOfficeDetailSerializer
|
||||||
|
filter_backends = (OrderingFilter, DjangoFilterBackend)
|
||||||
permission_classes = [IsCountryAdmin | IsContentPageManager]
|
permission_classes = [IsCountryAdmin | IsContentPageManager]
|
||||||
|
|
||||||
|
ordering_fields = '__all__'
|
||||||
|
|
||||||
def get_serializer_class(self):
|
def get_serializer_class(self):
|
||||||
"""Override serializer class."""
|
"""Override serializer class."""
|
||||||
if self.request.method == 'POST':
|
if self.request.method == 'POST':
|
||||||
|
|
@ -123,6 +127,15 @@ class NewsBackOfficeLCView(NewsBackOfficeMixinView,
|
||||||
def get_queryset(self):
|
def get_queryset(self):
|
||||||
"""Override get_queryset method."""
|
"""Override get_queryset method."""
|
||||||
qs = super().get_queryset().with_extended_related()
|
qs = super().get_queryset().with_extended_related()
|
||||||
|
if 'ordering' in self.request.query_params:
|
||||||
|
self.request.GET._mutable = True
|
||||||
|
if '-publication_datetime' in self.request.query_params['ordering']:
|
||||||
|
self.request.query_params['ordering'] = self.request.query_params['ordering']\
|
||||||
|
.replace('-publication_datetime', '-publication_date,-publication_time')
|
||||||
|
elif 'publication_datetime' in self.request.query_params['ordering']:
|
||||||
|
self.request.query_params['ordering'] = self.request.query_params['ordering']\
|
||||||
|
.replace('publication_datetime', 'publication_date,publication_time')
|
||||||
|
self.request.GET._mutable = False
|
||||||
if self.request.country_code:
|
if self.request.country_code:
|
||||||
qs = qs.by_country_code(self.request.country_code)
|
qs = qs.by_country_code(self.request.country_code)
|
||||||
return qs
|
return qs
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user