From c16f688802e91b9ef1fb57d525a076beb0cb3b05 Mon Sep 17 00:00:00 2001 From: ichuang Date: Wed, 6 Feb 2013 18:10:25 -0500 Subject: [PATCH] conditional xmod: add errortracker msg and inherit icon from child --- common/lib/xmodule/xmodule/conditional_module.py | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/common/lib/xmodule/xmodule/conditional_module.py b/common/lib/xmodule/xmodule/conditional_module.py index e20681e614..d551b42a38 100644 --- a/common/lib/xmodule/xmodule/conditional_module.py +++ b/common/lib/xmodule/xmodule/conditional_module.py @@ -44,6 +44,10 @@ class ConditionalModule(XModule): XModule.__init__(self, system, location, definition, descriptor, instance_state, shared_state, **kwargs) self.contents = None self.condition = self.metadata.get('condition','') + self._get_required_modules() + children = self.get_display_items() + if children: + self.icon_class = children[0].get_icon_class() #log.debug('conditional module required=%s' % self.required_modules_list) def _get_required_modules(self): @@ -127,7 +131,14 @@ class ConditionalDescriptor(SequenceDescriptor): required_module_list = [tuple(x.split('/',1)) for x in self.metadata.get('required','').split('&')] self.required_module_locations = [] - for (tag, name) in required_module_list: + for rm in required_module_list: + try: + (tag, name) = rm + except Exception as err: + msg = "Specification of required module in conditional is broken: %s" % self.metadata.get('required') + log.warning(msg) + self.system.error_tracker(msg) + continue loc = self.location.dict() loc['category'] = tag loc['name'] = name