diff --git a/djrill/__init__.py b/djrill/__init__.py index fa6d9a2..7cc2051 100644 --- a/djrill/__init__.py +++ b/djrill/__init__.py @@ -8,8 +8,9 @@ __version__ = '.'.join([str(x) for x in VERSION]) class DjrillAdminSite(AdminSite): index_template = "djrill/index.html" custom_views = [] + custom_urls = [] - def register_view(self, path, view, name=None): + def register_view(self, path, view, name, display_name=None): """Add a custom admin view. * `path` is the path in the admin where the view will live, e.g. @@ -18,25 +19,33 @@ class DjrillAdminSite(AdminSite): * `name` is an optional pretty name for the list of custom views. If empty, we'll guess based on view.__name__. """ - self.custom_views.append((path, view, name)) + self.custom_views.append((path, view, name, display_name)) + + def register_url(self, path, view, name): + self.custom_urls.append((path, view, name)) def get_urls(self): """Add our custom views to the admin urlconf.""" urls = super(DjrillAdminSite, self).get_urls() from django.conf.urls.defaults import patterns, url - for path, view, name in self.custom_views: + for path, view, name, display_name in self.custom_views: urls += patterns('', - url(r'^%s$' % path, self.admin_view(view)), + url(r'^%s$' % path, self.admin_view(view), name=name), ) + for path, view, name in self.custom_urls: + urls += patterns('', + url(r'^%s$' % path, self.admin_view(view), name=name), + ) + return urls def index(self, request, extra_context=None): """Make sure our list of custom views is on the index page.""" if not extra_context: extra_context = {} - custom_list = [(path, name if name else - capfirst(view.__name__)) for path, view, name in - self.custom_views] + custom_list = [(path, display_name if display_name else + capfirst(view.__name__)) for path, view, name, display_name in + self.custom_views] # Sort views alphabetically. custom_list.sort(key=lambda x: x[1]) extra_context.update({ diff --git a/djrill/admin.py b/djrill/admin.py index 50073e4..fc0ebcd 100644 --- a/djrill/admin.py +++ b/djrill/admin.py @@ -1,7 +1,12 @@ from django.contrib import admin -from djrill.views import DjrillIndexView, DjrillSendersListView +from djrill.views import (DjrillIndexView, DjrillSendersListView, + DjrillDisableSenderView) admin.site.register_view("djrill/senders/", DjrillSendersListView.as_view(), - "senders") -admin.site.register_view("djrill/status/", DjrillIndexView.as_view(), "status") + "djrill_sender", "senders") +admin.site.register_view("djrill/status/", DjrillIndexView.as_view(), + "djrill_status", "status") + +admin.site.register_url("djrill/disable/sender/", + DjrillDisableSenderView.as_view(), "djrill_disable_sender") diff --git a/djrill/templates/djrill/senders_list.html b/djrill/templates/djrill/senders_list.html index b768610..1083fc5 100644 --- a/djrill/templates/djrill/senders_list.html +++ b/djrill/templates/djrill/senders_list.html @@ -89,7 +89,7 @@