|
|
|
@ -1,4 +1,5 @@ |
|
|
|
from django.db.models import Q |
|
|
|
from django.db.models import Q |
|
|
|
from rest_framework.authentication import TokenAuthentication |
|
|
|
from rest_framework.decorators import action |
|
|
|
from rest_framework.parsers import FormParser, JSONParser, MultiPartParser |
|
|
|
@ -10,15 +11,18 @@ from apps.account.permissions import IsSuperAdmin |
|
|
|
from utils.pagination import StandardResultsSetPagination |
|
|
|
|
|
|
|
from .models import ( |
|
|
|
Hadis, HadisCategory, HadisCorrection, HadisInterpretation, HadisStatus, HadisTag, |
|
|
|
Hadis, HadisCategory, HadisCollection, HadisCorrection, HadisInterpretation, HadisStatus, HadisTag, HadisSect, |
|
|
|
BookReference, BookReferenceImage, BookReferenceDocument, BookAuthor, BookAttribute, BookSubjectArea, BookType, |
|
|
|
Transmitters, TransmitterReliability |
|
|
|
Transmitters, TransmitterReliability, NarratorLayer, OpinionStatus |
|
|
|
) |
|
|
|
from .serializers.serializers_admin import ( |
|
|
|
AdminHadisCategorySerializer, |
|
|
|
AdminHadisSectArchiveSerializer, |
|
|
|
AdminHadisCategoryArchiveSerializer, |
|
|
|
AdminHadisCorrectionSerializer, |
|
|
|
AdminHadisDetailSerializer, |
|
|
|
AdminHadisInterpretationSerializer, |
|
|
|
AdminHadisCollectionSerializer, |
|
|
|
AdminHadisListSerializer, |
|
|
|
AdminHadisStatusSerializer, |
|
|
|
AdminHadisTagSerializer, |
|
|
|
@ -33,6 +37,8 @@ from .serializers.serializers_admin import ( |
|
|
|
AdminTransmitterListSerializer, |
|
|
|
AdminTransmitterDetailSerializer, |
|
|
|
AdminTransmitterReliabilitySerializer, |
|
|
|
AdminNarratorLayerSerializer, |
|
|
|
AdminOpinionStatusSerializer, |
|
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
@ -46,24 +52,99 @@ class AdminHadisCategoryViewSet(ReadOnlyModelViewSet): |
|
|
|
return HadisCategory.objects.all().order_by("order", "id") |
|
|
|
|
|
|
|
|
|
|
|
class AdminHadisStatusViewSet(ReadOnlyModelViewSet): |
|
|
|
class DovodiHadisSectViewSet(ModelViewSet): |
|
|
|
serializer_class = AdminHadisSectArchiveSerializer |
|
|
|
permission_classes = [IsAuthenticated, IsSuperAdmin] |
|
|
|
authentication_classes = [TokenAuthentication] |
|
|
|
pagination_class = None |
|
|
|
parser_classes = (JSONParser, MultiPartParser, FormParser) |
|
|
|
|
|
|
|
def get_queryset(self): |
|
|
|
queryset = HadisSect.objects.all() |
|
|
|
search_query = self.request.query_params.get("search") |
|
|
|
if search_query: |
|
|
|
queryset = queryset.filter( |
|
|
|
Q(title__icontains=search_query) |
|
|
|
| Q(description__icontains=search_query) |
|
|
|
| Q(sect_type__icontains=search_query) |
|
|
|
) |
|
|
|
return queryset.order_by("order", "id") |
|
|
|
|
|
|
|
|
|
|
|
class DovodiHadisCategoryViewSet(ModelViewSet): |
|
|
|
serializer_class = AdminHadisCategoryArchiveSerializer |
|
|
|
permission_classes = [IsAuthenticated, IsSuperAdmin] |
|
|
|
authentication_classes = [TokenAuthentication] |
|
|
|
pagination_class = None |
|
|
|
parser_classes = (JSONParser, MultiPartParser, FormParser) |
|
|
|
|
|
|
|
def get_queryset(self): |
|
|
|
queryset = HadisCategory.objects.select_related("parent", "sect") |
|
|
|
search_query = self.request.query_params.get("search") |
|
|
|
if search_query: |
|
|
|
queryset = queryset.filter( |
|
|
|
Q(title__icontains=search_query) |
|
|
|
| Q(description__icontains=search_query) |
|
|
|
| Q(slug__icontains=search_query) |
|
|
|
| Q(source_type__icontains=search_query) |
|
|
|
) |
|
|
|
return queryset.order_by("tree_id", "lft", "order", "id") |
|
|
|
|
|
|
|
|
|
|
|
class AdminHadisStatusViewSet(ModelViewSet): |
|
|
|
serializer_class = AdminHadisStatusSerializer |
|
|
|
permission_classes = [IsAuthenticated, IsSuperAdmin] |
|
|
|
authentication_classes = [TokenAuthentication] |
|
|
|
pagination_class = None |
|
|
|
parser_classes = (JSONParser, MultiPartParser, FormParser) |
|
|
|
|
|
|
|
def get_queryset(self): |
|
|
|
return HadisStatus.objects.all().order_by("order", "id") |
|
|
|
queryset = HadisStatus.objects.all() |
|
|
|
search_query = self.request.query_params.get("search") |
|
|
|
if search_query: |
|
|
|
queryset = queryset.filter( |
|
|
|
Q(title__icontains=search_query) |
|
|
|
| Q(slug__icontains=search_query) |
|
|
|
| Q(description__icontains=search_query) |
|
|
|
) |
|
|
|
return queryset.order_by("order", "id") |
|
|
|
|
|
|
|
|
|
|
|
class AdminHadisTagViewSet(ReadOnlyModelViewSet): |
|
|
|
class AdminHadisTagViewSet(ModelViewSet): |
|
|
|
serializer_class = AdminHadisTagSerializer |
|
|
|
permission_classes = [IsAuthenticated, IsSuperAdmin] |
|
|
|
authentication_classes = [TokenAuthentication] |
|
|
|
pagination_class = None |
|
|
|
parser_classes = (JSONParser, MultiPartParser, FormParser) |
|
|
|
|
|
|
|
def get_queryset(self): |
|
|
|
return HadisTag.objects.all().order_by("id") |
|
|
|
queryset = HadisTag.objects.all() |
|
|
|
search_query = self.request.query_params.get("search") |
|
|
|
if search_query: |
|
|
|
queryset = queryset.filter(title__icontains=search_query) |
|
|
|
return queryset.order_by("id") |
|
|
|
|
|
|
|
|
|
|
|
class AdminHadisCollectionViewSet(ModelViewSet): |
|
|
|
serializer_class = AdminHadisCollectionSerializer |
|
|
|
permission_classes = [IsAuthenticated, IsSuperAdmin] |
|
|
|
authentication_classes = [TokenAuthentication] |
|
|
|
pagination_class = None |
|
|
|
parser_classes = (MultiPartParser, FormParser, JSONParser) |
|
|
|
|
|
|
|
def get_queryset(self): |
|
|
|
queryset = HadisCollection.objects.all() |
|
|
|
search_query = self.request.query_params.get("search") |
|
|
|
if search_query: |
|
|
|
queryset = queryset.filter( |
|
|
|
Q(title__icontains=search_query) |
|
|
|
| Q(slug__icontains=search_query) |
|
|
|
| Q(summary__icontains=search_query) |
|
|
|
) |
|
|
|
status_filter = self.request.query_params.get("status") |
|
|
|
if status_filter in {"true", "false"}: |
|
|
|
queryset = queryset.filter(status=status_filter == "true") |
|
|
|
return queryset.order_by("order", "id") |
|
|
|
|
|
|
|
|
|
|
|
class AdminTransmitterReliabilityViewSet(ReadOnlyModelViewSet): |
|
|
|
@ -76,6 +157,61 @@ class AdminTransmitterReliabilityViewSet(ReadOnlyModelViewSet): |
|
|
|
return TransmitterReliability.objects.all().order_by("id") |
|
|
|
|
|
|
|
|
|
|
|
class DovodiNarratorLayerViewSet(ModelViewSet): |
|
|
|
serializer_class = AdminNarratorLayerSerializer |
|
|
|
permission_classes = [IsAuthenticated, IsSuperAdmin] |
|
|
|
authentication_classes = [TokenAuthentication] |
|
|
|
pagination_class = None |
|
|
|
parser_classes = (JSONParser, MultiPartParser, FormParser) |
|
|
|
|
|
|
|
def get_queryset(self): |
|
|
|
queryset = NarratorLayer.objects.all() |
|
|
|
search_query = self.request.query_params.get("search") |
|
|
|
if search_query: |
|
|
|
queryset = queryset.filter( |
|
|
|
Q(name__icontains=search_query) |
|
|
|
| Q(description__icontains=search_query) |
|
|
|
| Q(slug__icontains=search_query) |
|
|
|
) |
|
|
|
return queryset.order_by("number", "id") |
|
|
|
|
|
|
|
|
|
|
|
class DovodiTransmitterReliabilityViewSet(ModelViewSet): |
|
|
|
serializer_class = AdminTransmitterReliabilitySerializer |
|
|
|
permission_classes = [IsAuthenticated, IsSuperAdmin] |
|
|
|
authentication_classes = [TokenAuthentication] |
|
|
|
pagination_class = None |
|
|
|
parser_classes = (JSONParser, MultiPartParser, FormParser) |
|
|
|
|
|
|
|
def get_queryset(self): |
|
|
|
queryset = TransmitterReliability.objects.all() |
|
|
|
search_query = self.request.query_params.get("search") |
|
|
|
if search_query: |
|
|
|
queryset = queryset.filter( |
|
|
|
Q(title__icontains=search_query) |
|
|
|
| Q(slug__icontains=search_query) |
|
|
|
) |
|
|
|
return queryset.order_by("id") |
|
|
|
|
|
|
|
|
|
|
|
class DovodiOpinionStatusViewSet(ModelViewSet): |
|
|
|
serializer_class = AdminOpinionStatusSerializer |
|
|
|
permission_classes = [IsAuthenticated, IsSuperAdmin] |
|
|
|
authentication_classes = [TokenAuthentication] |
|
|
|
pagination_class = None |
|
|
|
parser_classes = (JSONParser, MultiPartParser, FormParser) |
|
|
|
|
|
|
|
def get_queryset(self): |
|
|
|
queryset = OpinionStatus.objects.all() |
|
|
|
search_query = self.request.query_params.get("search") |
|
|
|
if search_query: |
|
|
|
queryset = queryset.filter( |
|
|
|
Q(title__icontains=search_query) |
|
|
|
| Q(slug__icontains=search_query) |
|
|
|
) |
|
|
|
return queryset.order_by("id") |
|
|
|
|
|
|
|
|
|
|
|
class AdminTransmitterViewSet(ModelViewSet): |
|
|
|
permission_classes = [IsAuthenticated, IsSuperAdmin] |
|
|
|
authentication_classes = [TokenAuthentication] |
|
|
|
@ -229,6 +365,36 @@ class AdminBookTypeViewSet(ReadOnlyModelViewSet): |
|
|
|
return BookType.objects.all().order_by("id") |
|
|
|
|
|
|
|
|
|
|
|
class DovodiBookSubjectAreaViewSet(ModelViewSet): |
|
|
|
serializer_class = AdminBookSubjectAreaSerializer |
|
|
|
permission_classes = [IsAuthenticated, IsSuperAdmin] |
|
|
|
authentication_classes = [TokenAuthentication] |
|
|
|
pagination_class = None |
|
|
|
parser_classes = (JSONParser, MultiPartParser, FormParser) |
|
|
|
|
|
|
|
def get_queryset(self): |
|
|
|
queryset = BookSubjectArea.objects.all() |
|
|
|
search_query = self.request.query_params.get("search") |
|
|
|
if search_query: |
|
|
|
queryset = queryset.filter(title__icontains=search_query) |
|
|
|
return queryset.order_by("id") |
|
|
|
|
|
|
|
|
|
|
|
class DovodiBookTypeViewSet(ModelViewSet): |
|
|
|
serializer_class = AdminBookTypeSerializer |
|
|
|
permission_classes = [IsAuthenticated, IsSuperAdmin] |
|
|
|
authentication_classes = [TokenAuthentication] |
|
|
|
pagination_class = None |
|
|
|
parser_classes = (JSONParser, MultiPartParser, FormParser) |
|
|
|
|
|
|
|
def get_queryset(self): |
|
|
|
queryset = BookType.objects.all() |
|
|
|
search_query = self.request.query_params.get("search") |
|
|
|
if search_query: |
|
|
|
queryset = queryset.filter(title__icontains=search_query) |
|
|
|
return queryset.order_by("id") |
|
|
|
|
|
|
|
|
|
|
|
class AdminBookAuthorViewSet(ModelViewSet): |
|
|
|
serializer_class = AdminBookAuthorSerializer |
|
|
|
permission_classes = [IsAuthenticated, IsSuperAdmin] |
|
|
|
|