示例#1
0
def add_friend(to_username):
    ref = request.referrer
    logged_user = User.objects.filter(username=session.get('username')).first()
    to_user = User.objects.filter(username=to_username).first()
    if to_user:
        to_username = to_user.username
        rel = Relationship.get_relationship(logged_user, to_user)
        if rel == "FRIENDS_PENDING":
            return rel
        elif rel == "BLOCKED":
            return rel
        elif rel == "FRIENDS_APPROVED":
            return rel
        elif rel == "REVERSE_FRIENDS_PENDING":  #Friend has approved
            Relationship(from_user=logged_user,
                         to_user=to_user,
                         rel_type=Relationship.FRIENDS,
                         status=Relationship.APPROVED).save()
            reverse_rel = Relationship.objects.get(from_user=to_user,
                                                   to_user=logged_user)
            reverse_rel.status = Relationship.APPROVED
            reverse_rel.save()
            #return "FRIENDS_APPROVED"
        elif rel == None and rel != "REVERSE_BLOCKED":  #notFriend, notBlocked
            Relationship(from_user=logged_user,
                         to_user=to_user,
                         rel_type=Relationship.FRIENDS,
                         status=Relationship.PENDING).save()
            return "FRIENDSHIP_REQUESTED"
        return redirect(url_for('user_app.profile', username=to_username))
    else:
        abort(404)
示例#2
0
文件: views.py 项目: pemm8/flaskbook
def add_friend(to_username):
    logged_user = User.objects.filter(username=session.get('username')).first()
    to_user = User.objects.filter(username=to_username).first()
    
    if to_user:
        rel = Relationship.get_relationship(logged_user, to_user)
        to_username = to_user.username
        if rel == "REVERSE_FRIENDS_PENDING":
            Relationship(
                from_user=logged_user,
                to_user=to_user,
                rel_type=Relationship.FRIENDS,
                status=Relationship.APPROVED
                ).save()
            reverse_rel = Relationship.objects.get(
                from_user=to_user,
                to_user=logged_user
                )
            reverse_rel.status=Relationship.APPROVED
            reverse_rel.save()
        elif rel == None and rel != "REVERSE_BLOCKED":
            Relationship(
                from_user=logged_user,
                to_user=to_user,
                rel_type=Relationship.FRIENDS,
                status=Relationship.PENDING
                ).save()
        return redirect(url_for('user_app.profile', username=to_username))
    else:
        abort(404)
示例#3
0
def add_friend(to_username):
    ref = request.referrer

    logged_user = User.getByName(session.get('username'))
    to_user = User.getByName(to_username)
    if to_user:

        rel_status = Relationship.get_relationship_status(logged_user.id, to_user.id)
        if rel_status == "REVERSE_FRIENDS_PENDING":

            Relationship(
                from_user=logged_user.id,
                to_user=to_user.id,
                rel_type=RELATIONSHIP_TYPE.get(FRIENDS),
                status=STATUS_TYPE.get(APPROVED)
            ).save_database()

            reverse_rel = Relationship.get_relationship(to_user.id, logged_user.id)
            reverse_rel.status = STATUS_TYPE.get(APPROVED)
            reverse_rel.update_record()

        elif rel_status is None:  # and rel_status != "REVERSE_BLOCKED"

            Relationship(
                from_user=logged_user.id,
                to_user=to_user.id,
                rel_type=RELATIONSHIP_TYPE.get(FRIENDS),
                status=STATUS_TYPE.get(PENDING)
            ).save_database()

            # email the user
            body_html = render_template(
                'mail/relationship/added_friend.html',
                from_user=logged_user,
                to_user=to_user,
            )
            body_text = render_template(
                'mail/relationship/added_friend.txt',
                from_user=logged_user,
                to_user=to_user,
            )

            email(to_user.email,
                  ("%s has requested to be friends") % logged_user.first_name,
                  body_html,
                  body_text)

        if ref:
            return redirect(ref)
        else:
            return redirect(url_for('user_blueprint.profile', username=to_user.username))
    else:
        abort(404)
示例#4
0
def add_friend(to_username):
    ref = request.referrer
    logged_user = User.objects.filter(username=session.get('username')).first()
    to_user = User.objects.filter(username=to_username).first()

    if to_user:
        rel = Relationship.get_relationship(logged_user, to_user)
        to_username = to_user.username
        if rel == "REVERSE_FRIENDS_PENDING":
            Relationship(
                from_user=logged_user,
                to_user=to_user,
                rel_type=Relationship.FRIENDS,
                status=Relationship.APPROVED
            ).save()
            reverse_rel = Relationship.objects.get(
                from_user=to_user,
                to_user=logged_user)
            reverse_rel.status = Relationship.APPROVED
            reverse_rel.save()
        elif rel == None and rel != "REVERSE_BLOCKED":
            Relationship(
                from_user=logged_user,
                to_user=to_user,
                rel_type=Relationship.FRIENDS,
                status=Relationship.PENDING
            ).save()

            # email the user
            body_html = render_template(
                'mail/relationship/added_friend.html',
                from_user=logged_user,
                to_user=to_user,
            )
            body_text = render_template(
                'mail/relationship/added_friend.txt',
                from_user=logged_user,
                to_user=to_user,
            )
            email(to_user.email,
                  ("%s has requested to be friends") % logged_user.first_name,
                  body_html,
                  body_text)

        if ref:
            return redirect(ref)
        else:
            return redirect(url_for('user_app.profile', username=to_user.username))
    else:
        abort(404)
