def post(self): user = users.get_current_user() if not user: self.redirect(users.create_login_url(self.request.uri)) return next_active_assignemnt = None if (self.request.get('type') == 'Student'): rose_username = self.request.get('rose_username') new_student = Student(parent=get_parent_key(user), id=rose_username, first_name=self.request.get('first_name'), last_name=self.request.get('last_name'), rose_username=rose_username, team=self.request.get('team')) new_student.put() elif (self.request.get('type') == 'Assignment'): active_assignment = Assignment(parent=get_parent_key(user), name=self.request.get('assignment_name')) if len(self.request.get('assignment_entity_key')) > 0: assignment_key = ndb.Key(urlsafe=self.request.get('assignment_entity_key')) if assignment_key: assignment = assignment_key.get() if assignment: active_assignment = assignment active_assignment.name = self.request.get('assignment_name') active_assignment.put() next_active_assignemnt = active_assignment.key.urlsafe() elif (self.request.get('type') == 'SingleGradeEntry'): assignment_key = ndb.Key(urlsafe=self.request.get('assignment_key')) student_key = ndb.Key(urlsafe=self.request.get('student_key')) student = student_key.get() score = int(self.request.get('score')) new_grade_entry = GradeEntry(parent=assignment_key, id=student.rose_username, assignment_key=assignment_key, student_key=student_key, score=score) new_grade_entry.put() next_active_assignemnt = assignment_key.urlsafe() elif (self.request.get('type') == 'TeamGradeEntry'): assignment_key = ndb.Key(urlsafe=self.request.get('assignment_key')) score = int(self.request.get('score')) team = self.request.get('team') student_query = Student.query(Student.team==team, ancestor=get_parent_key(user)) for student in student_query: new_grade_entry = GradeEntry(parent=assignment_key, id=student.rose_username, assignment_key=assignment_key, student_key=student.key, score=score) new_grade_entry.put() next_active_assignemnt = assignment_key.urlsafe() if next_active_assignemnt: self.redirect("/?active_assignemnt=" + next_active_assignemnt) else: self.redirect("/")