Skip to content

Commit

Permalink
chg: [history_session] save new query in tree
Browse files Browse the repository at this point in the history
  • Loading branch information
DavidCruciani committed Mar 11, 2024
1 parent c218090 commit f0fff0d
Show file tree
Hide file tree
Showing 2 changed files with 46 additions and 22 deletions.
14 changes: 6 additions & 8 deletions website/app/history/history_core.py
Expand Up @@ -31,23 +31,22 @@ def get_history_session():
# It's already save in history
# Only parent-child tree structure is in flask session
current_query_value = sess.get(current_query)
if current_query_value and current_query_value["children"]:
if current_query_value:
loc_list.append(current_query_value)
for q in sess:
if isUUID(q):
# If query have no children then don't display it
q_value = sess.get(q)
if q_value["children"]:
if not q == current_query:
loc_list.append(q_value)
if not q == current_query:
loc_list.append(q_value)

return loc_list

def get_current_query_history():
current_query = sess.get("current_query")
if current_query:
current_query_value = sess.get(current_query)
if current_query_value and current_query_value["children"]:
if current_query_value:
return current_query_value
return {}

Expand Down Expand Up @@ -163,9 +162,8 @@ def remove_node_session(node_uuid):
if q_value["uuid"] == node_uuid:
loc = i
break
else:
if q_value["children"]:
return util_remove_node_session(node_uuid, q_value, sess[keys_list[i]])
elif q_value["children"]:
return util_remove_node_session(node_uuid, q_value, sess[keys_list[i]])
if loc:
del sess[keys_list[i]]

Expand Down
54 changes: 40 additions & 14 deletions website/app/home_core.py
@@ -1,5 +1,5 @@
import json
from .utils.utils import query_get_module
from .utils.utils import isUUID, query_get_module
from . import db
from .db_class.db import History, Module, Config, Module_Config, Session_db, History_Tree
from flask import session as sess
Expand Down Expand Up @@ -150,27 +150,28 @@ def get_history():

def create_new_session_tree(current_session, parent_id):
loc_session = get_session(parent_id)
loc_json = {
"uuid": loc_session.uuid,
"modules": json.loads(loc_session.modules_list),
"query": loc_session.query_enter,
"input": loc_session.input_query,
"query_date": loc_session.query_date.strftime('%Y-%m-%d %H:%M'),
"config": json.loads(loc_session.config_module)
}

loc_json_child = {
"uuid": current_session.uuid,
"modules": current_session.modules_list,
"query": current_session.query,
"input": current_session.input_query,
"query_date": current_session.query_date.strftime('%Y-%m-%d'),
"config": current_session.config_module,
"children": []
"children": list()
}
loc_json = {
"uuid": loc_session.uuid,
"modules": json.loads(loc_session.modules_list),
"query": loc_session.query_enter,
"input": loc_session.input_query,
"query_date": loc_session.query_date.strftime('%Y-%m-%d %H:%M'),
"config": json.loads(loc_session.config_module),
"children" : [loc_json_child]
}

sess["current_query"] = loc_session.uuid
sess[sess.get("current_query")] = loc_json
sess[sess.get("current_query")]["children"] = [loc_json_child]

def util_set_flask_session(parent_id, loc_session, current_session):
if parent_id == loc_session["uuid"]:
Expand Down Expand Up @@ -201,9 +202,34 @@ def set_flask_session(current_session, parent_id):
if not current_query or current_query not in sess:
create_new_session_tree(current_session, parent_id)
else:
# sess["uuid"]
loc_session = sess.get(sess.get("current_query"))
## Check in current query
loc_session = sess.get(current_query)
if not "children" in loc_session:
loc_session["children"] = list()
## If not in current query, current query change for an other one
if not util_set_flask_session(parent_id, loc_session, current_session):
create_new_session_tree(current_session, parent_id)
# sess["uuid"]
for q in sess:
if isUUID(q) and not q == current_query:
loc_session = sess.get(q)
if not "children" in loc_session:
loc_session["children"] = list()
if util_set_flask_session(parent_id, loc_session, current_session):
sess["current_query"] = q
flag = False
break
if flag:
create_new_session_tree(current_session, parent_id)
else:
loc_json = {
"uuid": current_session.uuid,
"modules": current_session.modules_list,
"query": current_session.query,
"input": current_session.input_query,
"query_date": current_session.query_date.strftime('%Y-%m-%d %H:%M'),
"config": current_session.config_module,
"children": list()
}

sess["current_query"] = current_session.uuid
sess[sess.get("current_query")] = loc_json

0 comments on commit f0fff0d

Please sign in to comment.