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)
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)
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
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")
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")