コード例 #1
0
ファイル: views.py プロジェクト: alexmerser/simplelms
 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
コード例 #2
0
ファイル: views.py プロジェクト: alexmerser/simplelms
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})
コード例 #3
0
ファイル: views.py プロジェクト: alexmerser/simplelms
    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)
コード例 #4
0
ファイル: views.py プロジェクト: alexmerser/simplelms
 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)
コード例 #5
0
ファイル: views.py プロジェクト: alexmerser/simplelms
 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