Commit 8a4503b3 by David Baumgold Committed by Sarina Canelake

Display Scope.content fields in Studio editor

But mark `data` as non-editable metadata, so that it doesn't appear
parent fe3326d8
......@@ -200,6 +200,12 @@ class CapaFields(object):
scope=Scope.settings
)
@property
def non_editable_metadata_fields(self):
non_editable_fields = super(CapaFields, self).non_editable_metadata_fields
non_editable_fields.append(CapaFields.data)
return non_editable_fields
class CapaMixin(CapaFields):
"""
......
......@@ -41,6 +41,12 @@ class DiscussionFields(object):
)
sort_key = String(scope=Scope.settings)
@property
def non_editable_metadata_fields(self):
non_editable_fields = super(DiscussionFields, self).non_editable_metadata_fields
non_editable_fields.append(DiscussionFields.data)
return non_editable_fields
class DiscussionModule(DiscussionFields, XModule):
js = {
......
......@@ -54,6 +54,12 @@ class HtmlFields(object):
scope=Scope.settings
)
@property
def non_editable_metadata_fields(self):
non_editable_fields = super(HtmlFields, self).non_editable_metadata_fields
non_editable_fields.append(HtmlFields.data)
return non_editable_fields
class HtmlModuleMixin(HtmlFields, XModule):
"""
......@@ -299,6 +305,12 @@ class AboutFields(object):
scope=Scope.content
)
@property
def non_editable_metadata_fields(self):
non_editable_fields = super(AboutFields, self).non_editable_metadata_fields
non_editable_fields.append(AboutFields.data)
return non_editable_fields
@XBlock.tag("detached")
class AboutModule(AboutFields, HtmlModuleMixin):
......@@ -336,6 +348,12 @@ class StaticTabFields(object):
help=_("HTML for the additional pages")
)
@property
def non_editable_metadata_fields(self):
non_editable_fields = super(StaticTabFields, self).non_editable_metadata_fields
non_editable_fields.append(StaticTabFields.data)
return non_editable_fields
@XBlock.tag("detached")
class StaticTabModule(StaticTabFields, HtmlModuleMixin):
......@@ -370,6 +388,12 @@ class CourseInfoFields(object):
scope=Scope.content
)
@property
def non_editable_metadata_fields(self):
non_editable_fields = super(CourseInfoFields, self).non_editable_metadata_fields
non_editable_fields.append(CourseInfoFields.data)
return non_editable_fields
@XBlock.tag("detached")
class CourseInfoModule(CourseInfoFields, HtmlModuleMixin):
......
......@@ -15,6 +15,12 @@ class RawDescriptor(XmlDescriptor, XMLEditingDescriptor):
"""
data = String(help="XML data for the module", default="", scope=Scope.content)
@property
def non_editable_metadata_fields(self):
non_editable_fields = super(RawDescriptor, self).non_editable_metadata_fields
non_editable_fields.append(RawDescriptor.data)
return non_editable_fields
@classmethod
def definition_from_xml(cls, xml_object, system):
return {'data': etree.tostring(xml_object, pretty_print=True, encoding='unicode')}, []
......@@ -44,6 +50,12 @@ class EmptyDataRawDescriptor(XmlDescriptor, XMLEditingDescriptor):
"""
data = String(default='', scope=Scope.content)
@property
def non_editable_metadata_fields(self):
non_editable_fields = super(EmptyDataRawDescriptor, self).non_editable_metadata_fields
non_editable_fields.append(EmptyDataRawDescriptor.data)
return non_editable_fields
@classmethod
def definition_from_xml(cls, xml_object, system):
if len(xml_object) == 0 and len(xml_object.items()) == 0:
......
......@@ -620,8 +620,9 @@ class XModuleMixin(XModuleFields, XBlockMixin):
fields = getattr(self, 'unmixed_class', self.__class__).fields
for field in fields.values():
if field.scope != Scope.settings or field in self.non_editable_metadata_fields:
if field in self.non_editable_metadata_fields:
continue
if field.scope not in (Scope.settings, Scope.content):
continue
metadata_fields[field.name] = self._create_metadata_editor_info(field)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment