from vbv_lernwelt.course.models import CourseSession, CourseSessionUser from vbv_lernwelt.learnpath.models import LearningSequence def has_course_access_by_page_request(request, obj): return has_course_access(request.user, obj.specific.get_course()) def has_course_access(user, course): if user.is_superuser: return True if CourseSessionUser.objects.filter( course_session__course_id=course.id, user=user ).exists(): return True return False def course_sessions_for_user_qs(user): if user.is_superuser: return CourseSession.objects.all() course_sessions = CourseSession.objects.filter(coursesessionuser__user=user) return course_sessions def is_circle_expert(user, learning_sequence, course) -> bool: if user.is_superuser: return True try: learning_sequence = LearningSequence.objects.get(id=learning_sequence) except LearningSequence.DoesNotExist: return False circle_id = learning_sequence.get_parent().circle.id try: CourseSessionUser.objects.get( course_session__id=course, user_id=user.id, role=CourseSessionUser.Role.EXPERT, expert__id=circle_id, ) except CourseSessionUser.DoesNotExist: return False return True