Beispiel #1
0
def unfollow(username):
    user = User.get_or_none(username=username)
    if user is not None:
        unfollow = Follow.get_or_none(followed_id=user.id)
        if unfollow.delete_instance():
            flash(f"Successfully unfollowed {user.username}!", 'success')
            return redirect(url_for('users.show', username=username))
Beispiel #2
0
def show(username):
    user = User.get_or_none(name=username)
    if current_user.is_authenticated:
        if user is not None:
            # followers = user.followers
            follower = Follow.get_or_none(follower_id=current_user.id,
                                          followed_user_id=user.id)
            follow_requester = Follow_Request.get_or_none(
                follow_requester_id=current_user.id,
                follow_requested_user_id=user.id)
            images = user.pictures  # Utilizing the backref
            number_of_followers = len(user.followers)
            number_of_followings = len(user.followings)
            return render_template('users/profile.html',
                                   user=user,
                                   images=images,
                                   follower=follower,
                                   follow_requester=follow_requester,
                                   number_of_followers=number_of_followers,
                                   number_of_followings=number_of_followings)
        else:
            flash("This user does not exist")
            return redirect(url_for('home'))
    else:
        flash('Please sign in to view profiles')
        return redirect(url_for('home'))
Beispiel #3
0
def unfollow(id):
    user = User.get_by_id(id)
    unfollow = Follow.get_or_none(follower_id=current_user.id,
                                  followed_user_id=user.id)
    if unfollow.delete_instance():
        flash("Unfollowed successfully")
        return redirect(url_for('users.show', username=user.name))
    else:
        flash("Something went wrong")
        return redirect(url_for('users.show', username=user.name))
Beispiel #4
0
    def follow(self, following):
        from models.follow import Follow
        if Follow.get_or_none(Follow.follower == self.id,
                              Follow.following == following.id):
            return False
        else:
            if following.is_private:
                Follow.create(follower=self.id,
                              following=following.id,
                              is_approved=False)
            else:
                Follow.create(follower=self.id,
                              following=following.id,
                              is_approved=True)

            return True
Beispiel #5
0
def show(username):
    # username = request.args.get('search_user')
    user = User.get_or_none(username=username)
    if current_user.is_authenticated:
        if user is not None:
            image = user.image
            user_follower = user.follower
            user_followed = user.followed
            follower_count = len(user_follower)
            followed_count = len(user_followed)
            if user.username == current_user.username:
                # breakpoint()
                return render_template('users/profile.html',
                                       user=user,
                                       image=image,
                                       follower_count=follower_count,
                                       followed_count=followed_count)
            else:
                # for i in user_follower:
                #     if i.follower_id == current_user.id:
                #         follower = User.get_or_none(username = current_user.username)
                #         breakpoint()
                #         return follower
                #     else:
                #         breakpoint()
                is_current_user_following = ""
                if Follow.get_or_none(Follow.follower == current_user.id,
                                      Follow.followed == user.id):
                    is_current_user_following = True
                else:
                    is_current_user_following = False

            return render_template(
                'users/profile.html',
                user=user,
                image=image,
                follower_count=follower_count,
                followed_count=followed_count,
                is_current_user_following=is_current_user_following)

        else:
            flash('This user doesn\'t exist', 'danger')
            return render_template('users/user_existence.html',
                                   username=username)
    else:
        flash('Please sign in to view profiles', 'danger')
        return render_template('users/profile.html')
Beispiel #6
0
def following_list(username):
    user = User.get_or_none(username=username)
    arr = []
    followings = Follow.select().where(Follow.follower_id == user.id)

    if current_user.is_authenticated:
        for following in followings:
            following_details = User.get_or_none(id=following.followed_id)
            if Follow.get_or_none(Follow.follower == current_user.id,
                                  Follow.followed == following_details.id):
                arr.append({"profile": following_details, "status": True})

            else:
                arr.append({"profile": following_details, "status": False})
    else:
        return render_template('users/login_status.html')

    return render_template('users/following.html', followings=arr)
