From 969ef67c08578c944867ff3c6a0c0122afe38876 Mon Sep 17 00:00:00 2001 From: Thomas Rubini <74205383+ThomasRubini@users.noreply.github.com> Date: Sat, 18 Mar 2023 16:38:27 +0100 Subject: [PATCH 1/4] add traits back office view --- truthinquiry/ext/database/models.py | 5 ++++- truthinquiry/routes/routes_admin.py | 6 ++++++ truthinquiry/templates/admin/index.html | 2 +- truthinquiry/templates/admin/reactions.html | 1 - truthinquiry/templates/admin/traits.html | 14 ++++++++++++++ 5 files changed, 25 insertions(+), 3 deletions(-) delete mode 100644 truthinquiry/templates/admin/reactions.html create mode 100644 truthinquiry/templates/admin/traits.html diff --git a/truthinquiry/ext/database/models.py b/truthinquiry/ext/database/models.py index 5c16f5d..11e4610 100644 --- a/truthinquiry/ext/database/models.py +++ b/truthinquiry/ext/database/models.py @@ -159,7 +159,10 @@ class Trait(Base): self.DESC_LID = DESC_LID def __str__(self) -> str: - return f"{self.TRAIT_ID} {self.NAME_LID}" + return f"Trait(TRAIT_ID={self.TRAIT_ID}, NAME_LID={self.NAME_LID}, DESC_LID={self.DESC_LID})" + + def __repr__(self) -> str: + return self.__str__() class Reaction(Base): diff --git a/truthinquiry/routes/routes_admin.py b/truthinquiry/routes/routes_admin.py index 5a43e1f..2129968 100644 --- a/truthinquiry/routes/routes_admin.py +++ b/truthinquiry/routes/routes_admin.py @@ -40,3 +40,9 @@ def places(): places_objs = db.session.query(Place).all() places_dicts = [{"id": place_obj.PLACE_ID, "name": place_obj.LOCALE.TEXTS[0].TEXT} for place_obj in places_objs] return flask.render_template("admin/places.html", places=places_dicts) + +@routes_admin.route("/traits") +def traits(): + traits_objs = db.session.query(Trait).all() + traits_dicts = [{"id": trait_obj.TRAIT_ID, "name": trait_obj.Name.TEXTS[0].TEXT, "desc": trait_obj.Desc.TEXTS[0].TEXT} for trait_obj in traits_objs] + return flask.render_template("admin/traits.html", traits=traits_dicts) diff --git a/truthinquiry/templates/admin/index.html b/truthinquiry/templates/admin/index.html index a0af4a7..6d9d545 100644 --- a/truthinquiry/templates/admin/index.html +++ b/truthinquiry/templates/admin/index.html @@ -2,7 +2,7 @@
Places
- Reactions + Traits

NPC list :

{%for npc in npcs%} diff --git a/truthinquiry/templates/admin/reactions.html b/truthinquiry/templates/admin/reactions.html deleted file mode 100644 index 1583b05..0000000 --- a/truthinquiry/templates/admin/reactions.html +++ /dev/null @@ -1 +0,0 @@ - go Back
diff --git a/truthinquiry/templates/admin/traits.html b/truthinquiry/templates/admin/traits.html new file mode 100644 index 0000000..8769148 --- /dev/null +++ b/truthinquiry/templates/admin/traits.html @@ -0,0 +1,14 @@ + go Back
+ +
+ {%for trait in traits%} +
+

Name:

+ +

Description:

+ +
+ {%endfor%} +
+ +

Images are viewable in the npc views

\ No newline at end of file From f73f0801d7ab85c1a36186eae7b88f4015e4d996 Mon Sep 17 00:00:00 2001 From: Thomas Rubini <74205383+ThomasRubini@users.noreply.github.com> Date: Sat, 18 Mar 2023 17:18:43 +0100 Subject: [PATCH 2/4] add "Add new" button for traits --- truthinquiry/templates/admin/traits.html | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/truthinquiry/templates/admin/traits.html b/truthinquiry/templates/admin/traits.html index 8769148..cecb49c 100644 --- a/truthinquiry/templates/admin/traits.html +++ b/truthinquiry/templates/admin/traits.html @@ -1,14 +1,26 @@ go Back
-
+
{%for trait in traits%}

