def filter(request, page=0, itemsxpage=settings.PAGINATION_RESULTS_PER_PAGE): """ filter resources """ bb_request = request.GET filters = bb_request.get("filters") filters_dict = "" filter_name = "" sort_by = "-id" exclude = None if filters is not None and filters != "": filters_dict = filters_to_model_fields(json.loads(bb_request.get("filters"))) if bb_request.get("page") is not None and bb_request.get("page") != "": page = int(bb_request.get("page")) if bb_request.get("q") is not None and bb_request.get("q") != "": filter_name = bb_request.get("q") if bb_request.get("itemxpage") is not None and bb_request.get("itemxpage") != "": itemsxpage = int(bb_request.get("itemxpage")) if bb_request.get("collect_type", None) is not None: # If File Dataset, set impl_types as valid ones. File = 0 if bb_request.get("collect_type") == "0": exclude = { "dataset__type": bb_request.get("collect_type"), "impl_type__in": DATASTREAM_IMPL_NOT_VALID_CHOICES, } if bb_request.get("sort_by") is not None and bb_request.get("sort_by") != "": if bb_request.get("sort_by") == "category": sort_by = "category__categoryi18n__name" if bb_request.get("sort_by") == "title": sort_by = "dataseti18n__title" if bb_request.get("sort_by") == "author": sort_by = "dataset__user__nick" if bb_request.get("order") == "desc": sort_by = "-" + sort_by resources, total_resources = DatasetDBDAO().query( account_id=request.account.id, language=request.user.language, page=page, itemsxpage=itemsxpage, filters_dict=filters_dict, sort_by=sort_by, filter_name=filter_name, exclude=exclude, ) for resource in resources: resource["url"] = reverse( "manageDatasets.view", urlconf="workspace.urls", kwargs={"revision_id": resource["id"]} ) data = {"total_resources": total_resources, "resources": resources} response = DatasetList().render(data) mimetype = "application/json" return HttpResponse(response, mimetype=mimetype)
def filter(request, page=0, itemsxpage=settings.PAGINATION_RESULTS_PER_PAGE): """ filter resources """ bb_request = request.GET filters = bb_request.get('filters') filters_dict = '' filter_name= '' sort_by='-id' if filters is not None and filters != '': filters_dict = filters_to_model_fields(json.loads(bb_request.get('filters'))) if bb_request.get('page') is not None and bb_request.get('page') != '': page = int(bb_request.get('page')) if bb_request.get('itemxpage') is not None and bb_request.get('itemxpage') != '': itemsxpage = int(bb_request.get('itemxpage')) if bb_request.get('q') is not None and bb_request.get('q') != '': filter_name = bb_request.get('q') if bb_request.get('sort_by') is not None and bb_request.get('sort_by') != '': if bb_request.get('sort_by') == "title": sort_by ="datastreami18n__title" if bb_request.get('sort_by') == "dataset_title": sort_by ="dataset__last_revision__dataseti18n__title" if bb_request.get('sort_by') == "author": sort_by ="dataset__user__nick" if bb_request.get('order')=="desc": sort_by = "-"+ sort_by #limit = int(bb_request.get('rp')) #sort_by = bb_request.get('sortname') #order = bb_request.get('sortorder') #filters_dict=filters_dict ds_dao = DataStreamDBDAO() resources,total_resources = ds_dao.query( account_id=request.account.id, language=request.user.language, page=page, itemsxpage=itemsxpage, filters_dict=filters_dict, sort_by=sort_by, filter_name=filter_name ) for resource in resources: # resources[i]['url'] = LocalHelper.build_permalink('manageDataviews.view', '&datastream_revision_id=' + str(resources[i]['id'])) resource['url'] = reverse('manageDataviews.view', urlconf='workspace.urls', kwargs={'revision_id': resource['id']}) resource['dataset_url'] = reverse('manageDatasets.view', urlconf='workspace.urls', kwargs={'revision_id': resource['dataset__last_revision__id']}) data = {'total_resources': total_resources, 'resources': resources} response = DatastreamList().render(data) return JSONHttpResponse(response)