from django.shortcuts import render from linda_app.models import DatasourceDescription, get_configuration from django.core.context_processors import csrf from django.http import HttpResponse from django.shortcuts import render_to_response from django.views.decorators.csrf import csrf_exempt import requests, urllib,re VISUAL_SERVER = get_configuration().visualization_backend VISUAL_PROXY = "/visualizations/visual/api" def visualizations(request): params = {} params['VISUAL_PROXY'] = VISUAL_PROXY params['csrf_token'] = csrf(request) params['page'] = 'Visualizations' return render(request, 'visual/index.html', params) # Proxy calls - exist as middle-mans between LinDA visualizations page and the visual server @csrf_exempt def get_api_call(request, link): print(link) if ('sparql-proxy' in link) or ('dataselection' in link) or ('visualizations' in link): endpoint = 'http://localhost:3002/' else: endpoint = VISUAL_SERVER #TO-DO Improve request handler link = urllib.parse.quote(link) link = re.sub(r"\/", "%2F", link)
def install_repositories(): sesame_url = get_configuration().sesame_url # load existing repositories r = requests.get(sesame_url + 'repositories?Accept=' + urlquote('application/json')) if r.status_code != 200: return HttpResponse('Error loading repositories - ' + r.text, status=r.status_code) # parse response & check which repositories already exist existing = json.loads(r.text) linda_exists = False lov_exists = False vocabulary_exists = False visualization_exists = False query_exists = False for repository in existing['results']['bindings']: rid = repository['id']['value'] if rid == 'linda': linda_exists = True elif rid == "lov": lov_exists = True elif rid == "vocabulary": vocabulary_exists = True elif rid == "visualization": visualization_exists = True elif rid == 'QueryRepository': query_exists = True # Create any repositories that weren't found n_of_repositories = 0 # data sources if not linda_exists: create_repository_query(sesame_url, 'linda', 'LinDA private data sources repository') n_of_repositories += 1 # query builder if not query_exists: create_repository_query(sesame_url, 'QueryRepository', 'Query Repository for storing RDF2Any Queries') n_of_repositories += 1 # vocabulary if not vocabulary_exists: create_repository_query(sesame_url, 'vocabulary', 'LinDA Vocabulary Repository') n_of_repositories += 1 # visualization if not visualization_exists: vis_contents = open(os.path.join(os.path.dirname(__file__), 'data/visualization-ontology.nt')).read() create_repository_query(sesame_url, 'visualization', 'Visualization', initials=[{'data': vis_contents, 'content-type': 'text/plain', 'context': 'http://linda-project.eu/visualization-ontology'}]) n_of_repositories += 1 # lov if not lov_exists: lov_contents = open(os.path.join(os.path.dirname(__file__), 'data/lov.nt')).read() create_repository_query(sesame_url, 'lov', 'LOV', initials=[{'data': lov_contents, 'content-type': 'text/plain'}]) n_of_repositories += 1 return HttpResponse(json.dumps({'n_of_repositories': n_of_repositories}), status=200, content_type="application/json")
from django import template from django.utils.http import urlquote from endpoint_monitor.models import EndpointTest from linda_app.lists import CATEGORIES from linda_app.models import Vocabulary, VocabularyClass, VocabularyProperty, get_configuration, \ datasource_from_endpoint register = template.Library() # Load user configurable settings config = get_configuration() @register.filter(name="nice_name") def nice_name(user): return user.get_full_name() or user.username @register.filter(name="vocabularies") def vocabularies(objects): return [elem for elem in objects if isinstance(elem.object, Vocabulary) or isinstance(elem, Vocabulary)] @register.filter(name="classes") def vocabulary_classes(objects): return [elem for elem in objects if isinstance(elem.object, VocabularyClass) or isinstance(elem, VocabularyClass)] @register.filter(name="properties") def vocabulary_properties(objects): return [elem for elem in objects if isinstance(elem.object, VocabularyProperty) or isinstance(elem, VocabularyProperty)] @register.filter(name="get_endpoint") def get_endpoint(datasource): return datasource.get_endpoint()