Browse Source

transmitters chain api for admin panel added

master
Mohsen Taba 3 weeks ago
parent
commit
1ac92e39e8
  1. 17
      apps/hadis/serializers/serializers_admin.py
  2. 3
      apps/hadis/urls.py
  3. 19
      apps/hadis/views_admin.py

17
apps/hadis/serializers/serializers_admin.py

@ -3,7 +3,7 @@ from django.core.files.uploadedfile import SimpleUploadedFile
from utils.image_compression import maybe_compress_uploaded_file from utils.image_compression import maybe_compress_uploaded_file
from ..models import ( from ..models import (
Hadis, HadisCategory, HadisStatus, HadisTag, HadisCorrection, HadisInterpretation, HadisCollection, HadisSect, HadisInCollection,
Hadis, HadisCategory, HadisStatus, HadisTag, HadisCorrection, HadisInterpretation, HadisCollection, HadisSect, HadisInCollection, HadisTransmitter,
BookReference, BookReferenceImage, BookReferenceDocument, BookAuthor, BookAttribute, BookSubjectArea, BookType, BookReference, BookReferenceImage, BookReferenceDocument, BookAuthor, BookAttribute, BookSubjectArea, BookType,
Transmitters, TransmitterReliability, NarratorLayer, OpinionStatus Transmitters, TransmitterReliability, NarratorLayer, OpinionStatus
) )
@ -719,3 +719,18 @@ class AdminCategoryQuranVerseSerializer(serializers.ModelSerializer):
else: else:
QuranSecondaryTranslation.objects.create(quran_verse=instance, **sec) QuranSecondaryTranslation.objects.create(quran_verse=instance, **sec)
return instance return instance
class AdminHadisTransmitterSerializer(serializers.ModelSerializer):
class Meta:
model = HadisTransmitter
fields = [
"id",
"hadis",
"transmitter",
"chain_index",
"narrator_layer",
"status",
"order",
"is_gap",
]

3
apps/hadis/urls.py

@ -18,7 +18,7 @@ from .views_admin import (
AdminBookSubjectAreaViewSet, AdminBookTypeViewSet, AdminBookAuthorViewSet, AdminBookAttributeViewSet, AdminBookReferenceImageViewSet, AdminBookReferenceDocumentViewSet, AdminBookReferenceViewSet, AdminBookSubjectAreaViewSet, AdminBookTypeViewSet, AdminBookAuthorViewSet, AdminBookAttributeViewSet, AdminBookReferenceImageViewSet, AdminBookReferenceDocumentViewSet, AdminBookReferenceViewSet,
AdminTransmitterViewSet, AdminTransmitterReliabilityViewSet, DovodiBookSubjectAreaViewSet, DovodiBookTypeViewSet, AdminTransmitterViewSet, AdminTransmitterReliabilityViewSet, DovodiBookSubjectAreaViewSet, DovodiBookTypeViewSet,
DovodiNarratorLayerViewSet, DovodiTransmitterReliabilityViewSet, DovodiOpinionStatusViewSet, DovodiNarratorLayerViewSet, DovodiTransmitterReliabilityViewSet, DovodiOpinionStatusViewSet,
DovodiHadisSectViewSet, DovodiHadisCategoryViewSet, AdminCategoryQuranVerseViewSet
DovodiHadisSectViewSet, DovodiHadisCategoryViewSet, AdminCategoryQuranVerseViewSet, AdminHadisTransmitterViewSet
) )
from .views.reference_v2 import BookAuthorListView, BookAuthorDetailView, AuthorReferencesListView, BookAuthorSyncView from .views.reference_v2 import BookAuthorListView, BookAuthorDetailView, AuthorReferencesListView, BookAuthorSyncView
from django.views.decorators.cache import cache_page from django.views.decorators.cache import cache_page
@ -53,6 +53,7 @@ admin_router.register(r'transmitter-reliabilities', AdminTransmitterReliabilityV
admin_router.register(r'dovodi-narrator-layers', DovodiNarratorLayerViewSet, basename='dovodi-narrator-layers') admin_router.register(r'dovodi-narrator-layers', DovodiNarratorLayerViewSet, basename='dovodi-narrator-layers')
admin_router.register(r'dovodi-transmitter-reliabilities', DovodiTransmitterReliabilityViewSet, basename='dovodi-transmitter-reliabilities') admin_router.register(r'dovodi-transmitter-reliabilities', DovodiTransmitterReliabilityViewSet, basename='dovodi-transmitter-reliabilities')
admin_router.register(r'dovodi-opinion-statuses', DovodiOpinionStatusViewSet, basename='dovodi-opinion-statuses') admin_router.register(r'dovodi-opinion-statuses', DovodiOpinionStatusViewSet, basename='dovodi-opinion-statuses')
admin_router.register(r'hadis-transmitters', AdminHadisTransmitterViewSet, basename='admin-hadis-transmitters')
# Hide admin viewsets from swagger # Hide admin viewsets from swagger
for prefix, viewset, basename in admin_router.registry: for prefix, viewset, basename in admin_router.registry:

19
apps/hadis/views_admin.py

@ -11,7 +11,7 @@ from apps.account.permissions import IsSuperAdmin
from utils.pagination import StandardResultsSetPagination from utils.pagination import StandardResultsSetPagination
from .models import ( from .models import (
Hadis, HadisCategory, HadisCollection, HadisCorrection, HadisInterpretation, HadisStatus, HadisTag, HadisSect,
Hadis, HadisCategory, HadisCollection, HadisCorrection, HadisInterpretation, HadisStatus, HadisTag, HadisSect, HadisTransmitter,
BookReference, BookReferenceImage, BookReferenceDocument, BookAuthor, BookAttribute, BookSubjectArea, BookType, BookReference, BookReferenceImage, BookReferenceDocument, BookAuthor, BookAttribute, BookSubjectArea, BookType,
Transmitters, TransmitterReliability, NarratorLayer, OpinionStatus Transmitters, TransmitterReliability, NarratorLayer, OpinionStatus
) )
@ -39,6 +39,7 @@ from .serializers.serializers_admin import (
AdminTransmitterReliabilitySerializer, AdminTransmitterReliabilitySerializer,
AdminNarratorLayerSerializer, AdminNarratorLayerSerializer,
AdminOpinionStatusSerializer, AdminOpinionStatusSerializer,
AdminHadisTransmitterSerializer,
) )
@ -260,7 +261,7 @@ class AdminTransmitterViewSet(ModelViewSet):
if generation_filter and generation_filter != "all": if generation_filter and generation_filter != "all":
queryset = queryset.filter(generation=generation_filter) queryset = queryset.filter(generation=generation_filter)
return queryset.order_by("full_name", "id")
return queryset.order_by("id")
@ -520,3 +521,17 @@ class AdminCategoryQuranVerseViewSet(ModelViewSet):
if category_id: if category_id:
queryset = queryset.filter(category_id=category_id) queryset = queryset.filter(category_id=category_id)
return queryset return queryset
class AdminHadisTransmitterViewSet(ModelViewSet):
serializer_class = AdminHadisTransmitterSerializer
permission_classes = [IsAuthenticated, IsSuperAdmin]
authentication_classes = [TokenAuthentication]
parser_classes = (JSONParser, MultiPartParser, FormParser)
def get_queryset(self):
queryset = HadisTransmitter.objects.all().select_related("transmitter", "narrator_layer", "status")
hadis_id = self.request.query_params.get("hadis_id")
if hadis_id:
queryset = queryset.filter(hadis_id=hadis_id)
return queryset.order_by("order")
Loading…
Cancel
Save