def get(self): quarter = SettingModel.quarter() year = SettingModel.year() user = users.get_current_user() invitation = ndb.Key(urlsafe=self.request.get('confirmed')).get() confirming = StudentModel.get_student_by_email(quarter, year, user.email()) being_confirmed = invitation.invitor.get() for_assign = invitation.assignment_number partnership = None if not confirming and PartnershipModel.student_has_partner_for_assign( being_confirmed, for_assign): message = MessageModel.already_has_partner(False) elif PartnershipModel.student_has_partner_for_assign( being_confirmed, for_assign): message = MessageModel.already_has_partner(False) elif PartnershipModel.student_has_partner_for_assign( confirming, for_assign): message = MessageModel.already_has_partner(False) else: message = MessageModel.confirm_partnership( [being_confirmed, confirming], False, being_confirmed) partnership = PartnershipModel.create_partnership( [being_confirmed, confirming], for_assign) # set invitations between invitor and invitee (for current assignment) to inactive if partnership: InvitationModel.deactivate_invitations_for_students_and_assign( confirming, being_confirmed, for_assign) # SendMail(partnership, 'partner_confirm') time.sleep(0.1) return self.redirect('/partner?message=' + message)
def post(self): quarter = SettingModel.quarter() year = SettingModel.year() user = users.get_current_user() # these will only have values if this request is coming from an admin confirming_key = self.request.get('admin_confirming') being_confirmed_key = self.request.get('admin_being_confirmed') if confirming_key == '': confirming_key = 'None' # if not admin... if not confirming_key or not being_confirmed_key: invitation = ndb.Key(urlsafe=self.request.get('confirmed')).get() confirming = StudentModel.get_student_by_email( quarter, year, user.email()) being_confirmed = invitation.invitor.get() for_assign = invitation.assignment_number admin = False else: for_assign = int(self.request.get('assign_num')) being_confirmed = ndb.Key(urlsafe=being_confirmed_key).get() confirming = ndb.Key(urlsafe=confirming_key).get( ) if confirming_key != 'None' else None admin = True partnership = None if not confirming and PartnershipModel.student_has_partner_for_assign( being_confirmed, for_assign): message = MessageModel.already_has_partner(admin) elif not confirming: message = MessageModel.confirm_solo_partnership(being_confirmed) partnership = PartnershipModel.create_partnership( [being_confirmed], for_assign) elif PartnershipModel.student_has_partner_for_assign( being_confirmed, for_assign): message = MessageModel.already_has_partner(admin) # message = '' # partnership = PartnershipModel.get_partnerships_for_students_by_assign([being_confirmed], for_assign) # partnership = PartnershipModel.add_members_to_partnership([confirming], partnership[0]) elif PartnershipModel.student_has_partner_for_assign( confirming, for_assign): message = MessageModel.already_has_partner(admin) else: message = MessageModel.confirm_partnership( [being_confirmed, confirming], admin, confirming) partnership = PartnershipModel.create_partnership( [being_confirmed, confirming], for_assign) # set invitations between invitor and invitee (for current assignment) to inactive if partnership: InvitationModel.deactivate_invitations_for_students_and_assign( confirming, being_confirmed, for_assign) # SendMail(partnership, 'partner_confirm') if not admin: time.sleep(0.1) return self.redirect('/partner?message=' + message) else: time.sleep(0.1) return self.redirect('/admin/partners/add?message=' + message)