diff --git a/common/lib/xmodule/x_module.py b/common/lib/xmodule/x_module.py index a2019cd5bf10d70bde54591c720a6eed42ab68b1..83671207484d28605f1826ec643b6b1572db6148 100644 --- a/common/lib/xmodule/x_module.py +++ b/common/lib/xmodule/x_module.py @@ -253,6 +253,7 @@ class XModuleDescriptor(Plugin): self.shared_state_key = kwargs.get('shared_state_key') self._child_instances = None + self._inherited_metadata = set() def inherit_metadata(self, metadata): """ @@ -264,6 +265,7 @@ class XModuleDescriptor(Plugin): # in self.inheritable_metadata and aren't already set in metadata for attr in self.inheritable_metadata: if attr not in self.metadata and attr in metadata: + self._inherited_metadata.add(attr) self.metadata[attr] = metadata[attr] def get_children(self): diff --git a/common/lib/xmodule/xml_module.py b/common/lib/xmodule/xml_module.py index fa275c67d3107eeb62fbc8cbab25c0444596b5c4..6639a77d3e3dd5f090aa1744f901f35a3fc03db2 100644 --- a/common/lib/xmodule/xml_module.py +++ b/common/lib/xmodule/xml_module.py @@ -68,10 +68,10 @@ class XmlDescriptor(XModuleDescriptor): xml_object.tag = self.type for attr in ('format', 'graceperiod', 'showanswer', 'rerandomize', 'due'): - if attr in self.metadata: + if attr in self.metadata and attr not in self._inherited_metadata: xml_object.set(attr, self.metadata[attr]) - if 'graded' in self.metadata: + if 'graded' in self.metadata and 'graded' not in self._inherited_metadata: xml_object.set('graded', str(self.metadata['graded']).lower()) if 'display_name' in self.metadata: