Esempio n. 1
0
def response_view(request, responseid, template):
    response = get_object_or_404(Response, id=responseid)
    mlt = None
    records = None

    if (request.user.is_authenticated()
        and request.user.has_perm('analytics.can_view_dashboard')):

        mlt = ResponseMappingType.morelikethis(response)
        records = [
            (u'Response records', Record.objects.records(response)),
        ]
        jobs = GengoJob.objects.filter(
            object_id=response.id,
            content_type=ContentType.objects.get_for_model(response)
        )
        for job in jobs:
            records.append(
                (u'Gengo job record {0}'.format(job.id), job.records)
            )

    # We don't pass the response directly to the template and instead
    # do some data tweaks here to make it more palatable for viewing.
    return render(request, template, {
        'response': response,
        'mlt': mlt,
        'records': records,
    })
Esempio n. 2
0
def response_view(request, responseid, template):
    response = get_object_or_404(Response, id=responseid)

    try:
        prod = Product.objects.get(db_name=response.product)

        if (not prod.on_dashboard
                and (not request.user.is_authenticated()
                     or not request.user.has_perm(
                         'analytics.can_view_dashboard'))):

            # If this is a response for a hidden product and the user
            # isn't in the analytics group, then they can't see it.
            return HttpResponseForbidden()

    except Product.DoesNotExist:
        pass

    mlt = None
    records = None
    errors = []

    if (request.user.is_authenticated()
            and request.user.has_perm('analytics.can_view_dashboard')):

        try:
            # Convert it to a list to force it to execute right now.
            mlt = ResponseMappingType.reshape(
                ResponseMappingType.morelikethis(response))
        except ElasticsearchException as exc:
            errors.append('Failed to do morelikethis: %s' % exc)

        records = [
            (u'Response records', Record.objects.records(response)),
        ]
        jobs = GengoJob.objects.filter(
            object_id=response.id,
            content_type=ContentType.objects.get_for_model(response)
        )
        for job in jobs:
            records.append(
                (u'Gengo job record {0}'.format(job.id), job.records)
            )

    # We don't pass the response directly to the template and instead
    # do some data tweaks here to make it more palatable for viewing.
    return render(request, template, {
        'errors': errors,
        'response': response,
        'mlt': mlt,
        'records': records,
    })
Esempio n. 3
0
def response_view(request, responseid, template):
    response = get_object_or_404(Response, id=responseid)
    mlt = None

    if (request.user.is_authenticated()
        and request.user.has_perm('analytics.can_view_dashboard')):

        mlt = ResponseMappingType.morelikethis(response)

    # We don't pass the response directly to the template and instead
    # do some data tweaks here to make it more palatable for viewing.
    return render(request, template, {
        'response': response,
        'mlt': mlt,
    })
Esempio n. 4
0
def response_view(request, responseid, template):
    response = get_object_or_404(Response, id=responseid)
    mlt = None

    if (request.user.is_authenticated()
            and request.user.has_perm('analytics.can_view_dashboard')):

        mlt = ResponseMappingType.morelikethis(response)

    # We don't pass the response directly to the template and instead
    # do some data tweaks here to make it more palatable for viewing.
    return render(request, template, {
        'response': response,
        'mlt': mlt,
    })
Esempio n. 5
0
File: views.py Progetto: rlr/fjord
def response_view(request, responseid, template):
    response = get_object_or_404(Response, id=responseid)

    mlt = None
    records = None
    errors = []

    if (request.user.is_authenticated()
            and request.user.has_perm('analytics.can_view_dashboard')):

        try:
            # Convert it to a list to force it to execute right now.
            mlt = ResponseMappingType.reshape(
                ResponseMappingType.morelikethis(response))
        except ElasticsearchException as exc:
            errors.append('Failed to do morelikethis: %s' % exc)

        records = [
            (u'Response records', Record.objects.records(response)),
        ]
        jobs = GengoJob.objects.filter(
            object_id=response.id,
            content_type=ContentType.objects.get_for_model(response)
        )
        for job in jobs:
            records.append(
                (u'Gengo job record {0}'.format(job.id), job.records)
            )

    # We don't pass the response directly to the template and instead
    # do some data tweaks here to make it more palatable for viewing.
    return render(request, template, {
        'errors': errors,
        'response': response,
        'mlt': mlt,
        'records': records,
    })
Esempio n. 6
0
def response_view(request, responseid, template):
    response = get_object_or_404(Response, id=responseid)

    mlt = None
    records = None
    errors = []

    if (request.user.is_authenticated()
            and request.user.has_perm('analytics.can_view_dashboard')):

        try:
            # Convert it to a list to force it to execute right now.
            mlt = ResponseMappingType.reshape(
                ResponseMappingType.morelikethis(response))
        except ElasticsearchException as exc:
            errors.append('Failed to do morelikethis: %s' % exc)

        records = [
            (u'Response records', Record.objects.records(response)),
        ]
        jobs = GengoJob.objects.filter(
            object_id=response.id,
            content_type=ContentType.objects.get_for_model(response)
        )
        for job in jobs:
            records.append(
                (u'Gengo job record {0}'.format(job.id), job.records)
            )

    # We don't pass the response directly to the template and instead
    # do some data tweaks here to make it more palatable for viewing.
    return render(request, template, {
        'errors': errors,
        'response': response,
        'mlt': mlt,
        'records': records,
    })