diff --git a/common/lib/xmodule/xmodule/course_module.py b/common/lib/xmodule/xmodule/course_module.py index 6c8c20014c..681c231c43 100644 --- a/common/lib/xmodule/xmodule/course_module.py +++ b/common/lib/xmodule/xmodule/course_module.py @@ -61,7 +61,7 @@ class CourseDescriptor(SequenceDescriptor): def __init__(self, system, definition=None, **kwargs): super(CourseDescriptor, self).__init__(system, definition, **kwargs) self.textbooks = self.definition['data']['textbooks'] - + self.wiki_slug = self.definition['data']['wiki_slug'] or self.location.course msg = None @@ -101,19 +101,19 @@ class CourseDescriptor(SequenceDescriptor): for textbook in xml_object.findall("textbook"): textbooks.append(cls.Textbook.from_xml_object(textbook)) xml_object.remove(textbook) - + #Load the wiki tag if it exists wiki_slug = None wiki_tag = xml_object.find("wiki") if wiki_tag is not None: wiki_slug = wiki_tag.attrib.get("slug", default=None) xml_object.remove(wiki_tag) - + definition = super(CourseDescriptor, cls).definition_from_xml(xml_object, system) - + definition.setdefault('data', {})['textbooks'] = textbooks definition['data']['wiki_slug'] = wiki_slug - + return definition def has_started(self): @@ -219,7 +219,7 @@ class CourseDescriptor(SequenceDescriptor): # there are courses that change the number for different runs. This allows # courses to share the same css_class across runs even if they have # different numbers. - # + # # TODO get rid of this as soon as possible or potentially build in a robust # way to add in course-specific styling. There needs to be a discussion # about the right way to do this, but arjun will address this ASAP. Also @@ -234,13 +234,20 @@ class CourseDescriptor(SequenceDescriptor): @property def discussion_link(self): - """TODO: This is a quick kludge to allow CS50 (and other courses) to - specify their own discussion forums as external links by specifying a + """TODO: This is a quick kludge to allow CS50 (and other courses) to + specify their own discussion forums as external links by specifying a "discussion_link" in their policy JSON file. This should later get - folded in with Syllabus, Course Info, and additional Custom tabs in a + folded in with Syllabus, Course Info, and additional Custom tabs in a more sensible framework later.""" return self.metadata.get('discussion_link', None) + @property + def hide_progress_tab(self): + """TODO: same as above, intended to let internal CS50 hide the progress tab + until we get grade integration set up.""" + # Explicit comparison to True because we always want to return a bool. + return self.metadata.get('hide_progress_tab') == True + @property def title(self): return self.display_name diff --git a/common/lib/xmodule/xmodule/xml_module.py b/common/lib/xmodule/xmodule/xml_module.py index daeb5dde9b..070342f453 100644 --- a/common/lib/xmodule/xmodule/xml_module.py +++ b/common/lib/xmodule/xmodule/xml_module.py @@ -103,6 +103,7 @@ class XmlDescriptor(XModuleDescriptor): xml_attribute_map = { # type conversion: want True/False in python, "true"/"false" in xml 'graded': bool_map, + 'hide_progress_tab': bool_map, } diff --git a/lms/templates/courseware/course_navigation.html b/lms/templates/courseware/course_navigation.html index f7dac9012e..85666bd3d1 100644 --- a/lms/templates/courseware/course_navigation.html +++ b/lms/templates/courseware/course_navigation.html @@ -37,7 +37,7 @@ def url_class(url): % elif settings.MITX_FEATURES.get('ENABLE_DISCUSSION_SERVICE'):