Commit dc2dbb34 by Calen Pennington

Do metadata name translation in json import as well as xml import

parent 8ace7eeb
...@@ -358,6 +358,14 @@ class XModuleDescriptor(HTMLSnippet, ResourceTemplates, XBlock): ...@@ -358,6 +358,14 @@ class XModuleDescriptor(HTMLSnippet, ResourceTemplates, XBlock):
default=None, default=None,
) )
# VS[compat]. Backwards compatibility code that can go away after
# importing 2012 courses.
# A set of metadata key conversions that we want to make
metadata_translations = {
'slug': 'url_name',
'name': 'display_name',
}
# ============================= STRUCTURAL MANIPULATION =================== # ============================= STRUCTURAL MANIPULATION ===================
def __init__(self, def __init__(self,
system, system,
...@@ -493,6 +501,10 @@ class XModuleDescriptor(HTMLSnippet, ResourceTemplates, XBlock): ...@@ -493,6 +501,10 @@ class XModuleDescriptor(HTMLSnippet, ResourceTemplates, XBlock):
system: A DescriptorSystem for interacting with external resources system: A DescriptorSystem for interacting with external resources
""" """
model_data = {} model_data = {}
for key, value in json_data.get('metadata', {}).items():
model_data[cls._translate(key)] = value
model_data.update(json_data.get('metadata', {})) model_data.update(json_data.get('metadata', {}))
definition = json_data.get('definition', {}) definition = json_data.get('definition', {})
...@@ -507,6 +519,11 @@ class XModuleDescriptor(HTMLSnippet, ResourceTemplates, XBlock): ...@@ -507,6 +519,11 @@ class XModuleDescriptor(HTMLSnippet, ResourceTemplates, XBlock):
return cls(system=system, location=json_data['location'], model_data=model_data) return cls(system=system, location=json_data['location'], model_data=model_data)
@classmethod
def _translate(cls, key):
'VS[compat]'
return cls.metadata_translations.get(key, key)
# ================================= XML PARSING ============================ # ================================= XML PARSING ============================
@staticmethod @staticmethod
def load_from_xml(xml_data, def load_from_xml(xml_data,
......
...@@ -137,18 +137,6 @@ class XmlDescriptor(XModuleDescriptor): ...@@ -137,18 +137,6 @@ class XmlDescriptor(XModuleDescriptor):
'allow_anonymous_to_peers': bool_map 'allow_anonymous_to_peers': bool_map
} }
# VS[compat]. Backwards compatibility code that can go away after
# importing 2012 courses.
# A set of metadata key conversions that we want to make
metadata_translations = {
'slug': 'url_name',
'name': 'display_name',
}
@classmethod
def _translate(cls, key):
'VS[compat]'
return cls.metadata_translations.get(key, key)
@classmethod @classmethod
def definition_from_xml(cls, xml_object, system): def definition_from_xml(cls, xml_object, system):
......
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