コード例 #1
0
ファイル: ingest.py プロジェクト: aaryani/aa-migration-test1
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))    
コード例 #2
0
ファイル: shortcuts.py プロジェクト: JMSS-IT-11-2012/mytardis
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)
コード例 #3
0
ファイル: shortcuts.py プロジェクト: crawley/mytardis
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)
コード例 #4
0
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)
コード例 #5
0
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)
コード例 #6
0
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)
コード例 #7
0
ファイル: shortcuts.py プロジェクト: ryanbraganza/mytardis
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)
コード例 #8
0
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))
コード例 #9
0
def templates(request):
    from tardis.tardis_portal.views import getNewSearchDatafileSelectionForm
    return {'searchDatafileSelectionForm': getNewSearchDatafileSelectionForm()}
コード例 #10
0
ファイル: urls.py プロジェクト: grischa/mytardis-mrtardis
    # 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}),
コード例 #11
0
ファイル: views.py プロジェクト: IntersectAustralia/dc2c
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))
コード例 #12
0
ファイル: views.py プロジェクト: IntersectAustralia/dc2c
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))