in src/olympia/reviewers/views.py [0:0]
def dashboard(request):
# The dashboard is divided into sections that depend on what the reviewer
# has access to, each section having one or more links, each link being
# defined by a text and an URL. The template will show every link of every
# section we provide in the context.
sections = OrderedDict()
view_all_permissions = [
amo.permissions.REVIEWER_TOOLS_VIEW,
amo.permissions.REVIEWER_TOOLS_UNLISTED_VIEW,
]
view_all = any(
acl.action_allowed_for(request.user, perm) for perm in view_all_permissions
)
queue_counts = {
queue.name: queue.get_queryset(request).optimized_count()
for queue in reviewer_tables_registry.values()
if queue.show_count_in_dashboard
}
if view_all or acl.action_allowed_for(request.user, amo.permissions.ADDONS_REVIEW):
sections['Manual Review'] = [
(
'Manual Review ({0})'.format(queue_counts['queue_extension']),
reverse('reviewers.queue_extension'),
),
('Review Log', reverse('reviewers.reviewlog')),
(
'Add-on Review Guide',
'https://wiki.mozilla.org/Add-ons/Reviewers/Guide',
),
]
sections['Human Review Needed'] = [
(
'Flagged by MAD for Human Review',
reverse('reviewers.queue_mad'),
),
]
if view_all or acl.action_allowed_for(
request.user, amo.permissions.ADDONS_CONTENT_REVIEW
):
sections['Content Review'] = [
(
'Content Review ({0})'.format(queue_counts['queue_content_review']),
reverse('reviewers.queue_content_review'),
),
]
if view_all or acl.action_allowed_for(
request.user, amo.permissions.STATIC_THEMES_REVIEW
):
sections['Themes'] = [
(
'Awaiting Review ({0})'.format(queue_counts['queue_theme']),
reverse('reviewers.queue_theme'),
),
(
'Review Log',
reverse('reviewers.reviewlog'),
),
(
'Theme Review Guide',
'https://wiki.mozilla.org/Add-ons/Reviewers/Themes/Guidelines',
),
]
if view_all or acl.action_allowed_for(
request.user, amo.permissions.RATINGS_MODERATE
):
sections['User Ratings Moderation'] = [
(
'Ratings Awaiting Moderation ({0})'.format(
queue_counts['queue_moderated']
),
reverse('reviewers.queue_moderated'),
),
(
'Moderated Review Log',
reverse('reviewers.ratings_moderation_log'),
),
(
'Moderation Guide',
'https://wiki.mozilla.org/Add-ons/Reviewers/Guide/Moderation',
),
]
if view_all or acl.action_allowed_for(
request.user, amo.permissions.ADDON_REVIEWER_MOTD_EDIT
):
sections['Announcement'] = [
(
'Update message of the day',
reverse('reviewers.motd'),
),
]
if view_all or acl.action_allowed_for(request.user, amo.permissions.REVIEWS_ADMIN):
sections['Admin Tools'] = [
(
'Add-ons Pending Rejection ({0})'.format(
queue_counts['queue_pending_rejection']
),
reverse('reviewers.queue_pending_rejection'),
),
(
'Held Decisions for 2nd Level Approval ({0})'.format(
queue_counts['queue_decisions']
),
reverse('reviewers.queue_decisions'),
),
]
return TemplateResponse(
request,
'reviewers/dashboard.html',
context=context(
**{
# base_context includes motd.
'sections': sections
}
),
)