Beispiel #7
0
def follower_list(username):
    user = User.get_or_none(username=username)
    arr = []
    followers = Follow.select().where(Follow.followed_id == user.id)

    # if current_user.is_authenticated:
    #     for follower in followers:
    #         follower_details = User.get_or_none(id = follower.follower_id)

    #         if Follow.get_or_none(Follow.follower == current_user.id, Follow.followed == follower_details.id):
    #             arr.append({
    #                 "profile": follower_details,
    #                 "status": True
    #             })

    #         else:
    #             arr.append({
    #                 "profile": follower_details,
    #                 "status": False
    #             })
    # else:
    #     return render_template('users/login_status.html')

    # return render_template('users/follower.html', followers = arr)

    followers = user.followers()
    if current_user.is_authenticated:
        for follower in followers:
            if Follow.get_or_none(Follow.follower == current_user.id,
                                  Follow.followed == follower.id):
                arr.append({"profile": follower, "status": True})

            else:
                arr.append({"profile": follower, "status": False})
    else:
        return render_template('users/login_status.html')

    return render_template('users/follower.html', followers=arr)
Beispiel #8
0
def show(username):
    user = User.get(name=username)
    if user.description == "None":
        user.description = "No Info"

    image_all = Image.select().where(Image.user_id == user.id)

    requested = Requested.select().join(
        User,
        on=(User.id == Requested.fan_id)).where(Requested.idol_id == user.id)

    followers = Follow.select().join(
        User, on=(User.id == Follow.fan_id)).where(Follow.idol_id == user.id)

    if not current_user.is_authenticated:
        return render_template("users/profile.html",
                               user=user,
                               image_all=image_all,
                               requested=requested,
                               followers=followers)

    if user.name != current_user.name:
        is_requested = Requested.get_or_none(fan_id=current_user.id,
                                             idol_id=user.id)
        is_follower = Follow.get_or_none(fan_id=current_user.id,
                                         idol_id=user.id)
        return render_template("users/profile.html",
                               user=user,
                               image_all=image_all,
                               is_requested=is_requested,
                               is_follower=is_follower,
                               followers=followers)
    else:
        return render_template("users/profile.html",
                               user=user,
                               image_all=image_all,
                               requested=requested,
                               followers=followers)
Beispiel #9
0
def index():
    if current_user.is_authenticated:
        users = User.select().where(User.id != current_user.id)
        following_arr = []
        for user in users:
            if Follow.get_or_none(Follow.follower == current_user.id,
                                  Follow.followed == user.id):
                following_arr.append({"profile": user, "status": True})
            else:
                following_arr.append({"profile": user, "status": False})
    else:
        return render_template('users/login_status.html')

    # if user.username == current_user.username:
    #     return render_template('users/profile.html', user = user, image = image, user_follower = user_follower, user_followed = user_followed)
    # else:
    #     is_current_user_following = ""
    #     if Follow.get_or_none(Follow.follower == current_user.id, Follow.followed == user.id):
    #         is_current_user_following = True
    #     else:
    #         is_current_user_following = False

    # return render_template('users/profile.html', user = user, image = image, user_follower = user_follower, user_followed = user_followed, is_current_user_following = is_current_user_following)
    return render_template("users/index.html", following_arr=following_arr)
Beispiel #10
0
 def follow_status(self, following):
     from models.follow import Follow
     return Follow.get_or_none(Follow.follower == self.id,
                               Follow.following == following.id)
def delete(idol_id):
    Follow.get_or_none((Follow.idol_id == idol_id) & (Follow.fan_id == current_user.id)).delete_instance()
    flash("You're no longer following this user!", 'success')
    return redirect(url_for('users.show', id=idol_id))
Beispiel #12
0
    def is_followed(self):
        from models.follow import Follow
        followed = Follow.get_or_none((Follow.fan_id == current_user.id)
                                      & (Follow.idol_id == self.id))

        return followed