diff --git a/src/app/(student)/courses/[slug]/lessons/[lessonId]/page.tsx b/src/app/(student)/courses/[slug]/lessons/[lessonId]/page.tsx index 10f7132..9af3191 100644 --- a/src/app/(student)/courses/[slug]/lessons/[lessonId]/page.tsx +++ b/src/app/(student)/courses/[slug]/lessons/[lessonId]/page.tsx @@ -179,9 +179,12 @@ export default async function LessonPage({ params }: Props) {
)} - {!isAdmin && ( + {!isAdmin && !lesson.homework && ( )} + {!isAdmin && lesson.homework && isCompleted && ( + + )} {nextLesson ? ( { + await tx.homeworkFeedback.create({ + data: { + submissionId, + curatorId: session.user.id, + text: data.text, + files: data.files ?? [], + audioUrl: data.audioUrl ?? null, + }, + }); + await tx.homeworkSubmission.update({ + where: { id: submissionId }, + data: { status, statusAt: new Date() }, + }); + if (status === "APPROVED") { + await tx.lessonProgress.upsert({ + where: { + userId_lessonId: { + userId: submission.user.id, + lessonId: submission.homework.lesson.id, + }, + }, + create: { + userId: submission.user.id, + lessonId: submission.homework.lesson.id, + }, + update: {}, + }); + } + }); + + const { lesson } = submission.homework; + const lessonUrl = `${process.env.BETTER_AUTH_URL ?? "https://school.second-brain.ru"}/courses/${lesson.module.course.slug}/lessons/${lesson.id}`; + await sendFeedbackReceivedEmail( + submission.user.email, + submission.user.name, + lesson.title, + data.text, + lessonUrl + ); revalidatePath("/curator/homework"); revalidatePath(`/curator/homework/${submissionId}`); + revalidatePath(`/courses/${lesson.module.course.slug}/lessons/${lesson.id}`); + revalidatePath(`/courses/${lesson.module.course.slug}`); + revalidatePath("/dashboard"); } export async function setReviewing(submissionId: string) { diff --git a/src/components/student/lesson-complete-button.tsx b/src/components/student/lesson-complete-button.tsx index 5c820c0..0280e47 100644 --- a/src/components/student/lesson-complete-button.tsx +++ b/src/components/student/lesson-complete-button.tsx @@ -8,13 +8,24 @@ export function LessonCompleteButton({ lessonId, slug, isCompleted, + readOnly = false, }: { lessonId: string; slug: string; isCompleted: boolean; + readOnly?: boolean; }) { const [pending, startTransition] = useTransition(); + if (readOnly) { + return ( +
+ + Пройдено +
+ ); + } + return (