|
|
@ -11,7 +11,8 @@ from utils.pagination import StandardResultsSetPagination |
|
|
|
|
|
|
|
|
from .models import ( |
|
|
from .models import ( |
|
|
Hadis, HadisCategory, HadisCorrection, HadisInterpretation, HadisStatus, HadisTag, |
|
|
Hadis, HadisCategory, HadisCorrection, HadisInterpretation, HadisStatus, HadisTag, |
|
|
BookReference, BookReferenceImage, BookReferenceDocument, BookAuthor, BookAttribute, BookSubjectArea, BookType |
|
|
|
|
|
|
|
|
BookReference, BookReferenceImage, BookReferenceDocument, BookAuthor, BookAttribute, BookSubjectArea, BookType, |
|
|
|
|
|
Transmitters, TransmitterReliability |
|
|
) |
|
|
) |
|
|
from .serializers.serializers_admin import ( |
|
|
from .serializers.serializers_admin import ( |
|
|
AdminHadisCategorySerializer, |
|
|
AdminHadisCategorySerializer, |
|
|
@ -29,6 +30,9 @@ from .serializers.serializers_admin import ( |
|
|
AdminBookReferenceDocumentSerializer, |
|
|
AdminBookReferenceDocumentSerializer, |
|
|
AdminBookReferenceListSerializer, |
|
|
AdminBookReferenceListSerializer, |
|
|
AdminBookReferenceDetailSerializer, |
|
|
AdminBookReferenceDetailSerializer, |
|
|
|
|
|
AdminTransmitterListSerializer, |
|
|
|
|
|
AdminTransmitterDetailSerializer, |
|
|
|
|
|
AdminTransmitterReliabilitySerializer, |
|
|
) |
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -62,6 +66,60 @@ class AdminHadisTagViewSet(ReadOnlyModelViewSet): |
|
|
return HadisTag.objects.all().order_by("id") |
|
|
return HadisTag.objects.all().order_by("id") |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class AdminTransmitterReliabilityViewSet(ReadOnlyModelViewSet): |
|
|
|
|
|
serializer_class = AdminTransmitterReliabilitySerializer |
|
|
|
|
|
permission_classes = [IsAuthenticated, IsSuperAdmin] |
|
|
|
|
|
authentication_classes = [TokenAuthentication] |
|
|
|
|
|
pagination_class = None |
|
|
|
|
|
|
|
|
|
|
|
def get_queryset(self): |
|
|
|
|
|
return TransmitterReliability.objects.all().order_by("id") |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class AdminTransmitterViewSet(ModelViewSet): |
|
|
|
|
|
permission_classes = [IsAuthenticated, IsSuperAdmin] |
|
|
|
|
|
authentication_classes = [TokenAuthentication] |
|
|
|
|
|
pagination_class = StandardResultsSetPagination |
|
|
|
|
|
parser_classes = (MultiPartParser, FormParser, JSONParser) |
|
|
|
|
|
|
|
|
|
|
|
def get_serializer_class(self): |
|
|
|
|
|
if self.action == "list": |
|
|
|
|
|
return AdminTransmitterListSerializer |
|
|
|
|
|
return AdminTransmitterDetailSerializer |
|
|
|
|
|
|
|
|
|
|
|
def get_queryset(self): |
|
|
|
|
|
queryset = Transmitters.objects.select_related("reliability") |
|
|
|
|
|
|
|
|
|
|
|
search_query = self.request.query_params.get("search") |
|
|
|
|
|
if search_query: |
|
|
|
|
|
q_filter = ( |
|
|
|
|
|
Q(full_name__icontains=search_query) |
|
|
|
|
|
| Q(kunya__icontains=search_query) |
|
|
|
|
|
| Q(known_as__icontains=search_query) |
|
|
|
|
|
| Q(nickname__icontains=search_query) |
|
|
|
|
|
| Q(origin__icontains=search_query) |
|
|
|
|
|
| Q(lived_in__icontains=search_query) |
|
|
|
|
|
| Q(died_in__icontains=search_query) |
|
|
|
|
|
) |
|
|
|
|
|
if search_query.isdigit(): |
|
|
|
|
|
q_filter |= Q(legacy_number=int(search_query)) | Q(generation=int(search_query)) |
|
|
|
|
|
queryset = queryset.filter(q_filter) |
|
|
|
|
|
|
|
|
|
|
|
status_filter = self.request.query_params.get("status") |
|
|
|
|
|
if status_filter and status_filter != "all": |
|
|
|
|
|
queryset = queryset.filter(reliability__slug=status_filter) |
|
|
|
|
|
|
|
|
|
|
|
madhhab_filter = self.request.query_params.get("madhhab") |
|
|
|
|
|
if madhhab_filter and madhhab_filter != "all": |
|
|
|
|
|
queryset = queryset.filter(madhhab=madhhab_filter) |
|
|
|
|
|
|
|
|
|
|
|
generation_filter = self.request.query_params.get("generation") |
|
|
|
|
|
if generation_filter and generation_filter != "all": |
|
|
|
|
|
queryset = queryset.filter(generation=generation_filter) |
|
|
|
|
|
|
|
|
|
|
|
return queryset.order_by("full_name", "id") |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class AdminHadisViewSet(ModelViewSet): |
|
|
class AdminHadisViewSet(ModelViewSet): |
|
|
permission_classes = [IsAuthenticated, IsSuperAdmin] |
|
|
permission_classes = [IsAuthenticated, IsSuperAdmin] |
|
|
@ -267,4 +325,3 @@ class AdminBookReferenceViewSet(ModelViewSet): |
|
|
queryset = queryset.filter(authors__id=author_id) |
|
|
queryset = queryset.filter(authors__id=author_id) |
|
|
|
|
|
|
|
|
return queryset.distinct().order_by("-created_at") |
|
|
return queryset.distinct().order_by("-created_at") |
|
|
|
|
|
|