Added add achievement field

This commit is contained in:
Robbe Van Herck 2018-07-18 19:10:55 +02:00
parent 39eb8b703c
commit d266062856
No known key found for this signature in database
GPG key ID: 4D1C8E8FBD1C7188
2 changed files with 33 additions and 11 deletions

View file

@ -0,0 +1,15 @@
<html>
<body>
<form action="" method="post">
{{ form.csrf }}
<div class="input text">
{{ form.name.label }} {{ form.name }}
</div>
<div class="input submit">
<input type="submit" value="Add" />
</div>
</form>
</body>
</html>

27
user.py
View file

@ -1,22 +1,28 @@
from app import app, db from app import app, db
from models import User, Achievement from models import User, Achievement
from flask import request, render_template from flask import request, render_template, redirect, url_for
from flask_login import current_user, login_required from flask_login import current_user, login_required
from wtforms import Form, TextField, validators
import json import json
@app.route("/users/<id>/addachievement") class AchievementForm(Form):
name = TextField("Name: ", validators=[validators.required()])
@app.route("/users/<id>/addachievement", methods=["GET", "POST"])
@login_required @login_required
def add_achievement(id): def add_achievement(id):
name = request.args.get("name") form = AchievementForm(request.form)
if not name: if request.method == "POST":
return "No name supplied" name = request.form["name"]
achievement = Achievement(name=name, achieved_by=id) if form.validate():
achievement.endorsed_by.append(current_user) achievement = Achievement(name=name, achieved_by=id)
db.session.add(achievement) achievement.endorsed_by.append(current_user)
db.session.commit() db.session.add(achievement)
return "OK" db.session.commit()
return redirect(url_for("get_user", id=id))
return render_template("newachievement.html", form=form)
@app.route("/users/<id>") @app.route("/users/<id>")
def get_user(id): def get_user(id):
@ -25,6 +31,7 @@ def get_user(id):
return "Unknown user" return "Unknown user"
return render_template("user.html", data=user.to_obj()) return render_template("user.html", data=user.to_obj())
@app.route("/")
@app.route("/users/") @app.route("/users/")
def all_users(): def all_users():
return render_template("allusers.html", data=[user.to_obj() for user in User.query.all()]) return render_template("allusers.html", data=[user.to_obj() for user in User.query.all()])