コード例 #1
0
class CourseViewHelper(object):
    '''
    The CourseViewHelper provides methods for retrieving the Course and CourseModule
    models that are associated with an LTI launch. It uses the CourseService to
    interact with the Media Management API.
    '''
    def __init__(self, request):
        self.request = request
        self.lti_launch = LTILaunch(request)
        self.course_service = CourseService.from_request(request)
        self.course_object = None

    def get_course_object(self):
        if self.course_object is not None:
            return self.course_object
        self.course_object = self.course_service.load_course(
            raise_exception=True)
        return self.course_object

    def get_course_module(self):
        filters = {
            "course": self.get_course_object(),
            "lti_resource_link_id": self.launch_resource_link_id(),
        }
        if CourseModule.objects.filter(**filters).exists():
            return CourseModule.objects.filter(**filters)[0]
        return None

    def launch_resource_link_id(self):
        return self.lti_launch.get_resource_link_id()

    def launch_perms(self):
        return self.lti_launch.get_perms()

    def api_access_token(self):
        course_object = self.get_course_object()
        return self.course_service.obtain_token(
            api_course_id=course_object.api_course_id)
コード例 #2
0
 def __init__(self, request):
     self.request = request
     self.lti_launch = LTILaunch(request)
コード例 #3
0
 def __init__(self, request):
     self.request = request
     self.lti_launch = LTILaunch(request)
     self.course_service = CourseService(self.lti_launch)
     self.course_object = None
コード例 #4
0
 def func_wrapper(request, *args, **kwargs):
     LTILaunch(request).require_perm(permission)
     return func(request, *args, **kwargs)
コード例 #5
0
 def from_request(cls, request):
     return cls(LTILaunch(request))
コード例 #6
0
 def from_request(cls, request):
     lti_launch = LTILaunch(request)
     return cls(lti_launch)