xml export of drafts was exporting everything
now only exports the drafts into the draft subdir STUD-1627
This commit is contained in:
@@ -679,7 +679,11 @@ class MongoModuleStore(ModuleStoreWriteBase):
|
||||
and rules as kwargs below
|
||||
content (dict): fields to look for which have content scope. Follows same syntax and
|
||||
rules as kwargs below.
|
||||
revision (str): the revision of the items you're looking for.
|
||||
revision (str): the revision of the items you're looking for. (only 'draft' makes sense for
|
||||
this modulestore. If you don't provide a revision, it won't retrieve any drafts. If you
|
||||
say 'draft', it will only return drafts. If you want one of each matching xblock but
|
||||
preferring draft to published, call this same method on the draft modulestore w/o a
|
||||
revision qualifier.)
|
||||
kwargs (key=value): what to look for within the course.
|
||||
Common qualifiers are ``category`` or any field name. if the target field is a list,
|
||||
then it searches for the given value in the list not list equivalence.
|
||||
|
||||
@@ -95,7 +95,7 @@ class DraftModuleStore(MongoModuleStore):
|
||||
draft_loc = as_draft(location)
|
||||
return super(DraftModuleStore, self).create_xmodule(draft_loc, definition_data, metadata, system, fields)
|
||||
|
||||
def get_items(self, course_key, settings=None, content=None, **kwargs):
|
||||
def get_items(self, course_key, settings=None, content=None, revision=None, **kwargs):
|
||||
"""
|
||||
Returns:
|
||||
list of XModuleDescriptor instances for the matching items within the course with
|
||||
@@ -108,6 +108,9 @@ class DraftModuleStore(MongoModuleStore):
|
||||
course_key (CourseKey): the course identifier
|
||||
settings: not used
|
||||
content: not used
|
||||
revision (str): the revision of the items you're looking for. Only 'draft' makes sense for
|
||||
this modulestore. None implies get one of either the draft or published for each
|
||||
matching xblock preferring the draft if it exists.
|
||||
kwargs (key=value): what to look for within the course.
|
||||
Common qualifiers are ``category`` or any field name. if the target field is a list,
|
||||
then it searches for the given value in the list not list equivalence.
|
||||
@@ -118,6 +121,9 @@ class DraftModuleStore(MongoModuleStore):
|
||||
wrap_draft(item) for item in
|
||||
super(DraftModuleStore, self).get_items(course_key, revision='draft', **kwargs)
|
||||
]
|
||||
if revision == 'draft':
|
||||
# the user only wants the drafts not everything w/ preference for draft
|
||||
return draft_items
|
||||
draft_items_locations = {item.location for item in draft_items}
|
||||
non_draft_items = [
|
||||
item for item in
|
||||
|
||||
@@ -126,7 +126,7 @@ def export_to_xml(modulestore, contentstore, course_key, root_dir, course_dir, d
|
||||
# should we change the application, then this assumption will no longer
|
||||
# be valid
|
||||
if draft_modulestore is not None:
|
||||
draft_verticals = draft_modulestore.get_items(course_key, category='vertical')
|
||||
draft_verticals = draft_modulestore.get_items(course_key, category='vertical', revision='draft')
|
||||
if len(draft_verticals) > 0:
|
||||
draft_course_dir = export_fs.makeopendir(DRAFT_DIR)
|
||||
for draft_vertical in draft_verticals:
|
||||
|
||||
Reference in New Issue
Block a user