diff --git a/truthinquiry/routes/routes_admin.py b/truthinquiry/routes/routes_admin.py index 2129968..a48ec4b 100644 --- a/truthinquiry/routes/routes_admin.py +++ b/truthinquiry/routes/routes_admin.py @@ -1,4 +1,5 @@ import flask +from sqlalchemy import select, or_ from truthinquiry.ext.database.models import * from truthinquiry.ext.database.fsa import db @@ -33,7 +34,29 @@ def npc(npc_id): @routes_admin.route("/questions") def questions(): - return flask.render_template("admin/questions.html", langs=["FR", "EN"]) + lang = "FR" + + results = db.session.execute( + select(QuestionType, Text) + .select_from(QuestionType) + .join(Locale) + .join(Text, isouter=True) + .filter(or_(Text.LANG==None, Text.LANG==lang)) + .order_by(QuestionType.QUESTION_TYPE_ID) + ) + + data = [] + old_question_type_id = None + + for question_type, locale in results: + if question_type.QUESTION_TYPE_ID != old_question_type_id: + old_question_type_id = question_type.QUESTION_TYPE_ID + data.append({"questions": []}) + + if locale: + data[-1]["questions"].append({"text": locale.TEXT}) + + return flask.render_template("admin/questions.html", questions=data, langs=["FR", "EN"]) @routes_admin.route("/places") def places(): diff --git a/truthinquiry/routes/routes_api_admin.py b/truthinquiry/routes/routes_api_admin.py index 1800fa3..42a29db 100644 --- a/truthinquiry/routes/routes_api_admin.py +++ b/truthinquiry/routes/routes_api_admin.py @@ -7,41 +7,12 @@ from truthinquiry.ext.database.fsa import db routes_api_admin = flask.Blueprint("api_admin", __name__) -@routes_api_admin.route("/getQuestions", methods=["GET", "POST"]) -def get_questions(): - lang = flask.request.values.get("lang") - if lang is None: - return {"error": 1, "msg": "lang not set"} - - - results = db.session.execute( - select(QuestionType, Text) - .select_from(QuestionType) - .join(Locale) - .join(Text, isouter=True) - .filter(or_(Text.LANG==None, Text.LANG==lang)) - .order_by(QuestionType.QUESTION_TYPE_ID) - ) - - data = [] - old_question_type_id = None - - for question_type, locale in results: - if question_type.QUESTION_TYPE_ID != old_question_type_id: - old_question_type_id = question_type.QUESTION_TYPE_ID - data.append([]) - - if locale: - data[-1].append({"text": locale.TEXT}) - - return data - @routes_api_admin.route("/setQuestions", methods=["GET", "POST"]) def set_questions(): if not flask.request.json: return {"error": 1, "msg": "no json set"} lang = flask.request.json["lang"] - question_types = flask.request.json["questions"] + all_questions = flask.request.json["questions"] # Delete old questions text_ids_requ = ( @@ -63,8 +34,8 @@ def set_questions(): # set new questions text_obs = [] - for question_lid, questions in zip(question_lids, question_types): - for question in questions: + for question_lid, questionType in zip(question_lids, all_questions): + for question in questionType["questions"]: text_obs.append(Text(None, question_lid, lang, question["text"])) db.session.add_all(text_obs) diff --git a/truthinquiry/templates/admin/questions.html b/truthinquiry/templates/admin/questions.html index 6ff811b..0e85c4e 100644 --- a/truthinquiry/templates/admin/questions.html +++ b/truthinquiry/templates/admin/questions.html @@ -1,24 +1,40 @@ go Back
- {%for lang in langs%} {%endfor%} -
-
+
+ {%for questionType in questions%} +
+
+ {%for question in questionType["questions"]%} +
+ + +
+ {%endfor%} +
+ +
+ {%endfor%} +
+ +
@@ -26,69 +42,37 @@