def post(self, slug): user = self.current_user likes = Likes.select().where(Likes.post_id == slug) if likes: # Do not allow more than one like for one post likes = Likes.select().where(Likes.post_id == slug).get() if likes.user_id == user.id: return self.redirect("/post/{}".format(slug)) # If you are creator of post, can not like it post = Posts.select().where(Posts.id == slug).get() if post.user_id == user.id: return self.redirect("/post/{}".format(slug)) # Create like Likes.create(user_id=user.id, post_id=slug) return self.redirect("/post/{}".format(slug))
def like_click(word, translation): value = list(Likes.select().where((Likes.word == word) & (Likes.translation == translation) & (Likes.user == session["mail"]))) if len(value) == 0: Likes.insert(word=word, translation=translation, user=session["mail"]).execute() else: like = value[0] like.delete_instance() return redirect(f"/search?word={word}")
def get(self, slug): user = Users.select().where(Users.id == slug) if user: # Retrieve users post, comment, and like history user = Users.select().where(Users.id == slug).get() posts = Posts.select().where(Posts.user_id == slug) if posts: posts = (Posts.select().where(Posts.user_id == slug).order_by( Posts.created.desc())) comments = Comments.select().where(Comments.user_id == slug) if comments: comments = (Comments.select().where( Comments.user_id == slug).order_by( Comments.created.desc())) likes = Likes.select().where(Likes.user_id == slug) if likes: likes = (Likes.select().where(Likes.user_id == slug).order_by( Likes.created.desc())) loggedInUser = self.current_user numPosts = Posts.select().where(Posts.user_id == slug).count() numComments = Comments.select().where( Comments.user_id == slug).count() numLikes = Likes.select().where(Likes.user_id == slug).count() totalLikes = Likes.select( Likes.post_id).join(Posts).join(Users).where( Posts.user_id == slug).count() return self.render_template( "author.html", { 'posts': posts, 'numPosts': numPosts, 'numComments': numComments, 'numLikes': numLikes, 'comments': comments, 'likes': likes, 'user': user, 'totalLikes': totalLikes, 'loggedInUser': loggedInUser }) return self.redirect("/")
def get(self, slug): post = Posts.select().where(Posts.id == slug) if post: post = Posts.select().where(Posts.id == slug).get() comments = Comments.select().where( Comments.post_id == slug).order_by(Comments.created.desc()) # number of likes likes = Likes.select().where(Likes.post_id == slug).count() loggedInUser = self.current_user return self.render_template( "post.html", { 'post': post, 'comments': comments, 'likes': likes, 'loggedInUser': loggedInUser }) return self.redirect("/")
def count_likes(word, translation): return Likes.select().where((Likes.word == word) and (Likes.translation == translation)).count()
def get_like_message(word, translation): value = list(Likes.select().where((Likes.word == word) & (Likes.translation == translation) & (Likes.user == session["mail"]))) if len(value) == 0: return "like" return "dislike"