Exemplo n.º 1
0
    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)
Exemplo n.º 2
0
    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)