connect traits view with backend
This commit is contained in:
parent
ab0b6efccc
commit
0a130fe955
@ -71,3 +71,45 @@ def set_questions():
|
|||||||
db.session.commit()
|
db.session.commit()
|
||||||
|
|
||||||
return {"error": 0}
|
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}
|
@ -11,9 +11,11 @@
|
|||||||
{%endfor%}
|
{%endfor%}
|
||||||
</section>
|
</section>
|
||||||
<button onclick="addNewInput()">Add new</button>
|
<button onclick="addNewInput()">Add new</button>
|
||||||
|
<button onclick="saveForm()">Save changes</button>
|
||||||
|
|
||||||
<p>Images are viewable in the npc views</p>
|
<p>Images are viewable in the npc views</p>
|
||||||
|
|
||||||
|
<script src="/static/js/api.js"></script>
|
||||||
<script>
|
<script>
|
||||||
|
|
||||||
function addNewInput(){
|
function addNewInput(){
|
||||||
@ -24,4 +26,16 @@ function addNewInput(){
|
|||||||
traits.appendChild(newTrait);
|
traits.appendChild(newTrait);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function saveForm(){
|
||||||
|
let data = [];
|
||||||
|
for(let section of traits.querySelectorAll("section")){
|
||||||
|
let trait = {};
|
||||||
|
trait["id"] = section.id
|
||||||
|
trait["name"] = section.querySelector(".name_input").value
|
||||||
|
trait["desc"] = section.querySelector(".desc_input").value
|
||||||
|
data.push(trait);
|
||||||
|
}
|
||||||
|
makeAPIRequest("admin/setTraits", {"traits": data, "lang": "FR"}, {"content": "json"})
|
||||||
|
}
|
||||||
|
|
||||||
</script>
|
</script>
|
Loading…
Reference in New Issue
Block a user