예제 #1
0
 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 {}
예제 #2
0
 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 {}
예제 #3
0
 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 {}