Browse Source

reference authors api added for admin panel

master
Mohsen Taba 2 weeks ago
parent
commit
fc0350dd1e
  1. 30
      apps/hadis/serializers/serializers_admin.py
  2. 2
      apps/hadis/views_admin.py

30
apps/hadis/serializers/serializers_admin.py

@ -472,7 +472,23 @@ class AdminBookTypeSerializer(serializers.ModelSerializer):
class AdminBookAuthorSerializer(serializers.ModelSerializer): class AdminBookAuthorSerializer(serializers.ModelSerializer):
class Meta: class Meta:
model = BookAuthor model = BookAuthor
fields = ["id", "name", "birth_year_hijri", "death_year_hijri", "birth_year_miladi", "death_year_miladi"]
fields = [
"id",
"name",
"slug",
"birth_year_hijri",
"death_year_hijri",
"birth_year_miladi",
"death_year_miladi",
"related_narrator",
"known_as",
"scholarity",
"tabaqa",
"rutba",
"features",
"book_references",
]
read_only_fields = ["id", "slug"]
class AdminBookAttributeSerializer(serializers.ModelSerializer): class AdminBookAttributeSerializer(serializers.ModelSerializer):
@ -524,16 +540,16 @@ class AdminBookReferenceListSerializer(serializers.ModelSerializer):
] ]
def get_volume(self, obj): def get_volume(self, obj):
vol = obj.volumes.first()
return vol.title if vol else ""
vols = list(obj.volumes.all())
return vols[0].title if vols else ""
def get_publisher(self, obj): def get_publisher(self, obj):
edition = obj.editions.first()
return edition.publisher if edition else []
editions = list(obj.editions.all())
return editions[0].publisher if editions else []
def get_year_of_publication(self, obj): def get_year_of_publication(self, obj):
edition = obj.editions.first()
return edition.year_of_publication if edition else ""
editions = list(obj.editions.all())
return editions[0].year_of_publication if editions else ""
class AdminBookReferenceDetailSerializer(serializers.ModelSerializer): class AdminBookReferenceDetailSerializer(serializers.ModelSerializer):

2
apps/hadis/views_admin.py

@ -495,7 +495,7 @@ class AdminBookReferenceViewSet(ModelViewSet):
return AdminBookReferenceDetailSerializer return AdminBookReferenceDetailSerializer
def get_queryset(self): def get_queryset(self):
queryset = BookReference.objects.all().prefetch_related("subject_area", "authors").select_related("type")
queryset = BookReference.objects.all().prefetch_related("subject_area", "authors", "volumes", "editions").select_related("type")
search_query = self.request.query_params.get("search") search_query = self.request.query_params.get("search")
if search_query: if search_query:

Loading…
Cancel
Save