Name:

- +

Description:

- +
{%endfor%}
+ -

Images are viewable in the npc views

\ No newline at end of file +

Images are viewable in the npc views

+ + \ No newline at end of file From ab0b6efccc72d9ebb133df542bd8380e85ce47d2 Mon Sep 17 00:00:00 2001 From: Thomas Rubini <74205383+ThomasRubini@users.noreply.github.com> Date: Sat, 18 Mar 2023 18:34:31 +0100 Subject: [PATCH 3/4] fix id not being reset on new traits --- truthinquiry/templates/admin/traits.html | 1 + 1 file changed, 1 insertion(+) diff --git a/truthinquiry/templates/admin/traits.html b/truthinquiry/templates/admin/traits.html index cecb49c..0470ca9 100644 --- a/truthinquiry/templates/admin/traits.html +++ b/truthinquiry/templates/admin/traits.html @@ -18,6 +18,7 @@ function addNewInput(){ let newTrait = traits.lastElementChild.cloneNode(true); + newTrait.id = ""; newTrait.querySelector(".name_input").value = ""; newTrait.querySelector(".desc_input").value = ""; traits.appendChild(newTrait); From 0a130fe955bbc2c77606c8cda420eb36e4e26c58 Mon Sep 17 00:00:00 2001 From: Thomas Rubini <74205383+ThomasRubini@users.noreply.github.com> Date: Sat, 18 Mar 2023 18:34:57 +0100 Subject: [PATCH 4/4] connect traits view with backend --- truthinquiry/routes/routes_api_admin.py | 42 ++++++++++++++++++++++++ truthinquiry/templates/admin/traits.html | 16 ++++++++- 2 files changed, 57 insertions(+), 1 deletion(-) diff --git a/truthinquiry/routes/routes_api_admin.py b/truthinquiry/routes/routes_api_admin.py index ea0fdad..5d17812 100644 --- a/truthinquiry/routes/routes_api_admin.py +++ b/truthinquiry/routes/routes_api_admin.py @@ -71,3 +71,45 @@ def set_questions(): db.session.commit() return {"error": 0} + +@routes_api_admin.route("/setTraits", methods=["GET", "POST"]) +def set_traits(): + input_lang = flask.request.json["lang"] + input_traits = flask.request.json["traits"] + + + db_traits = db.session.query(Trait).all() + + modified_db_traits = [] + for input_trait in input_traits: + if input_trait["id"]: + # modify + db_trait = list(filter(lambda db_trait: db_trait.TRAIT_ID == int(input_trait["id"]), db_traits))[0] + + db.session.delete(db_trait.Name.TEXTS[0]) + db.session.delete(db_trait.Desc.TEXTS[0]) + db_trait.Name.TEXTS = [Text(None, None, input_lang, input_trait["name"])] + db_trait.Desc.TEXTS = [Text(None, None, input_lang, input_trait["desc"])] + + db.session.add(db_trait) + modified_db_traits.append(db_trait) + else: + # add + new_trait = Trait(None, None, None) + + new_trait.Name = Locale(None) + new_trait.Desc = Locale(None) + + new_trait.Name.TEXTS.append(Text(None, None, input_lang, input_trait["name"])) + new_trait.Desc.TEXTS.append(Text(None, None, input_lang, input_trait["desc"])) + + db.session.add(new_trait) + + # delete + for db_trait in db_traits: + if db_trait not in modified_db_traits: + db.session.remove() + + db.session.commit() + + return {"error": 0} \ No newline at end of file diff --git a/truthinquiry/templates/admin/traits.html b/truthinquiry/templates/admin/traits.html index 0470ca9..b6b380e 100644 --- a/truthinquiry/templates/admin/traits.html +++ b/truthinquiry/templates/admin/traits.html @@ -11,12 +11,14 @@ {%endfor%}
+

Images are viewable in the npc views

+ \ No newline at end of file