Extract import from xml into a separate function
This commit is contained in:
@@ -0,0 +1,19 @@
|
|||||||
|
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 @@
|
|||||||
###
|
###
|
||||||
|
|
||||||
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):
|
|||||||
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))
|
|
||||||
|
|||||||
Reference in New Issue
Block a user