from django.contrib.auth import get_user_model from rest_framework import serializers from tasks.access import user_can_access_task_board from tasks.models import TaskColumn User = get_user_model() DEFAULT_COLUMNS = [ ("Новые", "#38bdf8", False), ("В работе", "#f59e0b", False), ("На проверке", "#8b5cf6", False), ("Готово", "#22c55e", True), ] def create_default_columns(board): if board.columns.exists(): return TaskColumn.objects.bulk_create( [ TaskColumn( board=board, name=name, color=color, is_done=is_done, position=index * 1000, ) for index, (name, color, is_done) in enumerate(DEFAULT_COLUMNS) ] ) def validate_board_access(serializer, board): request = serializer.context.get("request") user = getattr(request, "user", None) if not user_can_access_task_board(user, board): raise serializers.ValidationError("У вас нет доступа к этой доске.") return board