From 091ddb39edacdb035e4d5bc968c3888648136947 Mon Sep 17 00:00:00 2001 From: xoliqberdiyev Date: Fri, 3 Apr 2026 16:28:29 +0500 Subject: [PATCH] feat: add new api --- core/apps/evaluation/views/document.py | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/core/apps/evaluation/views/document.py b/core/apps/evaluation/views/document.py index 28a4c88..977e835 100644 --- a/core/apps/evaluation/views/document.py +++ b/core/apps/evaluation/views/document.py @@ -1,10 +1,14 @@ +from django.shortcuts import get_object_or_404 from django_core.mixins import BaseViewSetMixin from drf_spectacular.utils import extend_schema +from rest_framework.exceptions import NotFound, PermissionDenied from rest_framework.permissions import AllowAny from rest_framework.viewsets import ReadOnlyModelViewSet, ModelViewSet from rest_framework.parsers import FormParser, MultiPartParser +from rest_framework.decorators import action +from rest_framework.response import Response -from core.apps.evaluation.models import DocumentModel, ValuationDocumentModel +from core.apps.evaluation.models import DocumentModel, ValuationDocumentModel, AutoEvaluationModel from core.apps.evaluation.serializers.document import ( CreateDocumentSerializer, CreateValuationdocumentSerializer, @@ -42,3 +46,20 @@ class DocumentView(BaseViewSetMixin, ModelViewSet): "retrieve": RetrieveDocumentSerializer, "create": CreateDocumentSerializer, } + + @extend_schema(summary="Auto evaluation documents.", description="get auto evaluation documents.") + @action(methods=["GET"], detail=False, url_path=r"auto_evaluation/(?P\d+)") + def auto_evaluation(self, request, auto_evaluation_id=None): + try: + auto_evaluation = get_object_or_404(AutoEvaluationModel, id=auto_evaluation_id) + documents = DocumentModel.objects.filter(auto_evaluation=auto_evaluation) + page = self.paginate_queryset(documents) + if page is not None: + serializer = ListDocumentSerializer(page, many=True) + return self.get_paginated_response(serializer.data) + serializer = ListDocumentSerializer(documents, many=True) + return Response(serializer.data) + except AutoEvaluationModel.DoesNotExist: + raise NotFound("Auto evaluation not found") + except Exception as e: + raise PermissionDenied(e)