Example #1
0
    def get(self, request):

        if not request.user.is_authenticated():
            log.error(
                'ParallelKeysHandler.read attempted with unauthenticated user.'
            )
            return Response(status=status.HTTP_401_UNAUTHORIZED)

        mdts_ids = None
        docrule_id = request.GET.get('docrule', None)
        key_name = request.GET.get('key', None)
        autocomplete_req = request.GET.get('req', None)

        if not docrule_id:
            mdts_ids = request.GET.get('mdt_ids', None)
            if not mdts_ids:
                return Response([], status=status.HTTP_400_BAD_REQUEST)

        if (docrule_id or mdts_ids) and key_name and autocomplete_req:
            manager = MetaDataTemplateManager()
            if mdts_ids:
                doc_mdts = manager.get_mdts_by_name(mdts_ids)
            else:
                doc_mdts = manager.get_mdts_for_docrule(docrule_id)
            resp = process_pkeys_request(docrule_id, key_name,
                                         autocomplete_req, doc_mdts)
            return Response(resp)
        else:
            return Response(status=status.HTTP_404_NOT_FOUND)
Example #2
0
    def get(self, request):

        if not request.user.is_authenticated():
            log.error('ParallelKeysHandler.read attempted with unauthenticated user.')
            return Response(status=status.HTTP_401_UNAUTHORIZED)

        mdts_ids = None
        docrule_id = request.GET.get('docrule', None)
        key_name = request.GET.get('key', None)
        autocomplete_req = request.GET.get('req', None)

        if not docrule_id:
            mdts_ids = request.GET.get('mdt_ids', None)
            if not mdts_ids:
                return Response([], status=status.HTTP_400_BAD_REQUEST)

        if (docrule_id or mdts_ids) and key_name and autocomplete_req:
            manager = MetaDataTemplateManager()
            if mdts_ids:
                doc_mdts = manager.get_mdts_by_name(mdts_ids)
            else:
                doc_mdts = manager.get_mdts_for_docrule(docrule_id)
            resp = process_pkeys_request(docrule_id, key_name, autocomplete_req, doc_mdts)
            return Response(resp)
        else:
            return Response(status=status.HTTP_404_NOT_FOUND)
Example #3
0
    def read(self, request):

        if not request.user.is_authenticated():
            log.error('ParallelKeysHandler.read attempted with unauthenticated user.')
            return rc.FORBIDDEN

        mdts_ids = None
        docrule_id = request.GET.get('docrule', None)
        key_name = request.GET.get('key', None)
        autocomplete_req = request.GET.get('req', None)

        if not docrule_id:
            mdts_ids = request.GET.get('mdt_ids', None)
            if not mdts_ids:
                return rc.BAD_REQUEST

        if (docrule_id or mdts_ids) and key_name and autocomplete_req:
            manager = MetaDataTemplateManager()
            if mdts_ids:
                doc_mdts = manager.get_mdts_by_name(mdts_ids)
            else:
                doc_mdts = manager.get_mdts_for_docrule(docrule_id)
            resp = process_pkeys_request(docrule_id, key_name, autocomplete_req, doc_mdts)
            return resp
        else:
            return rc.NOT_FOUND
Example #4
0
def mdt_parallel_keys(request):
    """Returns suggestions for autocomplete

    Renders parallel keys and simple "one key" requests.
    NB, Don't rename this to parallel_keys. It conflicts with imported lib of same name.

    @param request: is a Django request object
    """
    # Limiting autocomplete to start searching from NUMBER of keys
    # Change it to 0 to search all, starting from empty value
    letters_limit = 2
    # Limit of response results
    suggestions_limit = 8

    valid_call = True
    autocomplete_req = None
    docrule_id = None
    key_name = None
    doc_mdts = {}
    resp = []
    # Trying to get docrule for indexing calls
    try:
        docrule_id = request.session['indexing_docrule_id']
    except KeyError:
        pass

    # Trying to get docrule for searching calls
    try:
        if not docrule_id:
            docrule_id = request.session['searching_docrule_id']
        # No docrule present in session. Invalidating view call.
        if not docrule_id:
            valid_call = False
    except KeyError:
        pass

    try:
        key_name = request.POST[u'key_name']
        autocomplete_req = request.POST[u'autocomplete_search[term]'].strip(' \t\n\r')
    except KeyError:
        valid_call = False

    try:
        doc_mdts = request.session["mdts"]
    except KeyError:
        pass

    try:
        doc_mdts = request.session["edit_mdts"]
    except KeyError:
        pass

    # Nothing queried for autocomplete and no MDTS found. Invalidating call
    if not autocomplete_req or not doc_mdts:
        valid_call = False

    log.debug(
        'mdt_parallel_keys call: docrule_id: "%s", key_name: "%s", autocomplete: "%s" Call is valid: "%s", MDTS: %s' %
        (docrule_id, key_name, autocomplete_req, valid_call, doc_mdts.__len__())
    )

    if valid_call:
        resp = process_pkeys_request(docrule_id, key_name, autocomplete_req, doc_mdts, letters_limit, suggestions_limit)
    log.debug('mdt_parallel_keys response: %s' % resp)
    return HttpResponse(json.dumps(resp), mimetype="application/json")
Example #5
0
def mdt_parallel_keys(request):
    """Returns suggestions for autocomplete

    Renders parallel keys and simple "one key" requests.
    NB, Don't rename this to parallel_keys. It conflicts with imported lib of same name.

    @param request: is a Django request object
    """
    # Limiting autocomplete to start searching from NUMBER of keys
    # Change it to 0 to search all, starting from empty value
    letters_limit = 2
    # Limit of response results
    suggestions_limit = 8

    valid_call = True
    autocomplete_req = None
    docrule_id = None
    key_name = None
    doc_mdts = {}
    resp = []
    # Trying to get docrule for indexing calls
    try:
        docrule_id = request.session['indexing_docrule_id']
    except KeyError:
        pass

    # Trying to get docrule for searching calls
    try:
        if not docrule_id:
            docrule_id = request.session['searching_docrule_id']
        # No docrule present in session. Invalidating view call.
        if not docrule_id:
            valid_call = False
    except KeyError:
        pass

    try:
        key_name = request.POST[u'key_name']
        autocomplete_req = request.POST[u'autocomplete_search[term]'].strip(
            ' \t\n\r')
    except KeyError:
        valid_call = False

    try:
        doc_mdts = request.session["mdts"]
    except KeyError:
        pass

    try:
        doc_mdts = request.session["edit_mdts"]
    except KeyError:
        pass

    # Nothing queried for autocomplete and no MDTS found. Invalidating call
    if not autocomplete_req or not doc_mdts:
        valid_call = False

    log.debug(
        'mdt_parallel_keys call: docrule_id: "%s", key_name: "%s", autocomplete: "%s" Call is valid: "%s", MDTS: %s'
        % (docrule_id, key_name, autocomplete_req, valid_call,
           doc_mdts.__len__()))

    if valid_call:
        resp = process_pkeys_request(docrule_id, key_name, autocomplete_req,
                                     doc_mdts, letters_limit,
                                     suggestions_limit)
    log.debug('mdt_parallel_keys response: %s' % resp)
    return HttpResponse(json.dumps(resp), content_type="application/json")