def get(self, request, graphid, nodeid=None): if self.action == "export_graph": graph = get_graphs_for_export([graphid]) graph["metadata"] = system_metadata() f = JSONSerializer().serialize(graph, indent=4) graph_name = JSONDeserializer().deserialize(f)["graph"][0]["name"] response = HttpResponse(f, content_type="json/plain") response["Content-Disposition"] = 'attachment; filename="%s.json"' % (graph_name) return response elif self.action == "export_mapping_file": files_for_export = create_mapping_configuration_file(graphid, True) file_name = Graph.objects.get(graphid=graphid).name buffer = BytesIO() with zipfile.ZipFile(buffer, "w", zipfile.ZIP_DEFLATED) as zip: for f in files_for_export: f["outputfile"].seek(0) zip.writestr(f["name"], f["outputfile"].read()) zip.close() buffer.flush() zip_stream = buffer.getvalue() buffer.close() response = HttpResponse() response["Content-Disposition"] = "attachment; filename=" + file_name + ".zip" response["Content-length"] = str(len(zip_stream)) response["Content-Type"] = "application/zip" response.write(zip_stream) return response elif self.action == "get_domain_connections": res = [] graph = Graph.objects.get(graphid=graphid) ret = graph.get_valid_domain_ontology_classes() for r in ret: res.append({"ontology_property": r["ontology_property"], "ontology_classes": [c for c in r["ontology_classes"]]}) return JSONResponse(res) elif self.action == "get_nodes": graph = Graph.objects.get(graphid=graphid) return JSONResponse(graph.nodes) elif self.action == "get_related_nodes": parent_nodeid = request.GET.get("parent_nodeid", None) graph = Graph.objects.get(graphid=graphid) ret = graph.get_valid_ontology_classes(nodeid=nodeid, parent_nodeid=parent_nodeid) return JSONResponse(ret) elif self.action == "get_valid_domain_nodes": graph = Graph.objects.get(graphid=graphid) if nodeid == "": nodeid = None ret = graph.get_valid_domain_ontology_classes(nodeid=nodeid) return JSONResponse(ret) return HttpResponseNotFound()
def get(self, request, graphid, nodeid=None): if self.action == 'export_graph': graph = get_graphs_for_export([graphid]) graph['metadata'] = system_metadata() f = JSONSerializer().serialize(graph, indent=4) graph_name = JSONDeserializer().deserialize(f)['graph'][0]['name'] response = HttpResponse(f, content_type='json/plain') response['Content-Disposition'] = 'attachment; filename="%s.json"' % (graph_name) return response elif self.action == 'export_mapping_file': files_for_export = create_mapping_configuration_file(graphid, True) file_name = Graph.objects.get(graphid=graphid).name buffer = StringIO() with zipfile.ZipFile(buffer, 'w', zipfile.ZIP_DEFLATED) as zip: for f in files_for_export: f['outputfile'].seek(0) zip.writestr(f['name'], f['outputfile'].read()) zip.close() buffer.flush() zip_stream = buffer.getvalue() buffer.close() response = HttpResponse() response['Content-Disposition'] = 'attachment; filename=' + file_name + '.zip' response['Content-length'] = str(len(zip_stream)) response['Content-Type'] = 'application/zip' response.write(zip_stream) return response elif self.action == 'get_domain_connections': res = [] graph = Graph.objects.get(graphid=graphid) ontology_class = request.GET.get('ontology_class', None) ret = graph.get_valid_domain_ontology_classes() for r in ret: res.append({'ontology_property': r['ontology_property'], 'ontology_classes': [ c for c in r['ontology_classes']]}) return JSONResponse(res) else: graph = Graph.objects.get(graphid=graphid) if self.action == 'get_related_nodes': parent_nodeid = request.GET.get('parent_nodeid', None) ret = graph.get_valid_ontology_classes(nodeid=nodeid, parent_nodeid=parent_nodeid) elif self.action == 'get_valid_domain_nodes': if nodeid == '': nodeid = None ret = graph.get_valid_domain_ontology_classes(nodeid=nodeid) return JSONResponse(ret) return HttpResponseNotFound()
def get(self, request, graphid, nodeid=None): if self.action == 'export_graph': graph = get_graphs_for_export([graphid]) graph['metadata'] = system_metadata() f = JSONSerializer().serialize(graph, indent=4) graph_name = JSONDeserializer().deserialize(f)['graph'][0]['name'] response = HttpResponse(f, content_type='json/plain') response['Content-Disposition'] = 'attachment; filename="%s.json"' %(graph_name) return response elif self.action == 'export_mapping_file': files_for_export = create_mapping_configuration_file(graphid, True) file_name = Graph.objects.get(graphid=graphid).name buffer = StringIO() with zipfile.ZipFile(buffer, 'w', zipfile.ZIP_DEFLATED) as zip: for f in files_for_export: f['outputfile'].seek(0) zip.writestr(f['name'], f['outputfile'].read()) zip.close() buffer.flush() zip_stream = buffer.getvalue() buffer.close() response = HttpResponse() response['Content-Disposition'] = 'attachment; filename=' + file_name + '.zip' response['Content-length'] = str(len(zip_stream)) response['Content-Type'] = 'application/zip' response.write(zip_stream) return response elif self.action == 'get_domain_connections': res = [] graph = Graph.objects.get(graphid=graphid) ontology_class = request.GET.get('ontology_class', None) ret = graph.get_valid_domain_ontology_classes() for r in ret: res.append({'ontology_property': r['ontology_property'], 'ontology_classes':[c for c in r['ontology_classes'] if c == ontology_class]}) return JSONResponse(res) else: graph = Graph.objects.get(graphid=graphid) if self.action == 'get_related_nodes': parent_nodeid = request.GET.get('parent_nodeid', None) ret = graph.get_valid_ontology_classes(nodeid=nodeid, parent_nodeid=parent_nodeid) elif self.action == 'get_valid_domain_nodes': ret = graph.get_valid_domain_ontology_classes(nodeid=nodeid) return JSONResponse(ret) return HttpResponseNotFound()