From c1edea4dc378bf4639c7a1f0befb626a839aea8d Mon Sep 17 00:00:00 2001 From: rubenwardy Date: Thu, 19 Aug 2021 13:45:32 +0100 Subject: [PATCH] Allow removing review votes Fixes #328 --- app/blueprints/packages/reviews.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/app/blueprints/packages/reviews.py b/app/blueprints/packages/reviews.py index b902310..e39da8f 100644 --- a/app/blueprints/packages/reviews.py +++ b/app/blueprints/packages/reviews.py @@ -161,15 +161,19 @@ def handle_review_vote(package: Package, review_id: int): flash("You can't vote on your own reviews!", "danger") return + is_positive = isYes(request.form["is_positive"]) + vote = PackageReviewVote.query.filter_by(review=review, user=current_user).first() if vote is None: vote = PackageReviewVote() vote.review = review vote.user = current_user - vote.is_positive = isYes(request.form["is_positive"]) + vote.is_positive = is_positive db.session.add(vote) + elif vote.is_positive == is_positive: + db.session.delete(vote) else: - vote.is_positive = isYes(request.form["is_positive"]) + vote.is_positive = is_positive review.update_score() db.session.commit()