Пример #1
0
def send_request(new_user, committee):

    invite = and_(Invitations.user_name == new_user.id,
                  Invitations.committee_id == committee.id,
                  Invitations.isInvite == False)

    if Invitations.query.filter(invite).first() is not None:
        return Response.RequestExists

    invitation = Invitations(user_name=new_user.id,
                             committee=committee,
                             committee_id=committee.id,
                             isInvite=False)

    try:

        db.session.add(invitation)
        db.session.commit()

        email = {}
        email["title"] = "Great news, " + new_user.id + " wants to join!"
        email["sender"] = ("SG TigerTracker", "*****@*****.**")
        email["recipients"] = [committee.head + "@rit.edu"]
        email["subtype"] = "related"
        email["html"] = render_template('committee_request.html',
                                        user_name=new_user.id,
                                        committee_head=committee.head,
                                        committee_name=committee.title,
                                        time_stamp=time.time(),
                                        request_url=app.config['CLIENT_URL'] +
                                        str(invitation.id))

        if not app.config['TESTING']:
            send_email(email)

        return Response.RequestSent
    except Exception as e:

        db.session.rollback()
        return Response.RequestError
def send_invite(new_user, committee):
    invite = and_(Invitations.user_name == new_user,
                  Invitations.committee_id == committee.id,
                  Invitations.isInvite == True)

    if Invitations.query.filter(invite).first() is not None:
        return Response.InviteExists

    invitation = Invitations(user_name=new_user,
                             committee=committee,
                             committee_id=committee.id,
                             charge_id=None,
                             isInvite=True)

    try:

        db.session.add(invitation)
        db.session.commit()

        email = {}
        email["title"] = "You're Invited"
        email["sender"] = ("SG TigerTracker", "*****@*****.**")
        email["recipients"] = [new_user + "@rit.edu"]
        email["subtype"] = "related"
        email["html"] = render_template('committee_invitation.html',
                                        user_name=new_user,
                                        committee_name=committee.title,
                                        committee_head=committee.head,
                                        time_stamp=time.time(),
                                        app_url=app.config['CLIENT_URL'] +
                                        str(invitation.id))

        if not app.config['TESTING']:
            send_email(email)

        return Response.InviteSent
    except Exception as e:
        db.session.rollback()
        return Response.InviteError
def send_close_request(user, committee, chargeID):

    admins = db.session.query(Users).filter(Users.is_admin == True).all()

    admin_emails = []
    for user in admins:
        admin_emails.append(user.id + "@rit.edu")

    invite = and_(Invitations.user_name == committee.head,
                  Invitations.committee_id == committee.id,
                  Invitations.isInvite == False)

    invitation = Invitations(user_name=user.id,
                             committee=committee,
                             committee_id=committee.id,
                             charge_id=chargeID,
                             isInvite=False)

    try:
        db.session.add(invitation)
        db.session.commit()
        email = {}
        email["title"] = "Close Charge Request"
        email["sender"] = ("SG TigerTracker", "*****@*****.**")
        email["recipients"] = admin_emails
        email["subtype"] = "related"
        email["html"] = render_template('close_charge_request.html',
                                        user_name=committee.head,
                                        charge_name=chargeID,
                                        time_stamp=time.time(),
                                        request_url=app.config['CLIENT_URL'] +
                                        str(invitation.id))
        if not app.config['TESTING']:
            send_email(email)

        return Response.RequestSent
    except Exception as e:
        db.session.rollback()
        return Response.RequestError