def get_queryset(self): user = self.request.user self.course = Course.get_or_fail(self.kwargs['course_id'], user=user, check_student=False, only_id=False) self.users = self.course.students.select_related('profile').order_by('last_name', 'first_name', 'profile__middle_name') return self.users
def finish_lecture_view(request, course_id, lecture_id): course = Course.get_or_fail(course_id, user=request.user, queryset=Course.objects.only('id')) lecture = get_object_or_404(Lecture.objects.only('title'), id=lecture_id) if not lecture.in_course(course): raise Http404('Запрошенная лекция отсутствует в составе курса') LectureResult.pass_lecture(lecture, course, request.user) return render(request, 'lecture_finished.html', {'course': course, 'lecture': lecture})
def dispatch(self, *args, **kwargs): request = args[0] user = request.user self.is_self_mon = user.id == int(kwargs['user_id']) if self.is_self_mon: self.user_mon = user else: self.user_mon = get_object_or_404(User, id=kwargs['user_id']) self.course = Course.get_or_fail(kwargs['course_id'], user=self.user_mon, check_manager=False, only_id=False) if not user.is_superuser and not self.is_self_mon and not self.course.has_course_manager(user): raise Http403('Вы не можете просматривать результаты по курсам, управляющими которых не являетесь') return super(UserResultsView, self).dispatch(*args, **kwargs)
def dispatch(self, *args, **kwargs): request = args[0] self.request = request self.user = request.user self.course = Course.get_or_fail(kwargs['course_id'], user=self.user) to_start = kwargs.has_key('start') and kwargs['start'] to_finish = kwargs.has_key('finish') and kwargs['finish'] if to_start: self.fetch_test(test_id=kwargs['test_id']) return self.start_test() else: self.fetch_test(scheme=kwargs['scheme'], script_id=kwargs['script_id']) if to_finish: return self.finish_test() else: self.prepare_frame() return super(TestView, self).dispatch(*args, **kwargs)
def get_object(self): self.course = Course.get_or_fail(self.kwargs['course_id'], user=self.request.user) if self.kwargs['overview']: self.lecture = get_object_or_404(Lecture, id=self.kwargs['lecture_id']) self.pages = self.lecture.pages.only('title') for page in self.pages: page.num += 1 else: self.lecture = get_object_or_404(Lecture.objects.only('title'), id=self.kwargs['lecture_id']) if not self.lecture.in_course(self.course): raise Http404('Запрошенная лекция отсутствует в составе курса') paginator = Paginator(self.lecture.pages.all(), 1) self.paginator = paginator cur_page_num = self.kwargs['page'] try: self.page = paginator.page(cur_page_num) except InvalidPage: raise Http404('Запрошенный номер страницы отсутствует') return self.lecture