Skip to content
This repository has been archived by the owner on Mar 15, 2018. It is now read-only.

Commit

Permalink
make the stats report menu a bit more generic
Browse files Browse the repository at this point in the history
  • Loading branch information
potch committed Mar 2, 2012
1 parent 796128d commit 3081c98
Show file tree
Hide file tree
Showing 5 changed files with 63 additions and 100 deletions.
91 changes: 20 additions & 71 deletions apps/stats/helpers.py
@@ -1,80 +1,29 @@
import jinja2

from jingo import register
from jingo import env, register
from tower import ugettext as _
from access import acl
from addons.models import Addon
from amo.urlresolvers import reverse


@register.inclusion_tag('stats/report_menu.html')
@register.function
@jinja2.contextfunction
def report_menu(context, request, addon, report):

report_tree = [
{
'name': 'overview',
'url': '',
'title': _('Overview'),
},
{
'name': 'downloads',
'url': 'downloads/',
'title': _('Downloads'),
'children': [
{
'name': 'sources',
'url': 'downloads/sources/',
'title': _('by Source'),
},
]
},
{
'name': 'usage',
'url': 'usage/',
'title': _('Daily Users'),
'children': [
{
'name': 'versions',
'url': 'usage/versions/',
'title': _('by Add-on Version')
},
{
'name': 'apps',
'url': 'usage/applications/',
'title': _('by Application')
},
{
'name': 'locales',
'url': 'usage/languages/',
'title': _('by Language')
},
{
'name': 'os',
'url': 'usage/os/',
'title': _('by Platform')
},
{
'name': 'statuses',
'url': 'usage/status/',
'title': _('by Add-on Status')
},
]
},
]

if (request.user.is_authenticated() and (
acl.action_allowed(request, 'Stats', 'View') or
addon.has_author(request.amo_user))):
report_tree.append({
'name': 'contributions',
'url': 'contributions/',
'title': _('Contributions')
})

base_url = reverse('stats.overview', args=[addon.slug])

def report_menu(context, request, report, obj=None):
"""Reports Menu. navigation for the various statistic reports."""
c = {'report': report,
'base_url': base_url,
'report_tree': report_tree}
return c
if obj:
if isinstance(obj, Addon):
has_privs = False
if (request.user.is_authenticated() and (
acl.action_allowed(request, 'Stats', 'View') or
addon.has_author(request.amo_user))):
has_privs = True
t = env.get_template('stats/addon_report_menu.html')
c = {
'addon': obj,
'has_privs': has_privs
}
return jinja2.Markup(t.render(c))

t = env.get_template('stats/global_report_menu.html')
return jinja2.Markup(t.render())
40 changes: 40 additions & 0 deletions apps/stats/templates/stats/addon_report_menu.html
@@ -0,0 +1,40 @@
<nav id="side-nav" class="report-menu">
<ul>
<li data-report="overview" data-layout="overview">
<a href="{{ url('stats.overview', addon.slug) }}">{{ _('Overview') }}</a>
</li>
<li data-report="downloads">
<a href="{{ url('stats.downloads', addon.slug) }}">{{ _('Downloads') }}</a>
</li>
<ul>
<li data-report="sources">
<a href="{{ url('stats.sources', addon.slug) }}/">{{ _('by Source') }}</a>
</li>
</ul>
<li data-report="usage">
<a href="{{ url('stats.usage', addon.slug) }}">{{ _('Daily Users') }}</a>
</li>
<ul>
<li data-report="versions">
<a href="{{ url('stats.versions', addon.slug) }}">{{ _('by Add-on Version') }}</a>
</li>
<li data-report="apps">
<a href="{{ url('stats.apps', addon.slug) }}">{{ _('by Application') }}</a>
</li>
<li data-report="locales">
<a href="{{ url('stats.locales', addon.slug) }}">{{ _('by Language') }}</a>
</li>
<li data-report="os">
<a href="{{ url('stats.os', addon.slug) }}">{{ _('by Platform') }}</a>
</li>
<li data-report="statuses">
<a href="{{ url('stats.statuses', addon.slug) }}">{{ _('by Add-on Status') }}</a>
</li>
</ul>
{% if has_privs %}
<li data-report="contributions">
<a href="{{ url('stats.contributions', addon.slug) }}">{{ _('Contributions') }}</a>
</li>
{% endif %}
</ul>
</nav>
26 changes: 0 additions & 26 deletions apps/stats/templates/stats/report_menu.html

This file was deleted.

2 changes: 1 addition & 1 deletion apps/stats/templates/stats/stats.html
Expand Up @@ -76,7 +76,7 @@ <h1 class="addon"{{ addon.name|locale_html }}>
{% block content %}
<div id="lm" class="loadmessage"><span>{{ _('Loading the latest data&hellip;') }}</span></div>
<div class="secondary">
{{ report_menu(request, addon, report) }}
{{ report_menu(request, report, obj=addon) }}
{% block stats_note_link %}
{% endblock %}
<pre id="dbgout"></pre>
Expand Down
4 changes: 2 additions & 2 deletions apps/stats/urls.py
Expand Up @@ -22,7 +22,7 @@
kwargs={'report': 'overview'}),
url('^downloads/$', views.stats_report, name='stats.downloads',
kwargs={'report': 'downloads'}),
url('^downloads/sources/$', views.stats_report, name='stats.downloads',
url('^downloads/sources/$', views.stats_report, name='stats.sources',
kwargs={'report': 'sources'}),
url('^usage/$', views.stats_report, name='stats.usage',
kwargs={'report': 'usage'}),
Expand All @@ -34,7 +34,7 @@
kwargs={'report': 'statuses'}),
url('^usage/applications/$', views.stats_report, name='stats.apps',
kwargs={'report': 'apps'}),
url('^usage/os/$', views.stats_report, name='stats.usage.os',
url('^usage/os/$', views.stats_report, name='stats.os',
kwargs={'report': 'os'}),
url('^contributions/$', views.stats_report, name='stats.contributions',
kwargs={'report': 'contributions'}),
Expand Down

0 comments on commit 3081c98

Please sign in to comment.