コード例 #1
0
 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("/")