From bfe2a86d392eaba91cd2ad1c9c233fafdad22004 Mon Sep 17 00:00:00 2001 From: Robbe Van Herck Date: Tue, 17 Jul 2018 09:56:02 +0200 Subject: [PATCH] Added endorse/unendorse switching --- achievements.py | 8 ++++---- templates/achievement.html | 14 ++++++++++++-- templates/user.html | 4 +++- 3 files changed, 19 insertions(+), 7 deletions(-) diff --git a/achievements.py b/achievements.py index 4fd507e..a6be9bf 100644 --- a/achievements.py +++ b/achievements.py @@ -1,7 +1,7 @@ from app import app, db from models import Achievement -from flask import render_template +from flask import render_template, redirect, url_for from flask_login import current_user, login_required import json @@ -11,7 +11,7 @@ def get_achievement(id): achievement = Achievement.query.filter_by(id=id).first() if not achievement: return "Unknown achievement" - return render_template("achievement.html", data=achievement) + return render_template("achievement.html", data=achievement, endorsed=(current_user in achievement.endorsed_by)) @app.route("/achievement//endorse") @login_required @@ -24,7 +24,7 @@ def endorse_achievement(id): achievement.endorsed_by.append(current_user) db.session.add(achievement) db.session.commit() - return "OK" + return redirect(url_for("get_achievement", id=id)) @app.route("/achievement//unendorse") @login_required @@ -37,4 +37,4 @@ def unendorse_achievement(id): achievement.endorsed_by.remove(current_user) db.session.add(achievement) db.session.commit() - return "OK" \ No newline at end of file + return redirect(url_for("get_achievement", id=id)) \ No newline at end of file diff --git a/templates/achievement.html b/templates/achievement.html index 2acb331..38b05e0 100644 --- a/templates/achievement.html +++ b/templates/achievement.html @@ -3,9 +3,19 @@

{{data.name}}

\ No newline at end of file diff --git a/templates/user.html b/templates/user.html index 7b4a434..2ed237e 100644 --- a/templates/user.html +++ b/templates/user.html @@ -3,7 +3,9 @@

{{data.id}}

    {% for achievement in data.achievements -%} -
  • {{ achievement.name }}: {{ achievement.endorsed_by|length }} endorsement{{ "s" if (achievement.endorsed_by|length != 1) else "" }}
  • +
  • + {{ achievement.name }}: {{ achievement.endorsed_by|length }} endorsement{{ "s" if (achievement.endorsed_by|length != 1) else "" }} +
  • {% endfor -%}
  • Add achievement