diff --git a/access/serializers.py b/access/serializers.py index 425ffd5..e59a1c1 100644 --- a/access/serializers.py +++ b/access/serializers.py @@ -79,7 +79,8 @@ class UserSearchSerializer(serializers.ModelSerializer): class Meta: model = get_user_model() - fields = ('photo', 'out_key', 'email', 'first_name', 'last_name', 'phone', 'pay', 'last_request') + fields = ('photo', 'out_key', 'email', 'first_name', + 'last_name', 'phone', 'pay', 'last_request') @staticmethod def get_phone(self): @@ -91,7 +92,11 @@ class UserSearchSerializer(serializers.ModelSerializer): @staticmethod def get_photo(self): - return self.account.photo.url + try: + url = self.account.photo.url + except ValueError: + url = None + return url @staticmethod def get_last_request(self): diff --git a/courses/api.py b/courses/api.py index af81ce0..2b4e99a 100644 --- a/courses/api.py +++ b/courses/api.py @@ -14,7 +14,6 @@ class InApiTeacher: course = Course.objects.get(slug=slug) course.teacher_tokens.remove(token) course.save() - return None @staticmethod def get_token_list(slug: str) -> list: @@ -26,4 +25,21 @@ 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()] \ No newline at end of file + 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 = None + for lesson in course.get_lesson_list(): + if not lesson.token in lesson_list: + acc = (lesson.token, lesson.is_hm) + break + + return acc \ No newline at end of file diff --git a/courses/models.py b/courses/models.py index 700c853..c090554 100755 --- a/courses/models.py +++ b/courses/models.py @@ -91,6 +91,12 @@ class Course(models.Model): 'task_count': sum([topic.lesson_set.count() for topic in self.topic_set.all()]) } + def get_lesson_list(self) -> list: + lesson_list = [] + for topic in self.topic_set.all(): + lesson_list += list(topic.lesson_set.all()) + return lesson_list + objects = CourseManager() class Meta: diff --git a/progress/serializers.py b/progress/serializers.py index 09d4abd..00a32a9 100644 --- a/progress/serializers.py +++ b/progress/serializers.py @@ -41,4 +41,4 @@ class ProgressLessonSerializer(serializers.ModelSerializer): @staticmethod def get_teacher(self): - return self.teacher.get_full_name() \ No newline at end of file + return self.checker.get_full_name() \ No newline at end of file