def make_sort_links_list(self, request_dict): """ makes a list of the links for sort options """ if 'sort' in request_dict: request_dict.pop('sort') order_opts = [ {'key': 'asc', 'order': 'ascending'}, {'key': 'desc', 'order': 'descending'} ] for act_sort in self.SORT_OPTIONS: if act_sort['opt']: # only make sort_options if the 'opt' key is true if act_sort['value'] is not None: for order_opt in order_opts: act_sort_val = act_sort['value'] + self.order_sep + order_opt['key'] fl = FilterLinks() fl.base_search_link = self.base_search_link fl.base_request_json = json.dumps(request_dict, ensure_ascii=False, indent=4) fl.spatial_context = self.spatial_context sort_rparams = fl.add_to_request('sort', act_sort_val) links = fl.make_request_urls(sort_rparams) current_sort_obj = LastUpdatedOrderedDict() current_sort_obj['id'] = links['html'] current_sort_obj['json'] = links['json'] current_sort_obj['type'] = act_sort['type'] current_sort_obj['label'] = act_sort['label'] current_sort_obj['oc-api:sort-order'] = order_opt['order'] in_active_list = False for cur_act_sort in self.current_sorting: if act_sort['type'] == cur_act_sort['type'] \ and order_opt['order'] == cur_act_sort['oc-api:sort-order']: # the current sort option is ALREADY in use in_active_list = True if in_active_list is False: # only add the sort option if it's not already in use self.sort_links.append(current_sort_obj) else: if self.using_default_sorting is False: # only add a link to the default sorting if # we are not currently using it fl = FilterLinks() fl.base_search_link = self.base_search_link fl.base_request_json = json.dumps(request_dict, ensure_ascii=False, indent=4) fl.spatial_context = self.spatial_context links = fl.make_request_urls(request_dict) current_sort_obj = LastUpdatedOrderedDict() current_sort_obj['id'] = links['html'] current_sort_obj['json'] = links['json'] current_sort_obj['type'] = act_sort['type'] current_sort_obj['label'] = act_sort['label'] current_sort_obj['oc-api:sort-order'] = 'descending' self.sort_links.append(current_sort_obj)
def make_paging_links(self, start, rows, ini_request_dict_json): """ makes links for paging for start, rows, with an initial request dict json string a big of a hassle to avoid memory errors with FilterLinks() """ start = int(start) start = str(start) rows = str(rows) fl = FilterLinks() fl.base_search_link = self.base_search_link fl.base_request_json = ini_request_dict_json fl.spatial_context = self.spatial_context fl.remove_start_param = False start_rparams = fl.add_to_request('start', start) start_rparams_json = json.dumps(start_rparams, ensure_ascii=False, indent=4) fl.base_request_json = start_rparams_json new_rparams = fl.add_to_request('rows', rows) return fl.make_request_urls(new_rparams)
def make_paging_links(self, start, rows, ini_request_dict_json): """ makes links for paging for start, rows, with an initial request dict json string a big of a hassle to avoid memory errors with FilterLinks() """ start = int(start) start = str(start) rows = str(rows) fl = FilterLinks() fl.base_search_link = self.base_search_link fl.base_request_json = ini_request_dict_json fl.spatial_context = self.spatial_context fl.remove_start_param = False start_rparams = fl.add_to_request('start', start) start_rparams_json = json.dumps(start_rparams, ensure_ascii=False, indent=4) fl.base_request_json = start_rparams_json new_rparams = fl.add_to_request('rows', rows) return fl.make_request_urls(new_rparams)