diff options
Diffstat (limited to 'routes/set')
-rw-r--r-- | routes/set/nick.py | 28 | ||||
-rw-r--r-- | routes/set/question.py | 40 | ||||
-rw-r--r-- | routes/set/quiz.py | 13 |
3 files changed, 81 insertions, 0 deletions
diff --git a/routes/set/nick.py b/routes/set/nick.py new file mode 100644 index 0000000..67ddeea --- /dev/null +++ b/routes/set/nick.py @@ -0,0 +1,28 @@ +from app import app +from flask import render_template, session, request, redirect +import db_actions as D + + +@app.route("/set/nick",methods=["POST"]) +def new_nick(): + nick = request.form["nick"] + if "id" in session.keys(): + msg = "You already have a nick." + elif D.user_exists(nick): + msg = "Nick is already reserved." + elif msg := invalid_nick(nick): + pass + else: + session["id"] = D.user_new(nick) + return redirect("/") + session["alert"]="Nick in not created: "+msg + return redirect("/#nick") + + +def invalid_nick(nick): + if len(nick)<4: + return "Nick is too short" + if not nick.isalnum(): + return "Only letters and numbers are allowed" + return 0 +
\ No newline at end of file diff --git a/routes/set/question.py b/routes/set/question.py new file mode 100644 index 0000000..deaf9be --- /dev/null +++ b/routes/set/question.py @@ -0,0 +1,40 @@ +from app import app +from flask import render_template, session, request, redirect +import db_actions as D + + +def validate_answer(ans): + if len(ans)<1: + return False + return True + +def validate_question(question): + if len(question)<2: + return False + return True + +@app.route("/set/question",methods=["POST"]) +def new_question(): + question = request.form["question"] + neg_ans = request.form["neg_ans"] + pos_ans = request.form["pos_ans"] + answer = request.form["answer"] + if not validate_question(question): + msg = "Kysymys on virheellinen" + elif not validate_answer(neg_ans): + msg = "Vasen selite on virheellinen" + elif not validate_answer(pos_ans): + msg = "Oikea selite on virheellinen" + elif "id" not in session.keys(): + msg = "Tarvitaan nimimerkki" + elif "quiz_id" not in session.keys(): + msg = "Ei voi lisätä kysymystä ilman kyselmää" + else: + quiz_id = session["quiz_id"] + user_id = session["id"] + question_id = D.question_new( question, neg_ans, pos_ans ) + D.quiz_add(quiz_id, question_id) + D.answer_new(user_id, question_id, answer) + return redirect("/#create") + session["alert"]="Kysymystä ei luotu: "+msg + return redirect("/#create") diff --git a/routes/set/quiz.py b/routes/set/quiz.py new file mode 100644 index 0000000..9ad13da --- /dev/null +++ b/routes/set/quiz.py @@ -0,0 +1,13 @@ +from app import app +from flask import render_template, session, request, redirect +import db_actions as D + + +@app.route("/set/quiz",methods=["POST"]) +def new_quiz(): + if not "id" in session.keys(): + session["alert"]="Tarvitset nimimerkin loudaksesi" + return redirect("/#nick") + user_id = session["id"] + session["quiz_id"] = D.quiz_new( user_id ) + return redirect("/#create") |