summaryrefslogtreecommitdiff
path: root/routes
diff options
context:
space:
mode:
Diffstat (limited to 'routes')
-rw-r--r--routes/base.py78
-rw-r--r--routes/get/quiz.py18
-rw-r--r--routes/set/nick.py28
-rw-r--r--routes/set/question.py40
-rw-r--r--routes/set/quiz.py13
5 files changed, 177 insertions, 0 deletions
diff --git a/routes/base.py b/routes/base.py
new file mode 100644
index 0000000..144eeef
--- /dev/null
+++ b/routes/base.py
@@ -0,0 +1,78 @@
+from app import app
+from flask import render_template,session
+import db_actions as D
+
+def get_alert():
+ if "alert" in session:
+ alert = session["alert"]
+ del session["alert"]
+ return f"{alert}"
+ return ""
+
+def get_nick():
+ while "id" in session.keys():
+ nick = D.user_get_nick(session["id"])
+ if not nick:
+ del session['id']
+ if "quiz_id" in session.keys():
+ del session['quiz_id']
+ break
+ return nick
+ return "(ei nimimerkkiä)"
+
+@app.route("/")
+def index():
+ return app.send_static_file("index.html")
+
+@app.route("/pages/info.html")
+def info():
+ return render_template("info.html",
+ alert=get_alert()
+ )
+
+@app.route("/pages/create.html")
+def create():
+ if "id" not in session.keys():
+ return "redirect = #nick"
+ if "quiz_id" not in session.keys():
+ return "redirect = #quiz"
+ return render_template("create.html",
+ alert=get_alert(),
+ nick=get_nick()
+ )
+
+@app.route("/pages/answer.html")
+def answer():
+ if "id" not in session.keys():
+ return "redirect = #nick"
+ return render_template("answer.html",
+ alert=get_alert(),
+ nick=get_nick()
+ )
+
+@app.route("/pages/analyse.html")
+def analyse():
+ if "id" not in session.keys():
+ return "redirect = #nick"
+ return render_template("analyse.html",
+ alert=get_alert(),
+ nick=get_nick()
+ )
+
+@app.route("/pages/moderate.html")
+def moderate():
+ return render_template("moderate.html",
+ alert=get_alert()
+ )
+
+@app.route("/pages/nick.html")
+def nick():
+ return render_template("nick.html", alert=get_alert() )
+
+@app.route("/pages/question.html")
+def question():
+ return render_template("question.html", alert=get_alert() )
+
+@app.route("/pages/quiz.html")
+def build():
+ return render_template("quiz.html", alert=get_alert() )
diff --git a/routes/get/quiz.py b/routes/get/quiz.py
new file mode 100644
index 0000000..69e2613
--- /dev/null
+++ b/routes/get/quiz.py
@@ -0,0 +1,18 @@
+from app import app
+from flask import render_template, session, request, redirect, jsonify
+import db_actions as D
+
+
+@app.route("/get/quiz_creator",methods=["GET"])
+def get_questions_by_id():
+ if "quiz_id" not in session.keys():
+ return "KUOLETTAVA: Sessiota / kyselmä id:tä ei ole"
+
+ results = D.get_questions(session['quiz_id'])
+ r={}
+ names=['i','q','n','p','a']
+ for i in range(len(results)):
+ r[i]={}
+ for j in range(len(results[i])):
+ r[i][names[j]]=results[i][j]
+ return (jsonify(r))
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")