diff --git a/common/lib/xmodule/xmodule/x_module.py b/common/lib/xmodule/xmodule/x_module.py index 7fd0b04f94..996d31a83d 100644 --- a/common/lib/xmodule/xmodule/x_module.py +++ b/common/lib/xmodule/xmodule/x_module.py @@ -104,7 +104,8 @@ class HTMLSnippet(object): """ Return the html used to display this snippet """ - raise NotImplementedError("get_html() must be provided by specific modules") + raise NotImplementedError("get_html() must be provided by specific modules - not present in {0}" + .format(self.__class__)) class XModule(HTMLSnippet): diff --git a/common/lib/xmodule/xmodule/xml_module.py b/common/lib/xmodule/xmodule/xml_module.py index eeceeb3c1c..a7fc686e45 100644 --- a/common/lib/xmodule/xmodule/xml_module.py +++ b/common/lib/xmodule/xmodule/xml_module.py @@ -88,7 +88,7 @@ class XmlDescriptor(XModuleDescriptor): # The attributes will be removed from the definition xml passed # to definition_from_xml, and from the xml returned by definition_to_xml metadata_attributes = ('format', 'graceperiod', 'showanswer', 'rerandomize', - 'start', 'due', 'graded', 'name', 'slug') + 'start', 'due', 'graded', 'name', 'slug', 'hide_from_toc') # A dictionary mapping xml attribute names to functions of the value # that return the metadata key and value diff --git a/lms/djangoapps/courseware/module_render.py b/lms/djangoapps/courseware/module_render.py index 3f111c2953..01e46b8def 100644 --- a/lms/djangoapps/courseware/module_render.py +++ b/lms/djangoapps/courseware/module_render.py @@ -56,11 +56,13 @@ def toc_for_course(user, request, course, active_chapter, active_section): active = (chapter.metadata.get('display_name') == active_chapter and section.metadata.get('display_name') == active_section) + hide_from_toc = section.metadata.get('hide_from_toc', 'false').lower() == 'true' - sections.append({'name': section.metadata.get('display_name'), - 'format': section.metadata.get('format', ''), - 'due': section.metadata.get('due', ''), - 'active': active}) + if not hide_from_toc: + sections.append({'name': section.metadata.get('display_name'), + 'format': section.metadata.get('format', ''), + 'due': section.metadata.get('due', ''), + 'active': active}) chapters.append({'name': chapter.metadata.get('display_name'), 'sections': sections, diff --git a/lms/templates/accordion.html b/lms/templates/accordion.html index d9e6cee61e..defb424a29 100644 --- a/lms/templates/accordion.html +++ b/lms/templates/accordion.html @@ -3,8 +3,8 @@ <%def name="make_chapter(chapter)">

${chapter['name']}

- + % for chapter in toc: ${make_chapter(chapter)}