* update overridden django admin templates

* get rid of the "get_media_url()" helper and use staticfiles instead (fixes issue #2)
* fixes for custom menu and dashboard media
This commit is contained in:
David Jean Louis 2015-07-07 10:36:37 +02:00
parent 71ad7eb234
commit 5bda74f00b
11 changed files with 52 additions and 76 deletions

View File

@ -1,5 +1,5 @@
{% extends "admin/base_site.html" %}
{% load i18n admin_tools_dashboard_tags %}
{% load i18n admin_static admin_tools_dashboard_tags %}
{% block extrastyle %}
{{ block.super }}

View File

@ -1,7 +1,8 @@
<link rel="stylesheet" href="{{ media_url }}/admin_tools/css/jquery/jquery-ui.css" type="text/css" media="screen, projection"/>
<link rel="stylesheet" href="{{ media_url }}/admin_tools/css/dashboard.css" type="text/css" media="screen, projection"/>
{% load staticfiles %}
<link rel="stylesheet" href="{% static "admin_tools/css/jquery/jquery-ui.css" %}" type="text/css" media="screen, projection"/>
<link rel="stylesheet" href="{% static "admin_tools/css/dashboard.css" %}" type="text/css" media="screen, projection"/>
<!--[if lt IE 8]>
<link rel="stylesheet" href="{{ media_url }}/admin_tools/css/dashboard-ie.css" type="text/css" media="screen, projection"/>
<link rel="stylesheet" href="{% static "admin_tools/css/dashboard-ie.css" %}" type="text/css" media="screen, projection"/>
<![endif]-->
{% for css in css_files %}
<link rel="stylesheet" href="{{ media_url }}/{{ css }}" type="text/css" media="screen, projection"/>{% endfor %}
{% for media_type, files in css_files.items %}{% for css in files %}
<link rel="stylesheet" href="{% static css %}" type="text/css" media="{{ media_type }}"/>{% endfor %}{% endfor %}

View File

@ -1,38 +1,38 @@
{% load i18n admin_tools_dashboard_tags %}
{% load i18n staticfiles admin_tools_dashboard_tags %}
{% block dashboard_scripts %}
<script type="text/javascript" src="{{ media_url }}/admin_tools/js/utils.js"></script>
<script type="text/javascript" src="{% static "admin_tools/js/utils.js" %}"></script>
<script type="text/javascript" charset="utf-8">
// Load js files syncronously and conditionally
var js_files = [
{
src : '{{ media_url }}/admin_tools/js/jquery/jquery.min.js',
src : '{% static "admin_tools/js/jquery/jquery.min.js" %}',
test: function() { return typeof(jQuery) == 'undefined'; }
},
{
src : '{{ media_url }}/admin_tools/js/jquery/jquery-ui.min.js',
src : '{% static "admin_tools/js/jquery/jquery-ui.min.js" %}',
test: function() { return typeof(jQuery.ui) == 'undefined'; }
},
{
src : '{{ media_url }}/admin_tools/js/json.min.js',
src : '{% static "admin_tools/js/json.min.js" %}',
test: function() { return typeof(JSON.stringify) == 'undefined'; }
},
{
src : '{{ media_url }}/admin_tools/js/jquery/jquery.cookie.min.js',
src : '{% static "admin_tools/js/jquery/jquery.cookie.min.js" %}',
test: function() { return typeof(jQuery.cookie) == 'undefined'; }
},
{
src : '{{ media_url }}/admin_tools/js/jquery/jquery.dashboard.js',
src : '{% static "admin_tools/js/jquery/jquery.dashboard.js" %}',
test: function() { return true; }
},
{
src : '{{ media_url }}/admin_tools/js/dashboard.js',
src : '{% static "admin_tools/js/dashboard.js" %}',
test: function() { return true; }
}{% for js in dashboard.Media.js %},
{
src : '{{ media_url }}/{{ js }}',
src : '{% static js %}',
test: function() { return true; }
}{% endfor %}
];

View File

@ -13,7 +13,7 @@ from django import template
from django.db import IntegrityError
from django.core.urlresolvers import reverse
from admin_tools.utils import get_media_url, get_admin_site_name
from admin_tools.utils import get_admin_site_name
from admin_tools.dashboard.utils import get_dashboard
from admin_tools.dashboard.models import DashboardPreferences
@ -63,7 +63,6 @@ def admin_tools_render_dashboard(context, location='index', dashboard=None):
'dashboard': dashboard,
'dashboard_preferences': preferences,
'split_at': math.ceil(float(len(dashboard.children))/float(dashboard.columns)),
'media_url': get_media_url(),
'has_disabled_modules': len([m for m in dashboard.children \
if not m.enabled]) > 0,
'admin_url': reverse('%s:index' % get_admin_site_name(context)),
@ -108,7 +107,6 @@ def admin_tools_render_dashboard_css(context, location='index', dashboard=None):
context.update({
'template' : 'admin_tools/dashboard/css.html',
'css_files': dashboard.Media.css,
'media_url': get_media_url(),
})
return context
admin_tools_render_dashboard_css = tag_func(admin_tools_render_dashboard_css)

View File

@ -1,7 +1,7 @@
{% extends "admin/base.html" %}
{% load i18n admin_tools_menu_tags %}
{% load admin_tools_menu_tags %}
{% block title %}{{ title }} | {% trans 'Django site admin' %}{% endblock %}
{% block title %}{{ title }} | {{ site_title|default:_('Django site admin') }}{% endblock %}
{% block extrastyle %}
{{ block.super }}
@ -13,7 +13,7 @@
{% endblock %}
{% block branding %}
<h1 id="site-name">{% trans 'Django administration' %}</h1>
<h1 id="site-name"><a href="{% url 'admin:index' %}">{{ site_header|default:_('Django administration') }}</a></h1>
{% endblock %}
{% block nav-global %}

View File

@ -1,6 +1,7 @@
<link rel="stylesheet" href="{{ media_url }}/admin_tools/css/menu.css" type="text/css" media="screen, projection"/>
{% load staticfiles %}
<link rel="stylesheet" href="{% static "admin_tools/css/menu.css" %}" type="text/css" media="screen, projection"/>
<!--[if lt IE 8]>
<link rel="stylesheet" href="{{ media_url }}/admin_tools/css/menu-ie.css" type="text/css" media="screen, projection"/>
<link rel="stylesheet" href="{% static "admin_tools/css/menu-ie.css" type="text/css" media="screen, projection"/>
<![endif]-->
{% for css in css_files %}
<link rel="stylesheet" href="{{ media_url }}/{{ css }}" type="text/css" media="screen, projection"/>{% endfor %}
{% for media_type, files in css_files.items %}{% for css in files %}
<link rel="stylesheet" href="{% static css %}" type="text/css" media="{{ media_type }}"/>{% endfor %}{% endfor %}

View File

@ -1,24 +1,24 @@
{% load i18n admin_tools_menu_tags %}
{% load i18n staticfiles admin_tools_menu_tags %}
{% if menu.children %}
<script type="text/javascript" src="{{ media_url }}/admin_tools/js/utils.js"></script>
<script type="text/javascript" src="{% static "admin_tools/js/utils.js" %}"></script>
<script type="text/javascript" charset="utf-8">
// Load js files syncronously and conditionally
var js_files = [
{
src : '{{ media_url }}/admin_tools/js/jquery/jquery.min.js',
src : '{% static "admin_tools/js/jquery/jquery.min.js" %}',
test: function() { return typeof(jQuery) == 'undefined'; }
},
{
src : '{{ media_url }}/admin_tools/js/json.min.js',
src : '{% static "admin_tools/js/json.min.js" %}',
test: function() { return typeof(JSON.stringify) == 'undefined'; }
},
{
src : '{{ media_url }}/admin_tools/js/menu.js',
src : '{% static "admin_tools/js/menu.js" %}',
test: function() { return true; }
}{% for js in menu.Media.js %},
{
src : '{{ media_url }}/{{ js }}',
src : '{% static js %}',
test: function() { return true; }
}{% endfor %}
];

View File

@ -11,7 +11,7 @@ To load the menu tags in your templates: ``{% load admin_tools_menu_tags %}``.
from django import template
from django.core.urlresolvers import reverse
from admin_tools.utils import get_media_url, get_admin_site_name
from admin_tools.utils import get_admin_site_name
from admin_tools.menu import items
from admin_tools.menu.models import Bookmark
from admin_tools.menu.utils import get_admin_menu
@ -42,7 +42,6 @@ def admin_tools_render_menu(context, menu=None):
context.update({
'template': menu.template,
'menu': menu,
'media_url': get_media_url(),
'has_bookmark_item': has_bookmark_item,
'bookmark': bookmark,
'admin_url': reverse('%s:index' % get_admin_site_name(context)),
@ -81,7 +80,6 @@ def admin_tools_render_menu_css(context, menu=None):
context.update({
'template': 'admin_tools/menu/css.html',
'css_files': menu.Media.css,
'media_url': get_media_url(),
})
return context
admin_tools_render_menu_css = tag_func(admin_tools_render_menu_css)

View File

@ -1,15 +1,14 @@
{% load theming_tags %}
{% load firstof from future %}
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="{{ LANGUAGE_CODE }}" xml:lang="{{ LANGUAGE_CODE }}" {% if LANGUAGE_BIDI %}dir="rtl"{% endif %}>
{% load admin_static theming_tags %}{% load firstof from future %}<!DOCTYPE html>
<html lang="{{ LANGUAGE_CODE|default:"en-us" }}" {% if LANGUAGE_BIDI %}dir="rtl"{% endif %}>
<head>
<title>{% block title %}{% endblock %}</title>
<link rel="stylesheet" type="text/css" href="{% block stylesheet %}{% get_admin_media "css/base.css" %}{% endblock %}" />
<link rel="stylesheet" type="text/css" href="{% block stylesheet %}{% static "admin/css/base.css" %}{% endblock %}" />
{% block extrastyle %}{% endblock %}
<!--[if lte IE 7]><link rel="stylesheet" type="text/css" href="{% block stylesheet_ie %}{% get_admin_media "css/ie.css" %}{% endblock %}" /><![endif]-->
{% if LANGUAGE_BIDI %}<link rel="stylesheet" type="text/css" href="{% block stylesheet_rtl %}{% get_admin_media "css/rtl.css" %}{% endblock %}" />{% endif %}
<!--[if lte IE 7]><link rel="stylesheet" type="text/css" href="{% block stylesheet_ie %}{% static "admin/css/ie.css" %}{% endblock %}" /><![endif]-->
{% if LANGUAGE_BIDI %}<link rel="stylesheet" type="text/css" href="{% block stylesheet_rtl %}{% static "admin/css/rtl.css" %}{% endblock %}" />{% endif %}
{% render_theming_css %}
<script type="text/javascript">window.__admin_media_prefix__ = "{% filter escapejs %}{% get_admin_media %}{% endfilter %}";</script>
<script type="text/javascript">window.__admin_media_prefix__ = "{% filter escapejs %}{% static "admin/" %}{% endfilter %}";</script>
<script type="text/javascript">window.__admin_utc_offset__ = "{% filter escapejs %}{% now "Z" %}{% endfilter %}";</script>
{% block extrahead %}{% endblock %}
{% block blockbots %}<meta name="robots" content="NONE,NOARCHIVE" />{% endblock %}
</head>
@ -28,27 +27,19 @@
</div>
{% if user.is_active and user.is_staff %}
<div id="user-tools">
{% trans 'Welcome,' %}
<strong>{% filter force_escape %}{% firstof user.get_short_name user.first_name user.get_username user.username %}{% endfilter %}</strong>.
{% block welcome-msg %}
{% trans 'Welcome,' %}
<strong>{% firstof user.get_short_name user.get_username %}</strong>.
{% endblock %}
{% block userlinks %}
{% url 'django-admindocs-docroot' as docsroot %}
{% if docsroot %}
<a href="{{ docsroot }}">{% trans 'Documentation' %}</a> /
{% endif %}
{% url 'admin:password_change' as password_change_url %}
{% if password_change_url %}
<a href="{{ password_change_url }}">
{% else %}
<a href="{{ root_path }}password_change/">
{% if user.has_usable_password %}
<a href="{% url 'admin:password_change' %}">{% trans 'Change password' %}</a> /
{% endif %}
{% trans 'Change password' %}</a> /
{% url 'admin:logout' as logout_url %}
{% if logout_url %}
<a href="{{ logout_url }}">
{% else %}
<a href="{{ root_path }}logout/">
{% endif %}
{% trans 'Log out' %}</a>
<a href="{% url 'admin:logout' %}">{% trans 'Log out' %}</a>
{% endblock %}
</div>
{% endif %}
@ -66,8 +57,8 @@
{% block messages %}
{% if messages %}
<ul class="messagelist">{% for message in messages %}
<li{% if message.tags %} class="{{ message.tags }}"{% endif %}>{{ message }}</li>
{% endfor %}</ul>
<li{% if message.tags %} class="{{ message.tags }}"{% endif %}>{{ message|capfirst }}</li>
{% endfor %}</ul>
{% endif %}
{% endblock messages %}

View File

@ -6,7 +6,7 @@ To load the theming tags just do: ``{% load theming_tags %}``.
from django import template
from django.conf import settings
from admin_tools.utils import get_media_url
from django.contrib.staticfiles.storage import staticfiles_storage
register = template.Library()
@ -15,11 +15,9 @@ def render_theming_css():
Template tag that renders the needed css files for the theming app.
"""
css = getattr(settings, 'ADMIN_TOOLS_THEMING_CSS', False)
if css:
css = '/'.join([get_media_url(), css])
else:
css = '/'.join([get_media_url(), 'admin_tools', 'css', 'theming.css'])
return '<link rel="stylesheet" type="text/css" media="screen" href="%s" />' % css
if not css:
css = '/'.join(['admin_tools', 'css', 'theming.css'])
return '<link rel="stylesheet" type="text/css" media="screen" href="%s" />' % staticfiles_storage.url(css)
register.simple_tag(render_theming_css)

View File

@ -154,14 +154,3 @@ class AppListElementMixin(object):
return reverse('%s:%s_%s_add' % (get_admin_site_name(context),
app_label,
model.__name__.lower()))
def get_media_url():
"""
Returns the django admin tools media URL.
"""
media_url = getattr(settings, 'ADMIN_TOOLS_MEDIA_URL', None)
if media_url is None:
media_url = getattr(settings, 'STATIC_URL', None)
if media_url is None:
media_url = getattr(settings, 'MEDIA_URL')
return media_url.rstrip('/')