Commit 4e599d4a by Calen Pennington

Extract import from xml into a separate function

parent 67a732a0
from xmodule.modulestore.django import modulestore
from xmodule.modulestore.xml import XMLModuleStore
def import_from_xml(org, course, data_dir):
"""
Import the specified xml data_dir into the django defined modulestore,
using org and course as the location org and course.
"""
module_store = XMLModuleStore(org, course, data_dir, 'xmodule.raw_module.RawDescriptor', eager=True)
for module in module_store.modules.itervalues():
modulestore().create_item(module.location)
if 'data' in module.definition:
modulestore().update_item(module.location, module.definition['data'])
if 'children' in module.definition:
modulestore().update_children(module.location, module.definition['children'])
modulestore().update_metadata(module.location, dict(module.metadata))
return module_store.course
...@@ -3,8 +3,7 @@ ...@@ -3,8 +3,7 @@
### ###
from django.core.management.base import BaseCommand, CommandError from django.core.management.base import BaseCommand, CommandError
from xmodule.modulestore.django import modulestore from contentstore import import_from_xml
from xmodule.modulestore.xml import XMLModuleStore
unnamed_modules = 0 unnamed_modules = 0
...@@ -18,12 +17,4 @@ class Command(BaseCommand): ...@@ -18,12 +17,4 @@ class Command(BaseCommand):
raise CommandError("import requires 3 arguments: <org> <course> <data directory>") raise CommandError("import requires 3 arguments: <org> <course> <data directory>")
org, course, data_dir = args org, course, data_dir = args
import_from_xml(org, course, data_dir)
module_store = XMLModuleStore(org, course, data_dir, 'xmodule.raw_module.RawDescriptor', eager=True)
for module in module_store.modules.itervalues():
modulestore().create_item(module.location)
if 'data' in module.definition:
modulestore().update_item(module.location, module.definition['data'])
if 'children' in module.definition:
modulestore().update_children(module.location, module.definition['children'])
modulestore().update_metadata(module.location, dict(module.metadata))
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