""" Registers the CCX feature for the edX platform. """ from django.conf import settings from django.utils.translation import ugettext_noop from courseware.access import has_access from student.roles import CourseCcxCoachRole from xmodule.tabs import CourseTab class CcxCourseTab(CourseTab): """ The representation of the CCX course tab """ type = "ccx_coach" title = ugettext_noop("CCX Coach") view_name = "ccx_coach_dashboard" is_dynamic = True # The CCX view is dynamically added to the set of tabs when it is enabled @classmethod def is_enabled(cls, course, user=None): """ Returns true if CCX has been enabled and the specified user is a coach """ if not settings.FEATURES.get('CUSTOM_COURSES_EDX', False) or not course.enable_ccx: # If ccx is not enable do not show ccx coach tab. return False is_staff_or_instructor = has_access(user, 'staff', course) or has_access(user, 'instructor', course) if hasattr(course.id, 'ccx') and is_staff_or_instructor: # if user is staff or instructor then he can always see ccx coach tab. return True # check if user has coach access. role = CourseCcxCoachRole(course.id) return role.has_user(user)