示例#1
0
文件: views.py 项目: VPH-Share/portal
def dataset_query_service( request ):
    """
        Complex Query Service
    """

    if request.method == 'POST':
        query_request = simplejson.loads(request.POST['groups_query'])
        id = request.POST.get('id', "")
        endpoint = request.POST.get('endpoint', "")

        query_sparql = json2sparql(query_request)

        import re

        r = re.compile('sparqlEndpoint=(.*?)&')
        endpoint_url = r.search(endpoint)
        from masterinterface.atos.exceptions import AtosPermissionException
        try:
            connector = json.dumps(dataset_query_connector(query_sparql, endpoint_url, request.user.username, request.ticket), sort_keys=False)
        except AtosPermissionException, e:
            response = HttpResponse(status=401)
            response._is_string = False
            return response


        response = HttpResponse(content=connector,
                                content_type='application/json ')
        response._is_string = False

        return response
示例#2
0
文件: views.py 项目: VPH-Share/portal
def annotation_search_view(request):
    """
        annotation Search view
    """
    dataset = ''
    datasetLabel = ''
    conceptClass = ''
    conceptLabel = ''
    user = request.user
    name = 'query-' + datetime.utcnow().strftime("%Y-%m-%d-%H:%M")
    results = ''
    explore = ''
    if request.GET.get('groups_query', None) is not None:

        groups_query = unquote(request.GET['groups_query'])
        load_groups = simplejson.loads(groups_query)
        dataset = unquote(request.GET['dataset'])
        datasetLabel = unquote(request.GET['datasetLabel'])
        conceptClass = class_search_connector(None, datasetLabel, num_max_hits='200', page_num='1').get('1',[])

        import re
        r = re.compile('sparqlEndpoint=(.*?)&')
        endpoint_url = r.search(dataset)
        ####### Save History #######
        query_obj = Query(name=name, query=groups_query)
        query_obj.save()
        query_obj.user.add(user)
        query_sparql = json2sparql(load_groups)
        results =dataset_query_connector(query_sparql, endpoint_url, request.user.username, request.ticket)
    elif request.GET.get('id', None) is not None:

        query_obj = Query.objects.get(id=request.GET['id'])
        groups_query = unquote(query_obj.query)
        load_groups = simplejson.loads(groups_query)

        ####### Save History #######
        query_obj = Query.objects.get(id=id)
        if not query_obj.saved:
            query_obj.name = name
        query_obj.query = groups_query
        query_obj.date = datetime.utcnow()
        query_obj.save()
        query_obj.user.add(user)

        results = complex_query_connector(load_groups, request.user)
    if request.GET.get('dataset', None) is not None:
        dataset = unquote(request.GET['dataset'])
        datasetLabel = unquote(request.GET['datasetLabel'])
        import re
        r = re.compile('sparqlEndpoint=(.*?)&')
        endpoint_url = r.search(dataset)
        if 'read/sparql' in endpoint_url.group(1):
            explore = endpoint_url.group(1).replace('read/sparql', 'explore/sql.html')
            explore = explore.replace('https://','https://*****:*****@'%request.ticket)
        conceptClass = class_search_connector(None, datasetLabel, num_max_hits='200', page_num='1').get('1',[])
        #conceptClass = unquote(request.GET['conceptClass'])
        #conceptClassLabel = unquote(request.GET['conceptLabel'])
        #annotations = annotation_search_connector(None, dataset, conceptClass, conceptClassLabel, num_max_hits='200', page_num='1')

    return render_to_response('scs_search/scs_search.html',
                              {'search': 'complex', 'results': results, 'dataset': dataset, 'datasetLabel': datasetLabel
                                  , 'class': conceptClass, 'breadcrum': [1, 1, 1], 'classLabel': conceptLabel, 'conceptClass': conceptClass, 'explore':explore},
                              RequestContext(request))