Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Fixed #13749 -- Added link from admin site to front-end site.

Thanks romankrv for the suggestion.
  • Loading branch information...
commit a81af7f49de7ff3f51f111de28ed3a682f67ea89 1 parent 6aae07f
@areski areski authored timgraham committed
View
4 django/contrib/admin/sites.py
@@ -41,6 +41,9 @@ class AdminSite(object):
# Text to put at the top of the admin index page.
index_title = ugettext_lazy('Site administration')
+ # URL for the "View site" link at the top of each admin page.
+ site_url = '/'
+
login_form = None
index_template = None
app_index_template = None
@@ -272,6 +275,7 @@ def each_context(self):
return {
'site_title': self.site_title,
'site_header': self.site_header,
+ 'site_url': self.site_url,
}
def password_change(self, request):
View
3  django/contrib/admin/templates/admin/base.html
@@ -31,6 +31,9 @@
<strong>{% firstof user.get_short_name user.get_username %}</strong>.
{% endblock %}
{% block userlinks %}
+ {% if site_url %}
+ <a href="{{ site_url }}">{% trans 'View site' %}</a> /
+ {% endif %}
{% url 'django-admindocs-docroot' as docsroot %}
{% if docsroot %}
<a href="{{ docsroot }}">{% trans 'Documentation' %}</a> /
View
7 docs/ref/contrib/admin/index.txt
@@ -2445,6 +2445,13 @@ Templates can override or extend base admin templates as described in
The text to put at the end of each admin page's ``<title>`` (a string). By
default, this is "Django site admin".
+.. attribute:: AdminSite.site_url
+
+ .. versionadded:: 1.8
+
+ The URL for the "View site" link at the top of each admin page. By default,
+ ``site_url`` is ``/``. Set it to ``None`` to remove the link.
+
.. attribute:: AdminSite.index_title
.. versionadded:: 1.7
View
4 docs/releases/1.8.txt
@@ -50,6 +50,10 @@ Minor features
* The jQuery library embedded in the admin has been upgraded to version 1.11.1.
+* You can now specify :attr:`AdminSite.site_url
+ <django.contrib.admin.AdminSite.site_url>` in order to display a link to the
+ front-end site.
+
:mod:`django.contrib.auth`
^^^^^^^^^^^^^^^^^^^^^^^^^^
View
1  tests/admin_views/admin.py
@@ -832,6 +832,7 @@ class FunkyTagAdmin(admin.ModelAdmin):
site = admin.AdminSite(name="admin")
+site.site_url = '/my-site-url/'
site.register(Article, ArticleAdmin)
site.register(CustomArticle, CustomArticleAdmin)
site.register(Section, save_as=True, inlines=[ArticleInline])
View
9 tests/admin_views/tests.py
@@ -744,6 +744,15 @@ def test_proxy_model_content_type_is_used_for_log_entries(self):
color2_delete_log = LogEntry.objects.all()[0]
self.assertEqual(color2_content_type, color2_delete_log.content_type)
+ def test_adminsite_display_site_url(self):
+ """
+ #13749 - Admin should display link to front-end site 'View site'
+ """
+ url = reverse('admin:index')
+ response = self.client.get(url)
+ self.assertEqual(response.context['site_url'], '/my-site-url/')
+ self.assertContains(response, '<a href="/my-site-url/">View site</a>')
+
@override_settings(TEMPLATE_DIRS=ADMIN_VIEW_TEMPLATES_DIR)
class AdminCustomTemplateTests(AdminViewBasicTestCase):
Please sign in to comment.
Something went wrong with that request. Please try again.