diff --git a/api/app/domain/entities/lessons.py b/api/app/domain/entities/lessons.py index df77e43..fe5de9f 100644 --- a/api/app/domain/entities/lessons.py +++ b/api/app/domain/entities/lessons.py @@ -1,6 +1,8 @@ from typing import Optional from pydantic import BaseModel, Field +from app.domain.entities.users import UserRead + class LessonBase(BaseModel): title: str = Field(..., max_length=250) @@ -10,7 +12,7 @@ class LessonBase(BaseModel): class LessonCreate(LessonBase): - course_id: int + pass class LessonUpdate(BaseModel): @@ -25,5 +27,7 @@ class LessonRead(LessonBase): course_id: int creator_id: int + creator: UserRead + class Config: from_attributes = True diff --git a/api/app/domain/models/lessons.py b/api/app/domain/models/lessons.py index 2393bb1..d11ac9d 100644 --- a/api/app/domain/models/lessons.py +++ b/api/app/domain/models/lessons.py @@ -18,6 +18,6 @@ class Lesson(RootTable): creator_id: Mapped[int] = mapped_column(ForeignKey('users.id'), nullable=False) course: Mapped['Course'] = relationship('Course', back_populates='lessons') - creator: Mapped['User'] = relationship('User', back_populates='created_lessons') + creator: Mapped['User'] = relationship('User', back_populates='created_lessons', lazy='joined') files: Mapped[List['LessonFile']] = relationship('LessonFile', back_populates='lesson') diff --git a/api/app/infrastructure/dependencies.py b/api/app/infrastructure/dependencies.py index 601f9fe..9d02695 100644 --- a/api/app/infrastructure/dependencies.py +++ b/api/app/infrastructure/dependencies.py @@ -48,7 +48,6 @@ def require_admin(user: User = Depends(require_auth_user)): def require_teacher(user: User = Depends(require_auth_user)): - print(user.role.title, user.role.title not in [UserRoles.TEACHER, Settings().root_role_name], [UserRoles.TEACHER, Settings().root_role_name]) if user.role.title not in [UserRoles.TEACHER, Settings().root_role_name]: raise HTTPException(status_code=status.HTTP_403_FORBIDDEN, detail='Ошибка доступа') diff --git a/web/src/Components/Pages/CourseDetailPage/Components/CreateLessonModalForm/CreateLessonModalForm.jsx b/web/src/Components/Pages/CourseDetailPage/Components/CreateLessonModalForm/CreateLessonModalForm.jsx index d844707..d67f996 100644 --- a/web/src/Components/Pages/CourseDetailPage/Components/CreateLessonModalForm/CreateLessonModalForm.jsx +++ b/web/src/Components/Pages/CourseDetailPage/Components/CreateLessonModalForm/CreateLessonModalForm.jsx @@ -1,77 +1,68 @@ import useCreateLessonModalForm from "./useCreateLessonModalForm.js"; import {Button, Form, Input, InputNumber, Modal, Upload} from "antd"; import JoditEditor from "jodit-react"; -import {UploadOutlined} from "@ant-design/icons"; +const {TextArea} = Input; -const CreateLessonModalForm = () => { +const CreateLessonModalForm = ({courseId}) => { const { isModalOpen, handleCancel, + handleOk, form, joditConfig, editorRef, - } = useCreateLessonModalForm(); + isLoading, + } = useCreateLessonModalForm({courseId}); return ( + Отмена + , + , + ]} + destroyOnHidden > -
+ - + - - + + +