fix(api): include approver avatars in procurement approvals

This commit is contained in:
lizerk 2026-04-13 16:35:34 +03:00
parent 4611f8c2e6
commit 4ad946da8b
3 changed files with 5 additions and 1 deletions

View File

@ -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
)

View File

@ -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,

View File

@ -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'] == 'Финансовый контроль'