47 lines
1.4 KiB
Python
47 lines
1.4 KiB
Python
"""
|
|
Registers the "edX Notes" feature for the edX platform.
|
|
"""
|
|
from django.conf import settings
|
|
from django.utils.translation import ugettext_noop
|
|
|
|
from courseware.tabs import EnrolledTab
|
|
|
|
|
|
class EdxNotesTab(EnrolledTab):
|
|
"""
|
|
The representation of the edX Notes course tab type.
|
|
"""
|
|
|
|
type = "edxnotes"
|
|
title = ugettext_noop("Notes")
|
|
view_name = "edxnotes"
|
|
|
|
@classmethod
|
|
def is_enabled(cls, course, user=None):
|
|
"""Returns true if the edX Notes feature is enabled in the course.
|
|
|
|
Args:
|
|
course (CourseDescriptor): the course using the feature
|
|
settings (dict): a dict of configuration settings
|
|
user (User): the user interacting with the course
|
|
"""
|
|
if not super(EdxNotesTab, cls).is_enabled(course, user=user):
|
|
return False
|
|
|
|
if not settings.FEATURES.get("ENABLE_EDXNOTES") or is_harvard_notes_enabled(course):
|
|
return False
|
|
|
|
return course.edxnotes
|
|
|
|
|
|
def is_harvard_notes_enabled(course):
|
|
"""
|
|
Returns True if Harvard Annotation Tool is enabled for the course,
|
|
False otherwise.
|
|
|
|
Checks for 'textannotation', 'imageannotation', 'videoannotation' in the list
|
|
of advanced modules of the course.
|
|
"""
|
|
modules = set(['textannotation', 'imageannotation', 'videoannotation'])
|
|
return bool(modules.intersection(course.advanced_modules))
|