def post(self, data, check, mutator): """Handles the POST request when creating a Grading Group""" student_survey = None grading_survey = None survey_type = None if 'midterm' in data.POST: student_survey = survey.getMidtermProjectSurveyForProgram( data.program) grading_survey = survey.getMidtermGradingProjectSurveyForProgram( data.program) survey_type = 'Midterm' elif 'final' in data.POST: student_survey = survey.getFinalProjectSurveyForProgram( data.program) grading_survey = survey.getFinalGradingProjectSurveyForProgram( data.program) survey_type = 'Final' else: raise exception.BadRequest('No valid evaluation type present') if not student_survey or not grading_survey: data.redirect.program() return data.redirect.to('gsoc_grading_group', extra=['err=1']) q = GSoCGradingSurveyGroup.all() q.filter('student_survey', student_survey) q.filter('grading_survey', grading_survey) existing_group = q.get() if existing_group: data.redirect.id(existing_group.key().id()) else: props = { 'name': '%s - %s Evaluation' % (data.program.name, survey_type), 'program': data.program, 'grading_survey': grading_survey, 'student_survey': student_survey, } new_group = GSoCGradingSurveyGroup(**props) new_group.put() data.redirect.id(new_group.key().id()) return data.redirect.to('gsoc_grading_record_overview')
def createSurveys(self): """Creates the surveys and records required for the tests. """ survey_values = { 'author': self.founder, 'title': 'Title', 'modified_by': self.founder, 'link_id': 'link_id', 'scope': self.gsoc, 'scope_path': self.gsoc.key().id_or_name() } self.project_survey = ProjectSurvey(key_name='key_name', **survey_values) self.project_survey.put() self.grading_survey = GradingProjectSurvey(key_name='key_name', **survey_values) self.grading_survey.put() record_values = { 'user': self.student.user, 'org': self.org, 'project': self.project, 'survey': self.project_survey } self.project_survey_record = GSoCProjectSurveyRecord(**record_values) self.project_survey_record.put() self.grading_survey = GradingProjectSurvey(**survey_values) self.grading_survey.put() record_values = { 'user': self.student.user, 'org': self.org, 'project': self.project, 'survey': self.grading_survey, 'grade': True } self.grading_survey_record = GSoCGradingProjectSurveyRecord( **record_values) self.grading_survey_record.put() group_values = { 'name': 'Survey Group Name', 'grading_survey': self.grading_survey, 'student_survey': self.project_survey, 'program': self.gsoc } self.survey_group = GSoCGradingSurveyGroup(**group_values) self.survey_group.put() record_values = { 'grading_survey_group': self.survey_group, 'mentor_record': self.grading_survey_record, 'student_record': self.project_survey_record, 'grade_decision': 'pass' } self.grading_record = GSoCGradingRecord(parent=self.project, **record_values) self.grading_record.put()