Esempio n. 1
0
def my_apps_report(request, report):
    """
    A report for a developer, showing multiple apps.
    """
    view = get_report_view(request)
    template_name = "devstats/reports/%s.html" % report
    return jingo.render(request, template_name, {"view": view, "report": "my_apps"})
Esempio n. 2
0
def stats_report(request, addon, report):
    check_stats_permission(request, addon)
    stats_base_url = reverse("mkt.stats.overview", args=[addon.app_slug])
    view = get_report_view(request)
    return jingo.render(
        request,
        "appstats/reports/%s.html" % report,
        {"addon": addon, "report": report, "view": view, "stats_base_url": stats_base_url},
    )
Esempio n. 3
0
def stats_report(request, addon, report):
    check_stats_permission(request, addon)
    stats_base_url = reverse('mkt.stats.overview', args=[addon.app_slug])
    view = get_report_view(request)
    return jingo.render(request, 'appstats/reports/%s.html' % report,
                        {'addon': addon,
                         'report': report,
                         'view': view,
                         'stats_base_url': stats_base_url})
Esempio n. 4
0
def my_apps_report(request, report):
    """
    A report for a developer, showing multiple apps.
    """
    view = get_report_view(request)
    template_name = 'devstats/reports/%s.html' % report
    return jingo.render(request, template_name, {
        'view': view,
        'report': 'my_apps',
    })
Esempio n. 5
0
def stats_report(request, addon, report, inapp=None, category_field=None):
    """
    Stats page. Passes in context variables into template which is read by the
    JS to build a URL. The URL calls a *_series view which determines
    necessary arguments for get_series_*. get_series_* queries ES for the data,
    which is later formatted into .json or .csv and made available to the JS.
    """
    if addon.status is not amo.STATUS_PUBLIC and not check_stats_permission(
        request, addon, for_contributions=True, no_raise=True
    ):
        return redirect(addon.get_detail_url())
    check_stats_permission(request, addon)

    # For inapp, point template to same as non-inapp, but still use
    # different report names.
    template_name = "appstats/reports/%s.html" % report.replace("_inapp", "")
    if inapp:
        stats_base_url = addon.get_stats_inapp_url(action="revenue", inapp=inapp)
    else:
        stats_base_url = reverse("mkt.stats.overview", args=[addon.app_slug])
    view = get_report_view(request)

    # Get list of in-apps for drop-down in-app selector.
    inapps = []
    # Until we figure out why ES stores strings in lowercase despite
    # the field being set to not analyze, we grab the lowercase version
    # from ES and do a case-insensitive query to the ORM to un-lowercase.
    inapps_lower = list(
        set(payment["inapp"] for payment in list(InappPayment.search().filter(addon=addon.id).values_dict("inapp")))
    )
    for inapp_name in inapps_lower:
        inapps.append(InappPayment.objects.filter(name__iexact=inapp_name)[0].name)

    return jingo.render(
        request,
        template_name,
        {
            "addon": addon,
            "report": report,
            "view": view,
            "stats_base_url": stats_base_url,
            "inapp": inapp,
            "inapps": inapps,
        },
    )
Esempio n. 6
0
def stats_report(request, addon, report, category_field=None):
    """
    Stats page. Passes in context variables into template which is read by the
    JS to build a URL. The URL calls a *_series view which determines
    necessary arguments for get_series_*. get_series_* queries ES for the data,
    which is later formatted into .json or .csv and made available to the JS.
    """
    if addon.status is not amo.STATUS_PUBLIC and not check_stats_permission(
        request, addon, for_contributions=True, no_raise=True
    ):
        return redirect(addon.get_detail_url())
    check_stats_permission(request, addon)

    template_name = "appstats/reports/%s.html" % report
    stats_base_url = reverse("mkt.stats.overview", args=[addon.app_slug])
    view = get_report_view(request)

    return jingo.render(
        request, template_name, {"addon": addon, "report": report, "view": view, "stats_base_url": stats_base_url}
    )
Esempio n. 7
0
def overall(request, report):
    view = get_report_view(request)
    return jingo.render(request, 'sitestats/stats.html', {'report': report,
                                                          'view': view})
Esempio n. 8
0
    def test_report_view_xss(self):
        req = RequestFactory().get('/', start='<alert>', end='20010101')
        assert views.get_report_view(req) == {}

        req = RequestFactory().get('/', last='<alert>')
        assert views.get_report_view(req) == {}
Esempio n. 9
0
def overall(request, report):
    view = get_report_view(request)
    return jingo.render(request, "sitestats/stats.html", {"report": report, "view": view})