Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Added doc view for templates that will show the search path for a giv…

…en template on each site

git-svn-id: http://code.djangoproject.com/svn/django/trunk@392 bcc190cf-cafb-0310-a4f2-bffc1f526a37
  • Loading branch information...
commit 49c670871634e78d588cba21f84b094479f2aa4f 1 parent ce0d0cd
@jacobian jacobian authored
View
21 django/conf/admin_templates/doc/template_detail.html
@@ -0,0 +1,21 @@
+{% extends "base_site" %}
+
+{% block breadcrumbs %}<div class="breadcrumbs"><a href="../../../">Home</a> &rsaquo; <a href="../../">Documentation</a> &rsaquo; Templates &rsaquo; {{ name }}</div>{% endblock %}
+
+{% block title %}Template: {{ name }}{% endblock %}
+
+{% block content %}
+<h1>Template: "{{ name }}"</h1>
+
+{% regroup templates|dictsort:"site_id" by site as templates_by_site %}
+{% for group in templates_by_site %}
+ <h2>Search path for template "{{ name }}" on {{ group.grouper }}:</h2>
+ <ol>
+ {% for template in group.list|dictsort:"order" %}
+ <li><code>{{ template.file }}</code>{% if not template.exists %} <em>(does not exist)</em>{% endif %}</li>
+ {% endfor %}
+ </ol>
+{% endfor %}
+
+<p class="small"><a href="../../">&lsaquo; Back to Documentation</a></p>
+{% endblock %}
View
2  django/conf/urls/admin.py
@@ -18,6 +18,8 @@
('^doc/views/(?P<view>[^/]+)/$', 'django.views.admin.doc.view_detail'),
('^doc/models/$', 'django.views.admin.doc.model_index'),
('^doc/models/(?P<model>[^/]+)/$', 'django.views.admin.doc.model_detail'),
+# ('^doc/templates/$', 'django.views.admin.doc.template_index'),
+ ('^doc/templates/(?P<template>.*)/$', 'django.views.admin.doc.template_detail'),
)
if 'ellington.events' in INSTALLED_APPS:
View
21 django/views/admin/doc.py
@@ -218,6 +218,27 @@ def model_detail(request, model):
})
return HttpResponse(t.render(c))
+def template_detail(request, template):
+ templates = []
+ for site_settings_module in settings.ADMIN_FOR:
+ settings_mod = __import__(site_settings_module, '', '', [''])
+ for dir in settings_mod.TEMPLATE_DIRS:
+ template_file = os.path.join(dir, "%s.html" % template)
+ templates.append({
+ 'file' : template_file,
+ 'exists' : os.path.exists(template_file),
+ 'contents' : lambda: os.path.exists(template_file) and open(template_file).read() or '',
+ 'site_id' : settings_mod.SITE_ID,
+ 'site' : sites.get_object(pk=settings_mod.SITE_ID),
+ 'order' : list(settings_mod.TEMPLATE_DIRS).index(dir),
+ })
+ t = template_loader.get_template('doc/template_detail')
+ c = Context(request, {
+ 'name' : template,
+ 'templates' : templates,
+ })
+ return HttpResponse(t.render(c))
+
####################
# Helper functions #
####################
Please sign in to comment.
Something went wrong with that request. Please try again.