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
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)
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()) }
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), }
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), }
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)
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)