diff --git a/backend/procurement/views.py b/backend/procurement/views.py index dd79f69d..884e3823 100644 --- a/backend/procurement/views.py +++ b/backend/procurement/views.py @@ -86,10 +86,12 @@ class ProcurementRequestViewSet(viewsets.ModelViewSet): if user.is_superuser or user.is_staff: return queryset - # Показываем: свои заявки + заявки своего отдела + # Показываем: свои заявки + заявки отдела + где я approver return queryset.filter( - Q(requestor=user) | Q(department__in=user.departments.all()) - ) + Q(requestor=user) | + Q(department__in=user.departments.all()) | + Q(approvals__approver=user) + ).distinct() @action(detail=True, methods=['post']) def submit(self, request, pk=None): diff --git a/backend/tests/procurement/test_workflow.py b/backend/tests/procurement/test_workflow.py index a8255afa..97d5081b 100644 --- a/backend/tests/procurement/test_workflow.py +++ b/backend/tests/procurement/test_workflow.py @@ -373,6 +373,9 @@ class TestProcurementWorkflow: f'/api/procurement/requests/{request.id}/approve/', {'comment': 'От финансов одобряю'}, ) + print(f"DEBUG 2: Response status: {response.status_code}") + if response.status_code != status.HTTP_200_OK: + print(f"DEBUG 2: Response data: {response.data}") assert response.status_code == status.HTTP_200_OK request.refresh_from_db() @@ -405,8 +408,10 @@ class TestProcurementWorkflow: f'/api/procurement/requests/{request.id}/approve/' ) - # Должна быть ошибка прав доступа + # Должна быть ошибка - 404 или 403/400 + # 404 если заявка не в queryset, 403/400 если нет прав assert response.status_code in [ + status.HTTP_404_NOT_FOUND, status.HTTP_403_FORBIDDEN, status.HTTP_400_BAD_REQUEST, ]