コード例 #1
0
 def _get_assessment_ids(self):
     questions_by_usage_id = event_transforms.get_questions_by_usage_id(
         self.app_context)
     assessment_ids = set()
     for instance_id in questions_by_usage_id:
         assessment_ids.add(questions_by_usage_id[instance_id]['unit'])
     return assessment_ids
コード例 #2
0
    def post(self):
        # Sort questions into a dictionary based on their unit number
        questions_by_usage_id = event_transforms.get_questions_by_usage_id(
            self.app_context)

        sorted_questions_by_unit = self._rearrange_dict_by_field(
            questions_by_usage_id, 'unit')

        # Only use Students we generated.
        students = common_utils.iter_all(models.Student.all().filter(
            'email >', 'gen_sample_student_').filter('email <',
                                                     'gen_sample_student`'))
        source = 'submit-assessment'

        for student in students:
            user = users.User(email=student.email, _user_id=student.user_id)
            assessment_data = self._generate_answers(student,
                                                     sorted_questions_by_unit)
            for data in assessment_data:
                EventEntity.record(
                    source, user,
                    transforms.dumps({
                        'values': data,
                        'location': 'AnswerHandler'
                    }))

        self.redirect(self.request.referer)
コード例 #3
0
 def _get_assessment_ids(self):
     questions_by_usage_id = event_transforms.get_questions_by_usage_id(
         self.app_context)
     assessment_ids = set()
     for instance_id in questions_by_usage_id:
         assessment_ids.add(questions_by_usage_id[instance_id]['unit'])
     return assessment_ids
コード例 #4
0
 def build_additional_mapper_params(self, app_context):
     return {
         'questions_by_usage_id': (
             event_transforms.get_questions_by_usage_id(app_context)),
         'group_to_questions': (
             event_transforms.get_group_to_questions())
         }
コード例 #5
0
 def build_additional_mapper_params(self, app_context):
     return {
         'questions_by_usage_id':
         (event_transforms.get_questions_by_usage_id(app_context)),
         'valid_question_ids': (event_transforms.get_valid_question_ids()),
         'group_to_questions': (event_transforms.get_group_to_questions()),
         'assessment_weights':
         event_transforms.get_assessment_weights(app_context),
         'unscored_lesson_ids':
         event_transforms.get_unscored_lesson_ids(app_context),
     }
コード例 #6
0
 def build_additional_mapper_params(self, app_context):
     return {
         'questions_by_usage_id': (
             event_transforms.get_questions_by_usage_id(app_context)),
         'valid_question_ids': (
             event_transforms.get_valid_question_ids()),
         'group_to_questions': (
             event_transforms.get_group_to_questions()),
         'assessment_weights':
             event_transforms.get_assessment_weights(app_context),
         'unscored_lesson_ids':
             event_transforms.get_unscored_lesson_ids(app_context),
         }
コード例 #7
0
    def _compare_answers(self, answers_before, answers_after):
        # We need a dictionary of the text for each question ID, so we can check
        # whether a question has been marked as automatically generated.
        question_names = self._get_question_texts()
        all_questions = event_transforms.get_questions_by_usage_id(
            self.app_context)

        for student in common_utils.iter_all(models.Student.all()):
            user_id = str(student.user_id)
            if not self._is_generated_student(student):
                # If a student has not been automatically generated, then
                # either they should not exist in either dictionary, or
                # their number of answers provided should be the same for
                # every question that they have answered
                if user_id not in answers_before:
                    self.assertEquals(True, user_id not in answers_after)
                else:
                    for instance_id in all_questions:
                        before = answers_before[user_id][instance_id]
                        after = answers_after[user_id][instance_id]
                        self.assertEquals(before, after)
            else:
                # If a student has been automatically generated, then their
                # number of answers should have increased by one for every
                # automatically generated question.
                for instance_id in all_questions:
                    countBefore = 0
                    countAfter = 0
                    if user_id in answers_before:
                        countBefore = answers_before[user_id][instance_id]
                    if user_id in answers_after:
                        countAfter = answers_after[user_id][instance_id]

                    question_id = all_questions[instance_id]['id']
                    if question_names[question_id].startswith('gen_sample:'):
                        self.assertEquals(countBefore + 1, countAfter)
                    else:
                        self.assertEquals(countBefore, countAfter)
コード例 #8
0
    def _compare_answers(self, answers_before, answers_after):
        # We need a dictionary of the text for each question ID, so we can check
        # whether a question has been marked as automatically generated.
        question_names = self._get_question_texts()
        all_questions = event_transforms.get_questions_by_usage_id(
            self.app_context)

        for student in common_utils.iter_all(models.Student.all()):
            user_id = str(student.user_id)
            if not self._is_generated_student(student):
                # If a student has not been automatically generated, then
                # either they should not exist in either dictionary, or
                # their number of answers provided should be the same for
                # every question that they have answered
                if user_id not in answers_before:
                    self.assertEquals(True, user_id not in answers_after)
                else:
                    for instance_id in all_questions:
                        before = answers_before[user_id][instance_id]
                        after = answers_after[user_id][instance_id]
                        self.assertEquals(before, after)
            else:
                # If a student has been automatically generated, then their
                # number of answers should have increased by one for every
                # automatically generated question.
                for instance_id in all_questions:
                    countBefore = 0
                    countAfter = 0
                    if user_id in answers_before:
                        countBefore = answers_before[user_id][instance_id]
                    if user_id in answers_after:
                        countAfter = answers_after[user_id][instance_id]

                    question_id = all_questions[instance_id]['id']
                    if question_names[question_id].startswith('gen_sample:'):
                        self.assertEquals(countBefore + 1, countAfter)
                    else:
                        self.assertEquals(countBefore, countAfter)
コード例 #9
0
    def post(self):
        # Sort questions into a dictionary based on their unit number
        questions_by_usage_id = event_transforms.get_questions_by_usage_id(
            self.app_context)

        sorted_questions_by_unit = self._rearrange_dict_by_field(
            questions_by_usage_id, 'unit')

        # Only use Students we generated.
        students = common_utils.iter_all(models.Student.all().filter(
            'email >', 'gen_sample_student_').filter(
                'email <', 'gen_sample_student`'))
        source = 'submit-assessment'

        for student in students:
            user = users.User(email=student.email, _user_id=student.user_id)
            assessment_data = self._generate_answers(student,
                                                    sorted_questions_by_unit)
            for data in assessment_data:
                EventEntity.record(source, user, transforms.dumps({
                    'values': data, 'location': 'AnswerHandler'}))

        self.redirect(self.request.referer)