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))
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'))
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))
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
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')
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)
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)
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)
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)
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))
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