From 6e970741d80c177103b64638fa44763a1818a409 Mon Sep 17 00:00:00 2001 From: lizerk Date: Wed, 18 Mar 2026 17:29:23 +0300 Subject: [PATCH] =?UTF-8?q?refactor(departments):=20=D1=83=D0=B4=D0=B0?= =?UTF-8?q?=D0=BB=D0=B8=D1=82=D1=8C=20=D0=B8=D0=B7=D0=B1=D1=8B=D1=82=D0=BE?= =?UTF-8?q?=D1=87=D0=BD=D1=8B=D0=B5=20@transaction.atomic=20=D0=B4=D0=B5?= =?UTF-8?q?=D0=BA=D0=BE=D1=80=D0=B0=D1=82=D0=BE=D1=80=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Удалены все @transaction.atomic из actions (set_head, set_member_role, add_member, remove_member) - Удален импорт transaction - Одиночные операции БД уже атомарны по умолчанию - Django request уже в транзакции если настроен ATOMIC_REQUESTS -5 строк (485 → 480) --- backend/api/v1/employees/views/departments.py | 5 ----- 1 file changed, 5 deletions(-) diff --git a/backend/api/v1/employees/views/departments.py b/backend/api/v1/employees/views/departments.py index 852b8f1f..ed4a2a26 100644 --- a/backend/api/v1/employees/views/departments.py +++ b/backend/api/v1/employees/views/departments.py @@ -6,7 +6,6 @@ import logging import traceback from typing import Any, Dict -from django.db import transaction from django.db.models import (Case, Count, Exists, F, IntegerField, OuterRef, Q, Subquery, Value, When) from django.db.models.functions import Coalesce @@ -245,7 +244,6 @@ class DepartmentViewSet(viewsets.ModelViewSet): # -------- actions -------- @action(detail=True, methods=["post"]) - @transaction.atomic def set_head(self, request, pk: str | None = None) -> Response: """Назначение/снятие руководителя отдела.""" dept = self.get_object() @@ -262,7 +260,6 @@ class DepartmentViewSet(viewsets.ModelViewSet): return Response(self.get_serializer(result).data, status=status.HTTP_200_OK) @action(detail=True, methods=["post"]) - @transaction.atomic def set_member_role(self, request, pk=None): """ Назначает/снимает РОЛЬ сотруднику в контексте отдела. @@ -404,7 +401,6 @@ class DepartmentViewSet(viewsets.ModelViewSet): return Response(payload, status=200) @action(detail=True, methods=["post"], url_path="add_member") - @transaction.atomic def add_member(self, request, pk: int | None = None): """Добавляет сотрудника в отдел.""" dept = self.get_object() @@ -433,7 +429,6 @@ class DepartmentViewSet(viewsets.ModelViewSet): ) @action(detail=True, methods=["post"], url_path="remove_member") - @transaction.atomic def remove_member(self, request, pk: int | None = None): """Удаляет члена отдела.""" dept = self.get_object()