Split branch settings code review fixes LMS-11056

This commit is contained in:
Diana Huang
2014-07-22 14:46:02 -04:00
committed by Nimisha Asthagiri
parent 1dc6ea39f3
commit 167e2b675b
6 changed files with 77 additions and 21 deletions

View File

@@ -20,6 +20,7 @@ from xmodule.modulestore.mongo.base import (
DIRECT_ONLY_CATEGORIES, SORT_REVISION_FAVOR_DRAFT
)
from xmodule.modulestore.store_utilities import rewrite_nonportable_content_links
from xmodule.modulestore.draft_and_published import UnsupportedRevisionError
log = logging.getLogger(__name__)
@@ -97,7 +98,7 @@ class DraftModuleStore(MongoModuleStore):
elif self.get_branch_setting() == ModuleStoreEnum.Branch.published_only:
return get_published()
else:
elif revision is None:
# could use a single query wildcarding revision and sorting by revision. would need to
# use prefix form of to_deprecated_son
try:
@@ -107,6 +108,9 @@ class DraftModuleStore(MongoModuleStore):
# otherwise, fall back to the published version
return get_published()
else:
raise UnsupportedRevisionError()
def has_item(self, usage_key, revision=None):
"""
Returns True if location exists in this ModuleStore.
@@ -127,13 +131,17 @@ class DraftModuleStore(MongoModuleStore):
if revision == ModuleStoreEnum.RevisionOption.draft_only:
return has_draft()
elif revision == ModuleStoreEnum.RevisionOption.published_only \
or self.get_branch_setting() == ModuleStoreEnum.Branch.published_only:
elif (
revision == ModuleStoreEnum.RevisionOption.published_only or
self.get_branch_setting() == ModuleStoreEnum.Branch.published_only
):
return has_published()
else:
elif revision is None:
key = usage_key.to_deprecated_son(prefix='_id.')
del key['_id.revision']
return self.collection.find(key).count() > 0
else:
raise UnsupportedRevisionError()
def delete_course(self, course_key, user_id):
"""
@@ -342,9 +350,11 @@ class DraftModuleStore(MongoModuleStore):
elif revision == ModuleStoreEnum.RevisionOption.published_only \
or self.get_branch_setting() == ModuleStoreEnum.Branch.published_only:
return published_items([])
else:
elif revision is None:
draft_items = draft_items()
return draft_items + published_items(draft_items)
else:
raise UnsupportedRevisionError()
def convert_to_draft(self, location, user_id):
"""
@@ -519,8 +529,12 @@ class DraftModuleStore(MongoModuleStore):
elif revision is None:
as_functions = [as_draft]
else:
raise self._unsupported_revision_error(
[None, ModuleStoreEnum.RevisionOption.published_only, ModuleStoreEnum.RevisionOption.all]
raise UnsupportedRevisionError(
[
None,
ModuleStoreEnum.RevisionOption.published_only,
ModuleStoreEnum.RevisionOption.all
]
)
self._delete_subtree(location, as_functions)