def get(self): user_data = UserData.current() if not user_data: self.redirect(util.create_login_url(self.request.uri)) return accept_coach = self.request_bool("accept", default = False) user_data_coach = self.request_user_data("coach_email") user_data_student = self.request_user_data('student_email') if bool(user_data_coach) == bool(user_data_student): raise Exception('must provide coach_email xor student_email') if user_data_coach: user_data_student = user_data elif user_data_student: user_data_coach = user_data if user_data_coach and not user_data_student.is_coached_by(user_data_coach): coach_request = CoachRequest.get_for(user_data_coach, user_data_student) if coach_request: coach_request.delete() if user_data.key_email == user_data_student.key_email and accept_coach: user_data_student.coaches.append(user_data_coach.key_email) user_data_student.put() if not self.is_ajax_request(): self.redirect("/coaches")