From b54ebb346027dbe46e17d606a9865f95cbf062a5 Mon Sep 17 00:00:00 2001 From: Chris Dodge Date: Fri, 15 Mar 2013 22:43:20 -0400 Subject: [PATCH] make discussion module use MetadataOnlyEditingDescriptor which will not present a code edit region and only display the metadata editor --- cms/templates/widgets/metadata-only-edit.html | 1 + common/lib/xmodule/xmodule/discussion_module.py | 3 ++- common/lib/xmodule/xmodule/editing_module.py | 10 ++++++++++ .../xmodule/js/src/raw/edit/metadata-only.coffee | 5 +++++ common/lib/xmodule/xmodule/raw_module.py | 2 +- 5 files changed, 19 insertions(+), 2 deletions(-) create mode 100644 cms/templates/widgets/metadata-only-edit.html create mode 100644 common/lib/xmodule/xmodule/js/src/raw/edit/metadata-only.coffee diff --git a/cms/templates/widgets/metadata-only-edit.html b/cms/templates/widgets/metadata-only-edit.html new file mode 100644 index 0000000000..a784f3798c --- /dev/null +++ b/cms/templates/widgets/metadata-only-edit.html @@ -0,0 +1 @@ +<%include file="metadata-edit.html" /> diff --git a/common/lib/xmodule/xmodule/discussion_module.py b/common/lib/xmodule/xmodule/discussion_module.py index 7725a88e77..a0a5207e16 100644 --- a/common/lib/xmodule/xmodule/discussion_module.py +++ b/common/lib/xmodule/xmodule/discussion_module.py @@ -3,6 +3,7 @@ from pkg_resources import resource_string, resource_listdir from xmodule.x_module import XModule from xmodule.raw_module import RawDescriptor +from xmodule.editing_module import MetadataOnlyEditingDescriptor from xblock.core import String, Scope @@ -28,7 +29,7 @@ class DiscussionModule(DiscussionFields, XModule): return self.system.render_template('discussion/_discussion_module.html', context) -class DiscussionDescriptor(DiscussionFields, RawDescriptor): +class DiscussionDescriptor(DiscussionFields, MetadataOnlyEditingDescriptor, RawDescriptor): module_class = DiscussionModule template_dir_name = "discussion" diff --git a/common/lib/xmodule/xmodule/editing_module.py b/common/lib/xmodule/xmodule/editing_module.py index b93727a96b..1f07861ae8 100644 --- a/common/lib/xmodule/xmodule/editing_module.py +++ b/common/lib/xmodule/xmodule/editing_module.py @@ -40,6 +40,16 @@ class XMLEditingDescriptor(EditingDescriptor): js = {'coffee': [resource_string(__name__, 'js/src/raw/edit/xml.coffee')]} js_module_name = "XMLEditingDescriptor" +class MetadataOnlyEditingDescriptor(EditingDescriptor): + """ + Module that provides a raw editing view of its data as XML. It does not perform + any validation of its definition + """ + + js = {'coffee': [resource_string(__name__, 'js/src/raw/edit/metadata-only.coffee')]} + js_module_name = "MetadataOnlyEditingDescriptor" + + mako_template = "widgets/metadata-only-edit.html" class JSONEditingDescriptor(EditingDescriptor): """ diff --git a/common/lib/xmodule/xmodule/js/src/raw/edit/metadata-only.coffee b/common/lib/xmodule/xmodule/js/src/raw/edit/metadata-only.coffee new file mode 100644 index 0000000000..8c9afe86aa --- /dev/null +++ b/common/lib/xmodule/xmodule/js/src/raw/edit/metadata-only.coffee @@ -0,0 +1,5 @@ +class @MetadataOnlyEditingDescriptor extends XModule.Descriptor + constructor: (@element) -> + + save: -> + data: null diff --git a/common/lib/xmodule/xmodule/raw_module.py b/common/lib/xmodule/xmodule/raw_module.py index 2c6e157018..6b5c2441be 100644 --- a/common/lib/xmodule/xmodule/raw_module.py +++ b/common/lib/xmodule/xmodule/raw_module.py @@ -1,5 +1,5 @@ from lxml import etree -from xmodule.editing_module import XMLEditingDescriptor +from xmodule.editing_module import XMLEditingDescriptor, MetadataOnlyEditingDescriptor from xmodule.xml_module import XmlDescriptor import logging import sys