Added doc view for templates that will show the search path for a given template on each site

git-svn-id: http://code.djangoproject.com/svn/django/trunk@392 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
Jacob Kaplan-Moss 2005-08-02 20:29:27 +00:00
parent ce0d0cd9e2
commit 49c6708716
3 changed files with 44 additions and 0 deletions

View File

@ -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 File

@ -18,6 +18,8 @@ urlpatterns = (
('^doc/views/(?P<view>[^/]+)/$', 'django.views.admin.doc.view_detail'), ('^doc/views/(?P<view>[^/]+)/$', 'django.views.admin.doc.view_detail'),
('^doc/models/$', 'django.views.admin.doc.model_index'), ('^doc/models/$', 'django.views.admin.doc.model_index'),
('^doc/models/(?P<model>[^/]+)/$', 'django.views.admin.doc.model_detail'), ('^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: if 'ellington.events' in INSTALLED_APPS:

View File

@ -218,6 +218,27 @@ def model_detail(request, model):
}) })
return HttpResponse(t.render(c)) 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 # # Helper functions #
#################### ####################