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...
1 parent ce0d0cd commit 49c670871634e78d588cba21f84b094479f2aa4f @jacobian jacobian committed Aug 2, 2005
Showing with 44 additions and 0 deletions.
  1. +21 −0 django/conf/admin_templates/doc/template_detail.html
  2. +2 −0 django/conf/urls/admin.py
  3. +21 −0 django/views/admin/doc.py
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 #
####################

0 comments on commit 49c6708

Please sign in to comment.