def send_retry_response(request, form, status): '''Returns the form te be filled out again''' c = Context({ 'form': form, 'status': status, 'subtitle': 'Register Experiment', 'searchDatafileSelectionForm': getNewSearchDatafileSelectionForm()}) return HttpResponse(render_response_index(request, 'tardis_portal/register_experiment.html', c))
def render_response_search(request, url, c): from tardis.tardis_portal.views import getNewSearchDatafileSelectionForm links = {} for app in settings.INSTALLED_APPS: if app.startswith("tardis.apps."): view = "%s.views.search" % app try: links[app.split(".")[2]] = reverse(view) except: pass c["searchDatafileSelectionForm"] = getNewSearchDatafileSelectionForm(request.GET.get("type", None)) c["links"] = links return render(request, url, c)
def render_response_search(request, url, c): from tardis.tardis_portal.views import getNewSearchDatafileSelectionForm links = {} for app in settings.INSTALLED_APPS: if app.startswith('tardis.apps.'): view = '%s.views.search' % app try: links[app.split('.')[2]] = reverse(view) except: pass c['searchDatafileSelectionForm'] = \ getNewSearchDatafileSelectionForm(request.GET.get('type', None)) c['links'] = links return render(request, url, c)
def render_response_search(request, *args, **kwargs): from tardis.tardis_portal.views import getNewSearchDatafileSelectionForm is_authenticated = request.user.is_authenticated() if is_authenticated: is_superuser = request.user.is_superuser username = request.user.username else: is_superuser = False username = None links = {} for app in settings.INSTALLED_APPS: if app.startswith('tardis.apps.'): view = '%s.views.search' % app try: links[app.split('.')[2]] = reverse(view) except: pass kwargs['context_instance'] = RequestContext(request) kwargs['context_instance']['is_authenticated'] = is_authenticated kwargs['context_instance']['is_superuser'] = is_superuser kwargs['context_instance']['username'] = username kwargs['context_instance']['searchDatafileSelectionForm'] = \ getNewSearchDatafileSelectionForm(request.GET.get('type', None)) kwargs['context_instance']['links'] = links staging = get_full_staging_path( username) if staging: kwargs['context_instance']['has_staging_access'] = True else: kwargs['context_instance']['has_staging_access'] = False #if request.mobile: # template_path = args[0] # split = template_path.partition('/') # args = (split[0] + '/mobile/' + split[2], ) + args[1:] return render_to_response(*args, **kwargs)
def render_response_search(request, *args, **kwargs): from tardis.tardis_portal.views import getNewSearchDatafileSelectionForm is_authenticated = request.user.is_authenticated() if is_authenticated: is_superuser = request.user.is_superuser username = request.user.username else: is_superuser = False username = None links = {} for app in settings.INSTALLED_APPS: if app.startswith('tardis.apps.'): view = '%s.views.search' % app try: links[app.split('.')[2]] = reverse(view) except: pass kwargs['context_instance'] = RequestContext(request) kwargs['context_instance']['is_authenticated'] = is_authenticated kwargs['context_instance']['is_superuser'] = is_superuser kwargs['context_instance']['username'] = username kwargs['context_instance']['searchDatafileSelectionForm'] = \ getNewSearchDatafileSelectionForm(request.GET.get('type', None)) kwargs['context_instance']['links'] = links staging = get_full_staging_path(username) if staging: kwargs['context_instance']['has_staging_access'] = True else: kwargs['context_instance']['has_staging_access'] = False #if request.mobile: # template_path = args[0] # split = template_path.partition('/') # args = (split[0] + '/mobile/' + split[2], ) + args[1:] return render_to_response(*args, **kwargs)
def render_response_search(request, *args, **kwargs): from tardis.tardis_portal.views import getNewSearchDatafileSelectionForm is_authenticated = request.user.is_authenticated() if is_authenticated: is_superuser = request.user.is_superuser username = request.user.username else: is_superuser = False username = None links = {} for app in settings.INSTALLED_APPS: if app.startswith("tardis.apps."): view = "%s.views.search" % app try: links[app.split(".")[2]] = reverse(view) except: pass kwargs["context_instance"] = RequestContext(request) kwargs["context_instance"]["is_authenticated"] = is_authenticated kwargs["context_instance"]["is_superuser"] = is_superuser kwargs["context_instance"]["username"] = username kwargs["context_instance"]["searchDatafileSelectionForm"] = getNewSearchDatafileSelectionForm( request.GET.get("type", None) ) kwargs["context_instance"]["links"] = links staging = get_full_staging_path(username) if staging: kwargs["context_instance"]["has_staging_access"] = True else: kwargs["context_instance"]["has_staging_access"] = False return render(request, *args, **kwargs)
def experiment_datasets(request, experiment_id): """View a listing of dataset of an existing experiment as ajax loaded tab. :param request: a HTTP Request instance :type request: :class:`django.http.HttpRequest` :param experiment_id: the ID of the experiment to be edited :type experiment_id: string :param template_name: the path of the template to render :type template_name: string :rtype: :class:`django.http.HttpResponse` """ c = Context({'upload_complete_url': reverse('tardis.tardis_portal.views.upload_complete'), 'searchDatafileSelectionForm': getNewSearchDatafileSelectionForm(), }) try: experiment = Experiment.safe.get(request, experiment_id) except PermissionDenied: return return_response_error(request) except Experiment.DoesNotExist: return return_response_not_found(request) c['experiment'] = experiment if 'query' in request.GET: # We've been passed a query to get back highlighted results. # Only pass back matching datafiles # search_query = FacetFixedSearchQuery(backend=HighlightSearchBackend()) sqs = SearchQuerySet(query=search_query) query = SearchQueryString(request.GET['query']) facet_counts = sqs.raw_search(query.query_string() + ' AND experiment_id_stored:%i' % (int(experiment_id)), end_offset=1).facet('dataset_id_stored').highlight().facet_counts() if facet_counts: dataset_id_facets = facet_counts['fields']['dataset_id_stored'] else: dataset_id_facets = [] c['highlighted_datasets'] = [ int(f[0]) for f in dataset_id_facets ] c['file_matched_datasets'] = [] c['search_query'] = query # replace '+'s with spaces elif 'datafileResults' in request.session and 'search' in request.GET: c['highlighted_datasets'] = None c['highlighted_dataset_files'] = [r.pk for r in request.session['datafileResults']] c['file_matched_datasets'] = \ list(set(r.dataset.pk for r in request.session['datafileResults'])) c['search'] = True else: c['highlighted_datasets'] = None c['highlighted_dataset_files'] = None c['file_matched_datasets'] = None # microtardis change start if 'session_show_hidden' not in request.session: request.session['session_show_hidden'] = False if 'session_hidden_text' not in request.session: request.session['session_hidden_text'] = "Show Hidden Datasets and Files" if not request.session['session_show_hidden']: # hide hidden objects hidden_datasets = Dataset_Hidden.objects.filter(hidden=True).values_list('dataset', flat=True) c['datasets'] = Dataset.objects.filter(experiment=experiment_id).exclude(pk__in=hidden_datasets) hidden_datafiles = Datafile_Hidden.objects.filter(hidden=True).values_list('datafile', flat=True) datafiles = {} for dataset in c['datasets']: datafiles[dataset] = Dataset_File.objects.filter(dataset=dataset.id).exclude(pk__in=hidden_datafiles).count() c['datafiles'] = datafiles else: # show all objects c['datasets'] = Dataset.objects.filter(experiment=experiment_id) datafiles = {} for dataset in c['datasets']: datafiles[dataset] = Dataset_File.objects.filter(dataset=dataset.id).count() c['datafiles'] = datafiles # highlight hidden datasets hidden_datasets = Dataset_Hidden.objects.filter(hidden=True).values_list('dataset', flat=True) dataset_objects = Dataset.objects.filter(experiment=experiment_id, pk__in=hidden_datasets) c['linethrough_datasets'] = [ obj.pk for obj in dataset_objects ] # highlight datasets which have hidden datafiles hidden_datafiles = Datafile_Hidden.objects.filter(hidden=True).values_list('datafile', flat=True) experiment_dataset_objects = Dataset.objects.filter(experiment=experiment_id) hidden_datafiles_objects = Dataset_File.objects.filter(pk__in=hidden_datafiles, dataset__in=experiment_dataset_objects) c['file_hidden_datasets'] = list(set(obj.dataset.pk for obj in hidden_datafiles_objects)) # microtardis change end c['has_write_permissions'] = \ authz.has_write_permissions(request, experiment_id) c['protocol'] = [] download_urls = experiment.get_download_urls() for key, value in download_urls.iteritems(): c['protocol'] += [[key, value]] if 'status' in request.GET: c['status'] = request.GET['status'] if 'error' in request.GET: c['error'] = request.GET['error'] return HttpResponse(render_response_index(request, 'tardis_portal/ajax/experiment_datasets.html', c))
def templates(request): from tardis.tardis_portal.views import getNewSearchDatafileSelectionForm return {'searchDatafileSelectionForm': getNewSearchDatafileSelectionForm()}
# Seach Views (r'^search/', include(search_urls)), # Account Views (r'^accounts/', include(accounts_urls)), # Group Views (r'^groups/$', 'tardis.tardis_portal.views.manage_groups'), (r'^group/', include(group_urls)), # Equipment Views (r'^equipment/$', list_detail.object_list, {'queryset': Equipment.objects.all(), 'paginate_by': 15, 'extra_context': {'searchDatafileSelectionForm': getNewSearchDatafileSelectionForm()}}), (r'^equipment/(?P<object_id>\d+)/$', list_detail.object_detail, {'queryset': Equipment.objects.all()}), # Display Views (r'^displayDatafileImage/', include(display_urls)), # Login/out (r'^login/$', 'tardis.tardis_portal.views.login'), (r'^logout/$', logout, {'next_page': '/'}), # Media (r'site_media/(?P<path>.*)$', 'django.views.static.serve', {'document_root': settings.STATIC_DOC_ROOT}), (r'media/(?P<path>.*)$', 'django.views.static.serve', {'document_root': settings.ADMIN_MEDIA_STATIC_DOC_ROOT}),
def register_experiment_ws_xmldata(request): status = '' if request.method == 'POST': # If the form has been submitted... # A form bound to the POST data form = RegisterExperimentForm(request.POST, request.FILES) if form.is_valid(): # All validation rules pass xmldata = request.FILES['xmldata'] username = form.cleaned_data['username'] origin_id = form.cleaned_data['originid'] from_url = form.cleaned_data['from_url'] user = auth_service.authenticate(request=request, authMethod=localdb_auth_key) if user: if not user.is_active: return return_response_error(request) else: return return_response_error(request) e = Experiment( title='Placeholder Title', approved=True, created_by=user, ) e.save() eid = e.id filename = path.join(e.get_or_create_directory(), 'mets_upload.xml') f = open(filename, 'wb+') for chunk in xmldata.chunks(): f.write(chunk) f.close() logger.info('=== processing experiment: START') owners = request.POST.getlist('experiment_owner') try: _registerExperimentDocument(filename=filename, created_by=user, expid=eid, owners=owners, username=username) logger.info('=== processing experiment %s: DONE' % eid) except: logger.exception('=== processing experiment %s: FAILED!' % eid) return return_response_error(request) if from_url: logger.debug('=== sending file request') logger.info('Sending received_remote signal') from tardis.tardis_portal.signals import received_remote received_remote.send(sender=Experiment, instance=e, uid=origin_id, from_url=from_url) response = HttpResponse(str(eid), status=200) response['Location'] = request.build_absolute_uri( '/experiment/view/' + str(eid)) return response else: form = RegisterExperimentForm() # An unbound form c = Context({ 'form': form, 'status': status, 'subtitle': 'Register Experiment', 'searchDatafileSelectionForm': getNewSearchDatafileSelectionForm()}) return HttpResponse(render_response_index(request, 'tardis_portal/register_experiment.html', c))
def experiment_samples(request, experiment_id): """View a listing of dataset of an existing experiment as ajax loaded tab. :param request: a HTTP Request instance :type request: :class:`django.http.HttpRequest` :param experiment_id: the ID of the experiment to be edited :type experiment_id: string :param template_name: the path of the template to render :type template_name: string :rtype: :class:`django.http.HttpResponse` """ c = Context({'upload_complete_url': reverse('tardis.tardis_portal.views.upload_complete'), 'searchDatafileSelectionForm': getNewSearchDatafileSelectionForm(), }) try: experiment = Experiment.safe.get(request, experiment_id) except PermissionDenied: return return_response_error(request) except Experiment.DoesNotExist: return return_response_not_found(request) c['experiment'] = experiment if 'query' in request.GET: # We've been passed a query to get back highlighted results. # Only pass back matching datafiles # search_query = FacetFixedSearchQuery(backend=HighlightSearchBackend()) sqs = SearchQuerySet(query=search_query) query = SearchQueryString(request.GET['query']) facet_counts = sqs.raw_search(query.query_string() + ' AND experiment_id_stored:%i' % (int(experiment_id)), end_offset=1).facet('dataset_id_stored').highlight().facet_counts() if facet_counts: dataset_id_facets = facet_counts['fields']['dataset_id_stored'] else: dataset_id_facets = [] c['highlighted_datasets'] = [ int(f[0]) for f in dataset_id_facets ] c['file_matched_datasets'] = [] c['search_query'] = query # replace '+'s with spaces elif 'datafileResults' in request.session and 'search' in request.GET: c['highlighted_datasets'] = None c['highlighted_dataset_files'] = [r.pk for r in request.session['datafileResults']] c['file_matched_datasets'] = \ list(set(r.dataset.pk for r in request.session['datafileResults'])) c['search'] = True else: c['highlighted_datasets'] = None c['highlighted_dataset_files'] = None c['file_matched_datasets'] = None c['samples'] = \ Sample.objects.filter(experiment=experiment_id).order_by("id") c['datasets'] = \ Dataset.objects.filter(experiment=experiment_id) c['has_write_permissions'] = \ authz.has_write_permissions(request, experiment_id) c['protocol'] = [] download_urls = experiment.get_download_urls() for key, value in download_urls.iteritems(): c['protocol'] += [[key, value]] if 'status' in request.GET: c['status'] = request.GET['status'] if 'error' in request.GET: c['error'] = request.GET['error'] return HttpResponse(render_response_index(request, 'tardis_portal/ajax/experiment_samples.html', c))