from courses.models import Course class InApiTeacher: @staticmethod def add_teacher(slug: str, token: str) -> Course: course = Course.objects.get(slug=slug) course.teacher_tokens.append(token) course.save() return course @staticmethod def delete_teacher(slug: str, token: str) -> None: course = Course.objects.get(slug=slug) course.teacher_tokens.remove(token) course.save() @staticmethod def get_token_list(slug: str) -> list: return Course.objects.get(slug=slug).teacher_tokens class CourseProgressApi: @staticmethod def get_topic_lesson(course_token: str): course = Course.objects.get(token=course_token) return [[lesson.token for lesson in topic.lesson_set.all()] for topic in course.topic_set.all()] @staticmethod def get_next(course_token: str, lesson_list: list): """ :param course_token: :param lesson_list: :return: следующий урок для прохождения и требует ли он валидации """ course = Course.objects.get(token=course_token) acc = [] include_lesson = True for lesson in course.get_lesson_list(): if not lesson.token in lesson_list and include_lesson: acc.append((lesson.token, lesson.is_hm)) else: include_lesson = True return acc