Browse Source

ordering urls

master
Mohsen Taba 5 months ago
parent
commit
dd86068b62
  1. 13
      apps/hadis/urls.py
  2. 4
      apps/hadis/views/transmitter.py

13
apps/hadis/urls.py

@ -27,12 +27,6 @@ urlpatterns = [
path('category/<int:category_id>/', HadisListView.as_view(), name='hadis-list'), path('category/<int:category_id>/', HadisListView.as_view(), name='hadis-list'),
path('arguments/', HadisMainListView.as_view(), name='hadis-main-list'), path('arguments/', HadisMainListView.as_view(), name='hadis-main-list'),
# Hadis detail paths (with slug, more specific)
path('<str:hadis_slug>/detail/', HadisDetailView.as_view(), name='hadis-detail'),
path('<str:hadis_slug>/transmitters/', HadisTransmittersView.as_view(), name='hadis-transmitters'),
path('<str:hadis_slug>/corrections/', HadisCorrectionsView.as_view(), name='hadis-corrections'),
path('<str:hadis_slug>/', HadisBasicView.as_view(), name='hadis-basic'), # ← Least specific LAST
# Narrator paths # Narrator paths
path('narrators/<str:narrator_slug>/opinions', TransmitterOpinionView.as_view(), name='narrator-opinions'), path('narrators/<str:narrator_slug>/opinions', TransmitterOpinionView.as_view(), name='narrator-opinions'),
path('narrators/<str:narrator_slug>/original_texts', TransmitterOriginalTextView.as_view(), name='narrator-original-texts'), path('narrators/<str:narrator_slug>/original_texts', TransmitterOriginalTextView.as_view(), name='narrator-original-texts'),
@ -42,4 +36,11 @@ urlpatterns = [
# Reference paths # Reference paths
path('references/<str:reference_slug>', BookDetailView.as_view(), name='reference-detail'), path('references/<str:reference_slug>', BookDetailView.as_view(), name='reference-detail'),
path('references/', BookReferencesView.as_view(), name='references'), path('references/', BookReferencesView.as_view(), name='references'),
# Hadis detail paths (with slug, more specific)
path('<str:hadis_slug>/detail/', HadisDetailView.as_view(), name='hadis-detail'),
path('<str:hadis_slug>/transmitters/', HadisTransmittersView.as_view(), name='hadis-transmitters'),
path('<str:hadis_slug>/corrections/', HadisCorrectionsView.as_view(), name='hadis-corrections'),
path('<str:hadis_slug>/', HadisBasicView.as_view(), name='hadis-basic'), # ← Least specific LAST
] ]

4
apps/hadis/views/transmitter.py

@ -19,21 +19,17 @@ class TransmitterView(ListAPIView):
def get_queryset(self): def get_queryset(self):
queryset = Transmitters.objects.all() queryset = Transmitters.objects.all()
# Filter by status (reliability)
status_filter = self.request.query_params.get('status', None) status_filter = self.request.query_params.get('status', None)
if status_filter: if status_filter:
queryset = queryset.filter(reliability=status_filter) queryset = queryset.filter(reliability=status_filter)
# Filter by madhhab
madhhab_filter = self.request.query_params.get('madhhab', None) madhhab_filter = self.request.query_params.get('madhhab', None)
if madhhab_filter: if madhhab_filter:
queryset = queryset.filter(madhhab=madhhab_filter) queryset = queryset.filter(madhhab=madhhab_filter)
# Filter by generation (narrator layer)
generation_filter = self.request.query_params.get('generation', None) generation_filter = self.request.query_params.get('generation', None)
if generation_filter: if generation_filter:
queryset = queryset.filter(generation=generation_filter) queryset = queryset.filter(generation=generation_filter)
return queryset return queryset

Loading…
Cancel
Save