diff --git a/drugstone/urls.py b/drugstone/urls.py index 959a161b9e6ffb3a3b7cfb9feb05781c6f7850cf..eb547c75c0b82fa759778cc5820f1924e261a9e0 100755 --- a/drugstone/urls.py +++ b/drugstone/urls.py @@ -19,7 +19,7 @@ from django.urls import path from drugstone.views import map_nodes, tasks_view, result_view, \ graph_export, TissueView, TissueExpressionView, query_tissue_proteins, TaskView, \ adjacent_drugs, adjacent_disorders, fetch_edges, create_network, load_network, get_license, get_datasets, \ - get_max_tissue_expression, convert_compact_ids, get_default_params, send_bugreport, save_selection, get_view + get_max_tissue_expression, convert_compact_ids, get_default_params, send_bugreport, save_selection, get_view, get_view_infos # cache time is 6 hours urlpatterns = [ @@ -44,5 +44,6 @@ urlpatterns = [ path('get_license', get_license), path('send_bugreport/', send_bugreport), path('save_selection', save_selection), - path('view/', get_view) + path('view/', get_view), + path('view_infos', get_view_infos) ] diff --git a/drugstone/views.py b/drugstone/views.py index 375c60258411a3f3b6a0c7b6b9683df9609d457a..e4cf1bb1a39f6546f4e7c50b13222db75f9a8fa7 100755 --- a/drugstone/views.py +++ b/drugstone/views.py @@ -697,7 +697,7 @@ def save_selection(request) -> Response: config = request.data.get("config") network = request.data.get("network") - Network.objects.create(id=token_str, config=config, nodes=network["nodes"], edges=network["edges"]) + Network.objects.create(id=token_str, config=json.dumps(config), nodes=json.dumps(network["nodes"]), edges=json.dumps(network["edges"])) return Response({ 'token': token_str, }) @@ -707,14 +707,25 @@ def get_view(request) -> Response: token = request.query_params.get('token') network = Network.objects.get(id=token) return Response({ - 'config': network.config, + 'config': json.loads(network.config), + 'created_at': network.created_at, 'network': { - 'nodes': network.nodes, - 'edges': network.edges, + 'nodes': json.loads(network.nodes), + 'edges': json.loads(network.edges), } }) +@api_view(['POST']) +def get_view_infos(request) -> Response: + tokens = request.data.get('tokens') + networks = Network.objects.filter(id__in = tokens) + return Response([{ + 'token': n.id, + 'created_at': n.created_at, + } for n in networks]) + + @api_view(['GET']) def get_max_tissue_expression(request) -> Response: tissue = Tissue.objects.get(id=request.query_params.get('tissue'))