Browse Source

feat: implement REST API views for article, hadis, library, podcast, and video modules

master
H.shokhmgar86 2 weeks ago
parent
commit
d6afe2cc54
  1. 5
      apps/article/views.py
  2. 5
      apps/hadis/views/hadis.py
  3. 5
      apps/library/views.py
  4. 5
      apps/podcast/views.py
  5. 5
      apps/video/views.py

5
apps/article/views.py

@ -64,8 +64,9 @@ class PinnedArticleCollectionListView(generics.ListAPIView):
def get_queryset(self):
return PinnedArticleCollection.objects.filter(
status=True,
display_position=ArticleCollection.DisplayPosition.PINNED
).order_by('order', '-created_at')
display_position=ArticleCollection.DisplayPosition.PINNED,
articles__isnull=False
).distinct().order_by('order', '-created_at')
def list(self, request, *args, **kwargs):
response = super().list(request, *args, **kwargs)

5
apps/hadis/views/hadis.py

@ -33,8 +33,9 @@ class PinnedHadisCollectionListView(ListAPIView):
def get_queryset(self):
return HadisCollection.objects.filter(
status=True,
display_position=HadisCollection.DisplayPosition.PINNED
).order_by('order', '-created_at')
display_position=HadisCollection.DisplayPosition.PINNED,
hadis_items__isnull=False
).distinct().order_by('order', '-created_at')
def list(self, request, *args, **kwargs):
# 1. گرفتن خروجی استاندارد لیست مجموعه‌ها

5
apps/library/views.py

@ -67,8 +67,9 @@ class PinnedBookCollectionListView(ListAPIView):
def get_queryset(self):
return BookCollection.objects.filter(
status=True,
display_position=BookCollection.DisplayPosition.PINNED
).order_by('order', '-created_at')
display_position=BookCollection.DisplayPosition.PINNED,
books__isnull=False
).distinct().order_by('order', '-created_at')
def list(self, request, *args, **kwargs):

5
apps/podcast/views.py

@ -71,8 +71,9 @@ class PinnedPodcastCollectionListView(generics.ListAPIView):
def get_queryset(self):
return PinnedPodcastCollection.objects.filter(
status=True,
display_position=PodcastCollection.DisplayPosition.PINNED
).order_by('order', '-created_at')
display_position=PodcastCollection.DisplayPosition.PINNED,
podcasts__isnull=False
).distinct().order_by('order', '-created_at')
def list(self, request, *args, **kwargs):
response = super().list(request, *args, **kwargs)

5
apps/video/views.py

@ -84,8 +84,9 @@ class PinnedVideoCollectionListView(generics.ListAPIView):
def get_queryset(self):
queryset = PinnedVideoCollection.objects.filter(
status=True,
display_position=VideoCollection.DisplayPosition.PINNED
).order_by('order', '-created_at')
display_position=VideoCollection.DisplayPosition.PINNED,
related_playlists__isnull=False
).distinct().order_by('order', '-created_at')
# Filter by bookmarks if requested
is_bookmark = self.request.query_params.get('is_bookmark', '').lower()

Loading…
Cancel
Save