def can_update(): return authz.has_dataset_ownership(request, dataset_id)
def retrieve_datafile_list( request, dataset_id, template_name='tardis_portal/ajax/datafile_list.html'): params = {} query = None highlighted_dsf_pks = [] if 'query' in request.GET: search_query = FacetFixedSearchQuery() sqs = SearchQuerySet(query=search_query) query = SearchQueryString(request.GET['query']) results = sqs.raw_search(query.query_string() + ' AND dataset_id_stored:%i' % (int(dataset_id))).load_all() highlighted_dsf_pks = [ int(r.pk) for r in results if r.model_name == 'datafile' and r.dataset_id_stored == int(dataset_id) ] params['query'] = query.query_string() elif 'datafileResults' in request.session and 'search' in request.GET: highlighted_dsf_pks = [ r.pk for r in request.session['datafileResults'] ] dataset_results = \ DataFile.objects.filter( dataset__pk=dataset_id, ).order_by('filename') if request.GET.get('limit', False) and len(highlighted_dsf_pks): dataset_results = dataset_results.filter(pk__in=highlighted_dsf_pks) params['limit'] = request.GET['limit'] filename_search = None if 'filename' in request.GET and len(request.GET['filename']): filename_search = request.GET['filename'] dataset_results = \ dataset_results.filter(filename__icontains=filename_search) params['filename'] = filename_search # pagination was removed by someone in the interface but not here. # need to fix. pgresults = 100 paginator = Paginator(dataset_results, pgresults) try: page = int(request.GET.get('page', '1')) except ValueError: page = 1 # If page request (9999) is out of range, deliver last page of results. try: dataset = paginator.page(page) except (EmptyPage, InvalidPage): dataset = paginator.page(paginator.num_pages) is_owner = False has_download_permissions = authz.has_dataset_download_access( request, dataset_id) has_write_permissions = False if request.user.is_authenticated(): is_owner = authz.has_dataset_ownership(request, dataset_id) has_write_permissions = authz.has_dataset_write(request, dataset_id) immutable = Dataset.objects.get(id=dataset_id).immutable c = { 'datafiles': dataset, 'paginator': paginator, 'immutable': immutable, 'dataset': Dataset.objects.get(id=dataset_id), 'filename_search': filename_search, 'is_owner': is_owner, 'highlighted_datafiles': highlighted_dsf_pks, 'has_download_permissions': has_download_permissions, 'has_write_permissions': has_write_permissions, 'search_query': query, 'params': urlencode(params), } _add_protocols_and_organizations(request, None, c) return HttpResponse(render_response_index(request, template_name, c))
def can_update(): return authz.has_dataset_ownership(request, dataset_id)
def retrieve_datafile_list( request, dataset_id, template_name='tardis_portal/ajax/datafile_list.html'): params = {} query = None highlighted_dsf_pks = [] if 'query' in request.GET: search_query = FacetFixedSearchQuery() sqs = SearchQuerySet(query=search_query) query = SearchQueryString(request.GET['query']) results = sqs.raw_search( query.query_string() + ' AND dataset_id_stored:%i' % (int(dataset_id))).load_all() highlighted_dsf_pks = [int(r.pk) for r in results if r.model_name == 'datafile' and r.dataset_id_stored == int(dataset_id)] params['query'] = query.query_string() elif 'datafileResults' in request.session and 'search' in request.GET: highlighted_dsf_pks = [r.pk for r in request.session['datafileResults']] dataset_results = \ DataFile.objects.filter( dataset__pk=dataset_id, ).order_by('filename') if request.GET.get('limit', False) and len(highlighted_dsf_pks): dataset_results = dataset_results.filter(pk__in=highlighted_dsf_pks) params['limit'] = request.GET['limit'] filename_search = None if 'filename' in request.GET and len(request.GET['filename']): filename_search = request.GET['filename'] dataset_results = \ dataset_results.filter(filename__icontains=filename_search) params['filename'] = filename_search # pagination was removed by someone in the interface but not here. # need to fix. pgresults = 100 paginator = Paginator(dataset_results, pgresults) try: page = int(request.GET.get('page', '1')) except ValueError: page = 1 # If page request (9999) is out of range, deliver last page of results. try: dataset = paginator.page(page) except (EmptyPage, InvalidPage): dataset = paginator.page(paginator.num_pages) is_owner = False has_download_permissions = authz.has_dataset_download_access(request, dataset_id) has_write_permissions = False if request.user.is_authenticated(): is_owner = authz.has_dataset_ownership(request, dataset_id) has_write_permissions = authz.has_dataset_write(request, dataset_id) immutable = Dataset.objects.get(id=dataset_id).immutable c = { 'datafiles': dataset, 'paginator': paginator, 'immutable': immutable, 'dataset': Dataset.objects.get(id=dataset_id), 'filename_search': filename_search, 'is_owner': is_owner, 'highlighted_datafiles': highlighted_dsf_pks, 'has_download_permissions': has_download_permissions, 'has_write_permissions': has_write_permissions, 'search_query': query, 'params': urlencode(params), } _add_protocols_and_organizations(request, None, c) return HttpResponse(render_response_index(request, template_name, c))