Skip to content

Commit e29473e

Browse files
author
aleksbobic
committed
Merge branch 'develop'
2 parents 84d9951 + b74a446 commit e29473e

File tree

5 files changed

+48
-29
lines changed

5 files changed

+48
-29
lines changed

.gitignore

+1-1
Original file line numberDiff line numberDiff line change
@@ -22,5 +22,5 @@ elasticsearch
2222
datasets
2323
metals.*
2424

25-
server/app/data/config/
25+
server/app/data/config/*
2626
!server/app/data/config/jucssm.json

app/src/components/feature/searchbar/SearchBar.component.jsx

+4
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ function SearchBar(props) {
2626
const selectedDatasetChange = e => {
2727
store.search.useDataset(e.target.value);
2828
store.workflow.resetWorkflow();
29+
store.schema.resetOverviewNodeProperties();
2930
};
3031

3132
useEffect(() => {
@@ -76,6 +77,9 @@ function SearchBar(props) {
7677
variant="filled"
7778
width="200px"
7879
borderEndRadius="0"
80+
defaultValue={localStorage.getItem(
81+
'currentDataset'
82+
)}
7983
style={{
8084
paddingLeft: '40px',
8185
textTransform: 'uppercase',

app/src/stores/SchemaStore.js

+2
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,8 @@ export class SchemaStore {
2626
makeAutoObservable(this);
2727
}
2828

29+
resetOverviewNodeProperties = () => (this.overviewDataNodeProperties = []);
30+
2931
toggleRelationship = id => {
3032
this.data = this.data.map(entry => {
3133
if (entry['id'] === id) {

server/app/controllers/graph/converter.py

+7-4
Original file line numberDiff line numberDiff line change
@@ -73,11 +73,13 @@ def get_overview_graph(
7373
):
7474
search_results_df = pd.DataFrame(search_results)
7575

76-
nodes, entries_with_nodes = get_nodes(search_results_df, links, anchor, anchor_properties)
76+
nodes, entries_with_nodes = get_nodes(
77+
search_results_df, links, anchor, anchor_properties
78+
)
7779

7880
node_ids_with_labels = get_node_ids_with_labels(nodes)
7981

80-
edge_tuples = get_overview_edge_tuples(
82+
edge_tuple_lookup = get_overview_edge_tuples(
8183
search_results_df,
8284
anchor,
8385
links,
@@ -88,8 +90,9 @@ def get_overview_graph(
8890

8991
nodes = [node for node in nodes if node["feature"] == anchor]
9092

91-
nx_edges = get_overview_nx_edges(edge_tuples)
92-
edges = get_overview_edges(edge_tuples)
93+
nx_edges = list(edge_tuple_lookup.keys())
94+
95+
edges = get_overview_edges(edge_tuple_lookup, nx_edges)
9396

9497
nodes = get_positions(nodes, nx_edges)
9598

server/app/services/graph/edge.py

+34-24
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ def get_overview_edge_tuples(
6565
nodes: List[Node],
6666
entries_with_nodes,
6767
node_ids_with_labels,
68-
) -> List[EnrichedEdgeTuple]:
68+
):
6969
overview_schema_paths = get_overview_graph_schema(anchor, links)
7070

7171
candidate_edges = []
@@ -82,6 +82,7 @@ def get_overview_edge_tuples(
8282
graph.add_edges_from(candidate_edges)
8383

8484
edge_tuples = []
85+
edge_tuple_lookup = {}
8586

8687
link_nodes = [node["id"] for node in nodes if node["feature"] in links]
8788

@@ -94,29 +95,42 @@ def get_overview_edge_tuples(
9495
node_instance for node_instance in nodes if node_instance["id"] == node
9596
][0]
9697

97-
edge_tuples.extend(
98-
[
99-
{
100-
"label": node_instance["label"],
101-
"feature": node_instance["feature"],
102-
"edge": edge,
103-
}
104-
for edge in temp_new_edge_tuples
105-
]
106-
)
107-
108-
return edge_tuples
98+
# edge_tuples.extend(
99+
# [
100+
# {
101+
# "label": node_instance["label"],
102+
# "feature": node_instance["feature"],
103+
# "edge": edge,
104+
# }
105+
# for edge in temp_new_edge_tuples
106+
# ]
107+
# )
108+
109+
for edge in temp_new_edge_tuples:
110+
if edge in edge_tuple_lookup:
111+
edge_tuple_lookup[edge].append(
112+
{
113+
"label": node_instance["label"],
114+
"feature": node_instance["feature"],
115+
}
116+
)
117+
else:
118+
edge_tuple_lookup[edge] = [
119+
{
120+
"label": node_instance["label"],
121+
"feature": node_instance["feature"],
122+
}
123+
]
124+
125+
return edge_tuple_lookup
126+
# return edge_tuples, edge_tuple_lookup
109127

110128

111129
@use_timing
112-
def get_overview_edges(
113-
enriched_edge_tuples: List[EnrichedEdgeTuple],
114-
) -> List[Edge]:
130+
def get_overview_edges(edge_tuple_lookup, nx_edges) -> List[Edge]:
115131
"""Generate a position for each node in graph."""
116132

117-
edge_tuples = [edge_tuple["edge"] for edge_tuple in enriched_edge_tuples]
118-
119-
edge_tuples_counts = Counter(edge_tuples)
133+
edge_tuples_counts = Counter(nx_edges)
120134

121135
if edge_tuples_counts.values():
122136
norm_divisor = max(edge_tuples_counts.values())
@@ -132,11 +146,7 @@ def get_overview_edges(
132146
"target": edge[1],
133147
"visible": True,
134148
"weight": round(edge_tuples_counts[edge] / norm_divisor, 2),
135-
"connections": [
136-
{"label": entry["label"], "feature": entry["feature"]}
137-
for entry in enriched_edge_tuples
138-
if entry["edge"] == edge
139-
],
149+
"connections": edge_tuple_lookup[edge],
140150
},
141151
)
142152
for edge in edge_tuples_counts

0 commit comments

Comments
 (0)