diff --git a/apps/hadis/urls.py b/apps/hadis/urls.py index a426225..10daa28 100644 --- a/apps/hadis/urls.py +++ b/apps/hadis/urls.py @@ -7,29 +7,39 @@ from .views.info import HadisInfoView urlpatterns = [ + # Most specific first (with parameters) path('collections/', HadisCollectionListView.as_view(), name='hadis-collection-list'), path('sync/sects/', HadisCategorySectListView.as_view(), name='hadis-sect-list'), path('sync/categories/tree/', HadisCategoryTreeView.as_view(), name='hadis-category-tree'), - path('categories/tree/', HadisCategoryTreeNormalView.as_view(), name='hadis-category-tree-normal'), path('sync/hadis/', HadisSyncView.as_view(), name='hadis-sync'), path('sync/narrators/', TransmitterSyncView.as_view(), name='transmitter-sync'), path('sync/references/', BookReferenceSyncView.as_view(), name='reference-sync'), path('info/', HadisInfoView.as_view(), name='hadis-info'), + + # Category paths (more specific first) + path('categories/tree/', HadisCategoryTreeNormalView.as_view(), name='hadis-category-tree-normal'), + path('categories////', HadisCategorySelectBySectSourceView.as_view(), name='categories-tree-by-sect-source'), + path('categories///', HadisCategorySelectBySectView.as_view(), name='categories-tree-by-sect'), + path('categories//', CategoriesBySectView.as_view(), name='categories-by-sect'), + path('categories/', CategoriesView.as_view(), name='categories'), # ← Least specific LAST + + # Hadis paths path('category//', HadisListView.as_view(), name='hadis-list'), - path('arguments/',HadisMainListView.as_view(), name='hadis-main-list'), - path('/', HadisBasicView.as_view(), name='hadis-basic'), + path('arguments/', HadisMainListView.as_view(), name='hadis-main-list'), + + # Hadis detail paths (with slug, more specific) path('/detail/', HadisDetailView.as_view(), name='hadis-detail'), path('/transmitters/', HadisTransmittersView.as_view(), name='hadis-transmitters'), path('/corrections/', HadisCorrectionsView.as_view(), name='hadis-corrections'), - path('categories////', HadisCategorySelectBySectSourceView.as_view(), name='categories-tree-by-sect-source'), - path('categories///', HadisCategorySelectBySectView.as_view(), name='categories-tree-by-sect'), - path('categories//', CategoriesBySectView.as_view(), name='categories-by-sect'), - path('categories/', CategoriesView.as_view(), name='categories'), - path('narrators/',TransmitterView.as_view(), name='narrators'), - path('narrators/',TransmitterDetailView.as_view(), name='narrator-detail'), - path('narrators//opinions',TransmitterOpinionView.as_view(), name='narrator-opinions'), - path('narrators//original_texts',TransmitterOriginalTextView.as_view(), name='narrator-original-texts'), - path('references/',BookReferencesView.as_view(), name='references'), - path('references/',BookDetailView.as_view(), name='reference-detail'), - path('references/attributes/',BookAttributeView.as_view(), name='book-attributes'), -] \ No newline at end of file + path('/', HadisBasicView.as_view(), name='hadis-basic'), # ← Least specific LAST + + # Narrator paths + path('narrators//opinions', TransmitterOpinionView.as_view(), name='narrator-opinions'), + path('narrators//original_texts', TransmitterOriginalTextView.as_view(), name='narrator-original-texts'), + path('narrators/', TransmitterDetailView.as_view(), name='narrator-detail'), + path('narrators/', TransmitterView.as_view(), name='narrators'), + + # Reference paths + path('references/', BookDetailView.as_view(), name='reference-detail'), + path('references/', BookReferencesView.as_view(), name='references'), +] diff --git a/apps/hadis/views/category.py b/apps/hadis/views/category.py index 23e92d9..df37c9b 100644 --- a/apps/hadis/views/category.py +++ b/apps/hadis/views/category.py @@ -4,7 +4,7 @@ from django.shortcuts import get_object_or_404 from utils.pagination import NoPagination from django.db.models import Q -from ..models import HadisSect, HadisCategory +from ..models import HadisSect, HadisCategory,Hadis from ..serializers import ( HadisCategorySectListSerializer, HadisCategoryTreeSerializer,