|
|
@ -282,7 +282,7 @@ class DovodiHadisSectViewSet(ModelViewSet): |
|
|
|
|
|
|
|
|
authentication_classes = [TokenAuthentication] |
|
|
authentication_classes = [TokenAuthentication] |
|
|
|
|
|
|
|
|
pagination_class = None |
|
|
|
|
|
|
|
|
pagination_class = OptionalPagination |
|
|
|
|
|
|
|
|
parser_classes = (JSONParser, MultiPartParser, FormParser) |
|
|
parser_classes = (JSONParser, MultiPartParser, FormParser) |
|
|
|
|
|
|
|
|
@ -320,7 +320,7 @@ class DovodiHadisCategoryViewSet(ModelViewSet): |
|
|
|
|
|
|
|
|
authentication_classes = [TokenAuthentication] |
|
|
authentication_classes = [TokenAuthentication] |
|
|
|
|
|
|
|
|
pagination_class = None |
|
|
|
|
|
|
|
|
pagination_class = OptionalPagination |
|
|
|
|
|
|
|
|
parser_classes = (JSONParser, MultiPartParser, FormParser) |
|
|
parser_classes = (JSONParser, MultiPartParser, FormParser) |
|
|
|
|
|
|
|
|
@ -484,7 +484,7 @@ class AdminHadisTagViewSet(ModelViewSet): |
|
|
|
|
|
|
|
|
authentication_classes = [TokenAuthentication] |
|
|
authentication_classes = [TokenAuthentication] |
|
|
|
|
|
|
|
|
pagination_class = None |
|
|
|
|
|
|
|
|
pagination_class = OptionalPagination |
|
|
|
|
|
|
|
|
parser_classes = (JSONParser, MultiPartParser, FormParser) |
|
|
parser_classes = (JSONParser, MultiPartParser, FormParser) |
|
|
|
|
|
|
|
|
@ -514,7 +514,7 @@ class AdminHadisCollectionViewSet(ModelViewSet): |
|
|
|
|
|
|
|
|
authentication_classes = [TokenAuthentication] |
|
|
authentication_classes = [TokenAuthentication] |
|
|
|
|
|
|
|
|
pagination_class = None |
|
|
|
|
|
|
|
|
pagination_class = OptionalPagination |
|
|
|
|
|
|
|
|
parser_classes = (MultiPartParser, FormParser, JSONParser) |
|
|
parser_classes = (MultiPartParser, FormParser, JSONParser) |
|
|
|
|
|
|
|
|
@ -1366,7 +1366,7 @@ class AdminHadisCorrectionViewSet(ModelViewSet): |
|
|
|
|
|
|
|
|
def get_queryset(self): |
|
|
def get_queryset(self): |
|
|
|
|
|
|
|
|
from django.db.models import Count, OuterRef, Subquery, IntegerField |
|
|
|
|
|
|
|
|
from django.db.models import Count, OuterRef, Subquery, IntegerField, Prefetch |
|
|
|
|
|
|
|
|
from django.db.models.functions import Coalesce |
|
|
from django.db.models.functions import Coalesce |
|
|
|
|
|
|
|
|
@ -1386,10 +1386,35 @@ class AdminHadisCorrectionViewSet(ModelViewSet): |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
queryset = HadisCorrection.objects.all().select_related("hadis").prefetch_related("references", "references__images").annotate( |
|
|
|
|
|
|
|
|
references_prefetch = Prefetch( |
|
|
|
|
|
"references", |
|
|
|
|
|
queryset=CorrectionReference.objects.select_related( |
|
|
|
|
|
"book_reference__author", "edition", "book_volume" |
|
|
|
|
|
).defer( |
|
|
|
|
|
"book_reference__description", |
|
|
|
|
|
"book_reference__normalized_text", |
|
|
|
|
|
"book_reference__author__scholarity", |
|
|
|
|
|
"book_reference__author__features", |
|
|
|
|
|
).prefetch_related("images", "book_reference__editions").order_by("id"), |
|
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
queryset = ( |
|
|
|
|
|
HadisCorrection.objects.all() |
|
|
|
|
|
.defer( |
|
|
|
|
|
"normalized_text", |
|
|
|
|
|
"embedded_in", |
|
|
|
|
|
"hadis__text", |
|
|
|
|
|
"hadis__translation", |
|
|
|
|
|
"hadis__explanation", |
|
|
|
|
|
"hadis__description", |
|
|
|
|
|
"hadis__normalized_text", |
|
|
|
|
|
"hadis__embedded_in", |
|
|
|
|
|
) |
|
|
|
|
|
.select_related("hadis") |
|
|
|
|
|
.prefetch_related(references_prefetch) |
|
|
|
|
|
.annotate( |
|
|
annotated_bookmark_count=Coalesce(Subquery(bookmarks_subquery, output_field=IntegerField()), 0) |
|
|
annotated_bookmark_count=Coalesce(Subquery(bookmarks_subquery, output_field=IntegerField()), 0) |
|
|
|
|
|
|
|
|
|
|
|
) |
|
|
) |
|
|
) |
|
|
|
|
|
|
|
|
hadis_id = self.request.query_params.get("hadis_id") or self.request.query_params.get("hadis") |
|
|
hadis_id = self.request.query_params.get("hadis_id") or self.request.query_params.get("hadis") |
|
|
@ -1482,7 +1507,7 @@ class AdminCorrectionReferenceViewSet(ModelViewSet): |
|
|
|
|
|
|
|
|
"book_reference__author", "edition", "book_volume" |
|
|
"book_reference__author", "edition", "book_volume" |
|
|
|
|
|
|
|
|
).prefetch_related("images") |
|
|
|
|
|
|
|
|
).prefetch_related("images", "book_reference__editions") |
|
|
|
|
|
|
|
|
correction_id = self.request.query_params.get("correction_id") |
|
|
correction_id = self.request.query_params.get("correction_id") |
|
|
|
|
|
|
|
|
@ -1516,7 +1541,7 @@ class AdminHadisReferenceViewSet(ModelViewSet): |
|
|
|
|
|
|
|
|
"book_reference__author", "edition", "book_volume" |
|
|
"book_reference__author", "edition", "book_volume" |
|
|
|
|
|
|
|
|
).prefetch_related("images") |
|
|
|
|
|
|
|
|
).prefetch_related("images", "book_reference__editions") |
|
|
|
|
|
|
|
|
hadis_id = self.request.query_params.get("hadis_id") |
|
|
hadis_id = self.request.query_params.get("hadis_id") |
|
|
|
|
|
|
|
|
@ -1563,7 +1588,7 @@ class AdminInterpretationReferenceViewSet(ModelViewSet): |
|
|
|
|
|
|
|
|
"book_reference__author", "edition", "book_volume" |
|
|
"book_reference__author", "edition", "book_volume" |
|
|
|
|
|
|
|
|
).prefetch_related("images") |
|
|
|
|
|
|
|
|
).prefetch_related("images", "book_reference__editions") |
|
|
|
|
|
|
|
|
interpretation_id = self.request.query_params.get("interpretation_id") or self.request.query_params.get("interpretation") |
|
|
interpretation_id = self.request.query_params.get("interpretation_id") or self.request.query_params.get("interpretation") |
|
|
|
|
|
|
|
|
@ -1611,7 +1636,7 @@ class AdminOriginalTextReferenceViewSet(ModelViewSet): |
|
|
|
|
|
|
|
|
"book_reference__author", "edition", "book_volume" |
|
|
"book_reference__author", "edition", "book_volume" |
|
|
|
|
|
|
|
|
).prefetch_related("images") |
|
|
|
|
|
|
|
|
).prefetch_related("images", "book_reference__editions") |
|
|
|
|
|
|
|
|
original_text_id = self.request.query_params.get("original_text_id") or self.request.query_params.get("original_text") |
|
|
original_text_id = self.request.query_params.get("original_text_id") or self.request.query_params.get("original_text") |
|
|
|
|
|
|
|
|
@ -1641,7 +1666,26 @@ class AdminHadisInterpretationViewSet(ModelViewSet): |
|
|
|
|
|
|
|
|
def get_queryset(self): |
|
|
def get_queryset(self): |
|
|
|
|
|
|
|
|
queryset = HadisInterpretation.objects.all().select_related("category").prefetch_related("references", "references__images") |
|
|
|
|
|
|
|
|
from django.db.models import Prefetch |
|
|
|
|
|
|
|
|
|
|
|
references_prefetch = Prefetch( |
|
|
|
|
|
"references", |
|
|
|
|
|
queryset=InterpretationReference.objects.select_related( |
|
|
|
|
|
"book_reference__author", "edition", "book_volume" |
|
|
|
|
|
).defer( |
|
|
|
|
|
"book_reference__description", |
|
|
|
|
|
"book_reference__normalized_text", |
|
|
|
|
|
"book_reference__author__scholarity", |
|
|
|
|
|
"book_reference__author__features", |
|
|
|
|
|
).prefetch_related("images", "book_reference__editions").order_by("id"), |
|
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
queryset = ( |
|
|
|
|
|
HadisInterpretation.objects.all() |
|
|
|
|
|
.defer("normalized_text", "category__description") |
|
|
|
|
|
.select_related("category") |
|
|
|
|
|
.prefetch_related(references_prefetch) |
|
|
|
|
|
) |
|
|
|
|
|
|
|
|
category_id = self.request.query_params.get("category_id") or self.request.query_params.get("category") |
|
|
category_id = self.request.query_params.get("category_id") or self.request.query_params.get("category") |
|
|
|
|
|
|
|
|
@ -1761,7 +1805,7 @@ class DovodiBookSubjectAreaViewSet(ModelViewSet): |
|
|
|
|
|
|
|
|
authentication_classes = [TokenAuthentication] |
|
|
authentication_classes = [TokenAuthentication] |
|
|
|
|
|
|
|
|
pagination_class = None |
|
|
|
|
|
|
|
|
pagination_class = OptionalPagination |
|
|
|
|
|
|
|
|
parser_classes = (JSONParser, MultiPartParser, FormParser) |
|
|
parser_classes = (JSONParser, MultiPartParser, FormParser) |
|
|
|
|
|
|
|
|
@ -1791,7 +1835,7 @@ class DovodiBookTypeViewSet(ModelViewSet): |
|
|
|
|
|
|
|
|
authentication_classes = [TokenAuthentication] |
|
|
authentication_classes = [TokenAuthentication] |
|
|
|
|
|
|
|
|
pagination_class = None |
|
|
|
|
|
|
|
|
pagination_class = OptionalPagination |
|
|
|
|
|
|
|
|
parser_classes = (JSONParser, MultiPartParser, FormParser) |
|
|
parser_classes = (JSONParser, MultiPartParser, FormParser) |
|
|
|
|
|
|
|
|
@ -2624,7 +2668,7 @@ class AdminBookTagViewSet(ModelViewSet): |
|
|
|
|
|
|
|
|
serializer_class = AdminBookTagSerializer |
|
|
serializer_class = AdminBookTagSerializer |
|
|
|
|
|
|
|
|
pagination_class = None |
|
|
|
|
|
|
|
|
pagination_class = OptionalPagination |
|
|
|
|
|
|
|
|
parser_classes = (JSONParser, MultiPartParser, FormParser) |
|
|
parser_classes = (JSONParser, MultiPartParser, FormParser) |
|
|
|
|
|
|
|
|
|