From 2374693a86532637ccf472af5960e68851308528 Mon Sep 17 00:00:00 2001 From: Terry Truong Date: Mon, 20 Jun 2022 15:06:03 +1000 Subject: Make server order children by num-tips --- backend/server.py | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'backend') diff --git a/backend/server.py b/backend/server.py index 9191d8a..5525eb5 100755 --- a/backend/server.py +++ b/backend/server.py @@ -47,9 +47,19 @@ def lookupNodes(names, useReducedTree): "commonName": None, "imgName": None, } + # Get child info query = f"SELECT node, child FROM {edgesTable} WHERE node IN ({queryParamStr})" for (nodeName, childName) in cur.execute(query, names): nodeObjs[nodeName]["children"].append(childName) + # Order children by tips + for (nodeName, nodeObj) in nodeObjs.items(): + childList = nodeObj["children"] + childToTips = {} + query = "SELECT name, tips FROM {} WHERE name IN ({})".format(nodesTable, ",".join(["?"] * len(childList))) + for (n, tips) in cur.execute(query, childList): + childToTips[n] = tips + childList.sort(key=lambda n: childToTips[n], reverse=True) + # Get parent info query = f"SELECT node, child, p_support FROM {edgesTable} WHERE child IN ({queryParamStr})" for (nodeName, childName, pSupport) in cur.execute(query, names): nodeObjs[childName]["parent"] = None if nodeName == "" else nodeName -- cgit v1.2.3