def _create_v15_lesson_question_group_dict(self, cpt, unit, lesson): try: question_group = QuestionGroupDAO.load(cpt['qgid']) questions = {} for ind, quid in enumerate(question_group.question_ids): question = QuestionDAO.load(quid) if question.type == question.MULTIPLE_CHOICE: q_id = 'u.%s.l.%s.c.%s.i.%s' % ( unit.unit_id, lesson.lesson_id, cpt['instanceid'], ind) label = ( 'Unit %s Lesson %s, Question Group %s Question %s' % (unit.index, lesson.index, question_group.description, question.description)) link = self._get_link_for_lesson(unit.unit_id, lesson.lesson_id) num_choices = len(question.dict['choices']) questions.update( self._create_v15_question_dict(q_id, label, link, num_choices)) return questions except Exception as e: # pylint: disable-msg=broad-except logging.error( 'Failed to process the question data. ' 'Error: %s, data: %s', e, cpt) return {}
def _create_v15_assessment_question_dict(self, cpt, assessment): try: question = QuestionDAO.load(cpt['quid']) if question.type == question.MULTIPLE_CHOICE: q_id = 's.%s.c.%s' % (assessment.unit_id, cpt['instanceid']) label = '%s, Question %s' % ( assessment.title, question.description) link = self._get_link_for_assessment(assessment.unit_id) num_choices = len(question.dict['choices']) return self._create_v15_question_dict( q_id, label, link, num_choices) else: return {} except Exception as e: # pylint: disable-msg=broad-except logging.error( 'Failed to process the question data. ' 'Error: %s, data: %s', e, cpt) return {}
def _create_v15_assessment_question_group_dict(self, cpt, assessment): try: question_group = QuestionGroupDAO.load(cpt['qgid']) questions = {} for ind, quid in enumerate(question_group.question_ids): question = QuestionDAO.load(quid) if question.type == question.MULTIPLE_CHOICE: q_id = 's.%s.c.%s.i.%s' % ( assessment.unit_id, cpt['instanceid'], ind) label = '%s, Question Group %s Question %s' % ( assessment.title, question_group.description, question.description) link = self._get_link_for_assessment(assessment.unit_id) num_choices = len(question.dict['choices']) questions.update( self._create_v15_question_dict( q_id, label, link, num_choices)) return questions except Exception as e: # pylint: disable-msg=broad-except logging.error( 'Failed to process the question data. ' 'Error: %s, data: %s', e, cpt) return {}