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)
def __init__(self, request): self.request = request self.lti_launch = LTILaunch(request)
def __init__(self, request): self.request = request self.lti_launch = LTILaunch(request) self.course_service = CourseService(self.lti_launch) self.course_object = None
def func_wrapper(request, *args, **kwargs): LTILaunch(request).require_perm(permission) return func(request, *args, **kwargs)
def from_request(cls, request): return cls(LTILaunch(request))
def from_request(cls, request): lti_launch = LTILaunch(request) return cls(lti_launch)