diff --git a/src/mailmanweb/templates/mailmanweb/menu/list_nav.html b/src/mailmanweb/templates/mailmanweb/menu/list_nav.html
index de46757..e9f7478 100644
--- a/src/mailmanweb/templates/mailmanweb/menu/list_nav.html
+++ b/src/mailmanweb/templates/mailmanweb/menu/list_nav.html
@@ -3,6 +3,7 @@
{{ list.fqdn_listname }}
- {% trans "Info" %}
+ - {% trans "Held Messages" %}
- {% trans "Metrics" %}
- {% trans "Settings" %}
- {% trans "Mass Subscribe" %}
diff --git a/src/mailmanweb/urls.py b/src/mailmanweb/urls.py
index f72a95c..26841e9 100644
--- a/src/mailmanweb/urls.py
+++ b/src/mailmanweb/urls.py
@@ -53,6 +53,8 @@
'mass_subscribe', name='mass_subscribe'),
url(r'^lists/(?P[^/]+)/delete$', 'list_delete',
name='list_delete'),
+ url(r'^lists/(?P[^/]+)/held_messages$', 'list_held_messages',
+ name='list_held_messages'),
url(r'^user_settings/$', 'user_settings', kwargs={"tab": "user"},
name='user_settings'),
url(r'^lists/(?P[^/]+)/settings/(?P[^/]+)?(?:/(?P.*))?$',
diff --git a/src/mailmanweb/views.py b/src/mailmanweb/views.py
index ac02de1..384e73e 100644
--- a/src/mailmanweb/views.py
+++ b/src/mailmanweb/views.py
@@ -26,7 +26,8 @@
from django.conf import settings
from django.contrib import messages
from django.contrib.auth import logout, authenticate, login
-from django.contrib.auth.decorators import login_required, permission_required
+from django.contrib.auth.decorators import (login_required, permission_required,
+ user_passes_test)
from django.contrib.auth.forms import AuthenticationForm
from django.contrib.auth.models import User
from django.core.urlresolvers import reverse
@@ -35,7 +36,8 @@
from django.template import Context, loader, RequestContext
from django.utils.translation import gettext as _
from mailman.client import Client
-from models import Domain, List, Member, MailmanUser, MailmanApiError, Mailman404Error
+from models import (Domain, List, Member, MailmanUser, MailmanApiError,
+ Mailman404Error)
from forms import *
from urllib2 import HTTPError
@@ -345,6 +347,18 @@
'list':the_list,},
context_instance=RequestContext(request))
+@user_passes_test(lambda u: u.is_superuser)
+def list_held_messages(request, fqdn_listname):
+ """Shows a list of held messages.
+ """
+ try:
+ the_list = List.objects.get_or_404(fqdn_listname=fqdn_listname)
+ except MailmanApiError:
+ return utils.render_api_error(request)
+ return render_to_response('mailmanweb/confirm_dialog.html',
+ 'list':the_list,},
+ context_instance=RequestContext(request))
+
@login_required
def list_settings(request, fqdn_listname=None, visible_section=None, visible_option=None,
template='mailmanweb/lists/settings.html'):