Extract import from xml into a separate function

This commit is contained in:
Calen Pennington
2012-07-03 13:42:35 -04:00
parent 67a732a0ff
commit 4e599d4ab2
2 changed files with 21 additions and 11 deletions

View File

@@ -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

View File

@@ -3,8 +3,7 @@
###
from django.core.management.base import BaseCommand, CommandError
from xmodule.modulestore.django import modulestore
from xmodule.modulestore.xml import XMLModuleStore
from contentstore import import_from_xml
unnamed_modules = 0
@@ -18,12 +17,4 @@ class Command(BaseCommand):
raise CommandError("import requires 3 arguments: <org> <course> <data directory>")
org, course, data_dir = args
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))
import_from_xml(org, course, data_dir)