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)
def _wrapped_view(request, *args, **kwargs): dao = DataStreamDBDAO() query, total_resources = dao.query(account_id=request.account.id, language=request.user.language) if total_resources == 0 or request.GET.get('test-no-dataviews', False) == '1': raise AnyDatastreamRequiredException() return view_func(request, *args, **kwargs)