From 9a4e1f5cd1d671b05e67d14db20b2a8a3a41d013 Mon Sep 17 00:00:00 2001 From: Calen Pennington Date: Wed, 9 Jul 2014 19:06:53 -0400 Subject: [PATCH] Only compute block types with children once --- common/lib/xmodule/xmodule/modulestore/mongo/base.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/common/lib/xmodule/xmodule/modulestore/mongo/base.py b/common/lib/xmodule/xmodule/modulestore/mongo/base.py index 01c67a3821..52865e1993 100644 --- a/common/lib/xmodule/xmodule/modulestore/mongo/base.py +++ b/common/lib/xmodule/xmodule/modulestore/mongo/base.py @@ -54,6 +54,9 @@ SORT_REVISION_FAVOR_DRAFT = ('_id.revision', pymongo.DESCENDING) # sort order that returns PUBLISHED items first SORT_REVISION_FAVOR_PUBLISHED = ('_id.revision', pymongo.ASCENDING) +BLOCK_TYPES_WITH_CHILDREN = list(set( + name for name, class_ in XBlock.load_classes() if getattr(class_, 'has_children', False) +)) class MongoRevisionKey(object): """ @@ -460,14 +463,11 @@ class MongoModuleStore(ModuleStoreWriteBase): # note this is a bit ugly as when we add new categories of containers, we have to add it here course_id = self.fill_in_run(course_id) - block_types_with_children = set( - name for name, class_ in XBlock.load_classes() if getattr(class_, 'has_children', False) - ) query = SON([ ('_id.tag', 'i4x'), ('_id.org', course_id.org), ('_id.course', course_id.course), - ('_id.category', {'$in': list(block_types_with_children)}) + ('_id.category', {'$in': BLOCK_TYPES_WITH_CHILDREN}) ]) # we just want the Location, children, and inheritable metadata record_filter = {'_id': 1, 'definition.children': 1}