diff --git a/backend/api/v1/procurement/serializers.py b/backend/api/v1/procurement/serializers.py index b8bd5e97..d38c145f 100644 --- a/backend/api/v1/procurement/serializers.py +++ b/backend/api/v1/procurement/serializers.py @@ -17,6 +17,7 @@ from procurement.models import ( ProcurementRequest, Supplier, ) +from ..employees.serializers import EmployeeBriefSerializer class ProcurementItemSerializer(serializers.ModelSerializer): @@ -62,6 +63,7 @@ class ProcurementItemCreateSerializer(serializers.ModelSerializer): class ApprovalSerializer(serializers.ModelSerializer): """Сериализатор для согласований.""" + approver = EmployeeBriefSerializer(read_only=True) approver_name = serializers.CharField( source="approver.get_full_name", read_only=True ) diff --git a/backend/api/v1/procurement/views.py b/backend/api/v1/procurement/views.py index 07f2a35e..1aaabb39 100644 --- a/backend/api/v1/procurement/views.py +++ b/backend/api/v1/procurement/views.py @@ -56,7 +56,7 @@ class ProcurementRequestViewSet(viewsets.ModelViewSet): queryset = ProcurementRequest.objects.select_related( "department", "requestor", "executor" - ).prefetch_related("items", "approvals") + ).prefetch_related("items", "approvals__approver") filter_backends = [ DjangoFilterBackend, filters.SearchFilter, diff --git a/backend/tests/api/v1/procurement/test_procurement_requests.py b/backend/tests/api/v1/procurement/test_procurement_requests.py index 3d47a458..fa478b07 100644 --- a/backend/tests/api/v1/procurement/test_procurement_requests.py +++ b/backend/tests/api/v1/procurement/test_procurement_requests.py @@ -993,6 +993,8 @@ class TestProcurementRequestWorkflow: assert response.status_code == status.HTTP_200_OK approvals = sorted(response.data['approvals'], key=lambda item: item['priority']) + assert isinstance(approvals[0]["approver"], dict) + assert "avatar" in approvals[0]["approver"] assert approvals[1]['step_name'] == 'Финансовый контроль' assert approvals[1]['step_label'] == 'Финансовый контроль'