示例#5
0
def block(to_username):
    ref = request.referrer
    logged_user = User.objects.filter(username=session.get('username')).first()
    to_user = User.objects.filter(username=to_username).first()

    if to_user:
        rel = Relationship.get_relationship(logged_user, to_user)
        to_username = to_user.username
        if rel == "FRIENDS_PENDING" or rel == "FRIENDS_APPROVED" or rel == "REVERSE_FRIENDS_PENDING":
            rel = Relationship.objects.filter(from_user=logged_user,
                                              to_user=to_user).delete()
            reverse_rel = Relationship.objects.filter(
                from_user=to_user, to_user=logged_user).delete()
        Relationship(from_user=logged_user,
                     to_user=to_user,
                     rel_type=Relationship.BLOCKED,
                     status=Relationship.APPROVED).save()

        if ref:
            return redirect(ref)
        else:
            return redirect(
                url_for('user_app.profile', username=to_user.username))
    else:
        abort(404)
示例#6
0
def block(to_username):
    ref = request.referrer
    logged_user = User.getByName(session.get('username'))
    to_user = User.getByName(to_username)

    if to_user:

        rel_status = Relationship.get_relationship_status(logged_user.id, to_user.id)
        if rel_status == "FRIENDS_PENDING" \
            or rel_status == "FRIENDS_APPROVED" \
            or rel_status == "REVERSE_FRIENDS_PENDING":

            rel = Relationship.get_relationship(logged_user.id, to_user.id)
            rel.delete_record()
            reverse_rel = Relationship.get_relationship(to_user.id, logged_user.id)
            reverse_rel.delete_record()

        Relationship(
            from_user=logged_user.id,
            to_user=to_user.id,
            rel_type=RELATIONSHIP_TYPE.get(BLOCKED),
            status=STATUS_TYPE.get(APPROVED)
        ).save_database()

        if ref:
            return redirect(ref)
        else:
            return redirect(url_for('user_blueprint.profile', username=to_user.username))
    else:
        abort(404)
示例#7
0
def add_friend(to_username):
    ref = request.referrer
    logged_user = User.objects.filter(username=session.get("username")).first()
    to_user = User.objects.filter(username=to_username).first()

    if to_user:
        rel = Relationship.get_relationship(logged_user, to_user)
        to_username = to_user.username
        if rel == "REVERSE_FRIENDS_PENDING":
            # Person has requested you a friendship and waiting on you
            Relationship(from_user=logged_user,
                         to_user=to_user,
                         rel_type=Relationship.FRIENDS,
                         status=Relationship.APPROVED).save()
            reverse_rel = Relationship.objects.get(from_user=to_user,
                                                   to_user=logged_user)
            reverse_rel.status = Relationship.APPROVED
            reverse_rel.save()
        elif rel == None and rel != "REVERSE_BLOCKED":
            Relationship(from_user=logged_user,
                         to_user=to_user,
                         rel_type=Relationship.FRIENDS,
                         status=Relationship.PENDING).save()

            # Email the user
            body_html = render_template(
                "mail/relationship/added_friend.html",
                from_user=logged_user,
                to_user=to_user,
            )
            body_text = render_template(
                "mail/relationship/added_friend.txt",
                from_user=logged_user,
                to_user=to_user,
            )
            email(
                to_user.email, "{0} has requested to be friends".format(
                    logged_user.first_name), body_html, body_text)

        if ref:
            return redirect(ref)
        else:
            return redirect(
                url_for("user_app.profile", username=to_user.username))
    else:
        abort(404)
示例#8
0
def _save_approved_relationship_to_database(logged_user, to_user):

    Relationship(from_user=logged_user,
                 to_user=to_user,
                 relationship_type=Relationship.FRIENDS,
                 status=Relationship.APPROVED).save()

    reversed_relationship = Relationship.objects.get(from_user=to_user,
                                                     to_user=logged_user)
    reversed_relationship.status = Relationship.APPROVED
    reversed_relationship.save()
示例#9
0
def block(username):

    logged_user, to_user = _get_requesting_user_and_logged_in_user_obj(
        username)

    if to_user and logged_user:
        Relationship.delete_connection_between_users(to_user, logged_user)
        Relationship(from_user=logged_user,
                     to_user=to_user,
                     relationship_type=Relationship.BLOCKED,
                     status=Relationship.APPROVED).save()
        return _redirect_to_referred_url_if_safe(username)
    abort(404)
示例#10
0
def add_friend(username):

    logged_user, to_user = _get_requesting_user_and_logged_in_user_obj(
        username)

    if to_user:
        relationship = Relationship.get_relationship(logged_user, to_user)

        if relationship == constants.REVERSE_PENDING_FRIEND_REQUEST:
            _save_approved_relationship_to_database(logged_user, to_user)
        elif relationship is None and relationship != constants.REVERSED_BLOCK:
            Relationship(from_user=logged_user,
                         to_user=to_user,
                         relationship_type=Relationship.FRIENDS,
                         status=Relationship.PENDING).save()

            _email_user_about_friend_request(logged_user, to_user)

        return _redirect_to_referred_url_if_safe(username)
    abort(404)