From e33d50654d32b1b6b71eb034d8005837bc62a8e3 Mon Sep 17 00:00:00 2001 From: mohsentaba Date: Sat, 4 Jul 2026 13:42:26 +0330 Subject: [PATCH] hadith corrections and interpretations reorder logic updated --- apps/hadis/views_admin.py | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/apps/hadis/views_admin.py b/apps/hadis/views_admin.py index 26c6979..336e730 100644 --- a/apps/hadis/views_admin.py +++ b/apps/hadis/views_admin.py @@ -312,6 +312,7 @@ class AdminHadisCorrectionViewSet(ModelViewSet): permission_classes = [IsAuthenticated, IsSuperAdmin] authentication_classes = [TokenAuthentication] parser_classes = (JSONParser, MultiPartParser, FormParser) + pagination_class = None def get_queryset(self): queryset = HadisCorrection.objects.all() @@ -320,6 +321,14 @@ class AdminHadisCorrectionViewSet(ModelViewSet): queryset = queryset.filter(hadis_id=hadis_id) return queryset.order_by("priority", "created_at") + def perform_create(self, serializer): + priority = self.request.data.get("priority", 1) + hadis_id = self.request.data.get("hadis") + if hadis_id: + from django.db.models import F + HadisCorrection.objects.filter(hadis_id=hadis_id, priority__gte=priority).update(priority=F("priority") + 1) + serializer.save() + @action(detail=False, methods=["post"]) def reorder(self, request): correction_ids = request.data.get("correction_ids", []) @@ -337,6 +346,7 @@ class AdminHadisInterpretationViewSet(ModelViewSet): permission_classes = [IsAuthenticated, IsSuperAdmin] authentication_classes = [TokenAuthentication] parser_classes = (JSONParser, MultiPartParser, FormParser) + pagination_class = None def get_queryset(self): queryset = HadisInterpretation.objects.all() @@ -345,6 +355,14 @@ class AdminHadisInterpretationViewSet(ModelViewSet): queryset = queryset.filter(category_id=category_id) return queryset.order_by("priority", "created_at") + def perform_create(self, serializer): + priority = self.request.data.get("priority", 1) + category_id = self.request.data.get("category") + if category_id: + from django.db.models import F + HadisInterpretation.objects.filter(category_id=category_id, priority__gte=priority).update(priority=F("priority") + 1) + serializer.save() + @action(detail=False, methods=["post"]) def reorder(self, request): interpretation_ids = request.data.get("interpretation_ids", [])