summaryrefslogtreecommitdiffstats
path: root/src/lib/Server/Reports
diff options
context:
space:
mode:
authorTim Laszlo <tim.laszlo@gmail.com>2010-10-19 11:45:53 -0500
committerSol Jerome <sol.jerome@gmail.com>2010-11-02 20:35:18 -0500
commitd594844a9f5ebc0f26f35d03fcf1f90de4ef2d6a (patch)
tree6db4c913803f229722ca3a8effb6ed5e4eee1147 /src/lib/Server/Reports
parentb6c96eabe1c2ad98897abc2a4fa24ff01af49f68 (diff)
downloadbcfg2-d594844a9f5ebc0f26f35d03fcf1f90de4ef2d6a.tar.gz
bcfg2-d594844a9f5ebc0f26f35d03fcf1f90de4ef2d6a.tar.bz2
bcfg2-d594844a9f5ebc0f26f35d03fcf1f90de4ef2d6a.zip
web_reports: determine static prefix automatically
Diffstat (limited to 'src/lib/Server/Reports')
-rw-r--r--src/lib/Server/Reports/reports/templates/base.html16
-rw-r--r--src/lib/Server/Reports/reports/templatetags/bcfg2_tags.py35
2 files changed, 44 insertions, 7 deletions
diff --git a/src/lib/Server/Reports/reports/templates/base.html b/src/lib/Server/Reports/reports/templates/base.html
index 7a36c9893..9bd9da218 100644
--- a/src/lib/Server/Reports/reports/templates/base.html
+++ b/src/lib/Server/Reports/reports/templates/base.html
@@ -1,3 +1,5 @@
+{% load bcfg2_tags %}
+
<?xml version="1.0"?>
<!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" xml:lang="en" lang="en">
@@ -10,19 +12,19 @@
<meta name="robots" content="noindex, nofollow" />
<meta http-equiv="cache-control" content="no-cache" />
-<link rel="stylesheet" type="text/css" href="{{ MEDIA_URL }}/bcfg2_base.css" media="all" />
-<script type="text/javascript" src="{{ MEDIA_URL }}/bcfg2.js"></script>
-<script type="text/javascript" src="{{ MEDIA_URL }}/date.js"></script>
-<script type="text/javascript" src="{{ MEDIA_URL }}/AnchorPosition.js"></script>
-<script type="text/javascript" src="{{ MEDIA_URL }}/CalendarPopup.js"></script>
-<script type="text/javascript" src="{{ MEDIA_URL }}/PopupWindow.js"></script>
+<link rel="stylesheet" type="text/css" href="{% to_media_url bcfg2_base.css %}" media="all" />
+<script type="text/javascript" src="{% to_media_url bcfg2.js %}"></script>
+<script type="text/javascript" src="{% to_media_url date.js %}"></script>
+<script type="text/javascript" src="{% to_media_url AnchorPosition.js %}"></script>
+<script type="text/javascript" src="{% to_media_url CalendarPopup.js %}"></script>
+<script type="text/javascript" src="{% to_media_url PopupWindow.js %}"></script>
{% block extra_header_info %}{% endblock %}
</head>
<body onload="{% block body_onload %}{% endblock %}">
<div id="header">
- <a href="http://bcfg2.org"><img src='{{ MEDIA_URL }}/bcfg2_logo.png'
+ <a href="http://bcfg2.org"><img src='{% to_media_url bcfg2_logo.png %}'
height='115' width='300' alt='Bcfg2' style='float:left; height: 115px' /></a>
</div>
diff --git a/src/lib/Server/Reports/reports/templatetags/bcfg2_tags.py b/src/lib/Server/Reports/reports/templatetags/bcfg2_tags.py
index 8285915bd..7fffe289d 100644
--- a/src/lib/Server/Reports/reports/templatetags/bcfg2_tags.py
+++ b/src/lib/Server/Reports/reports/templatetags/bcfg2_tags.py
@@ -237,3 +237,38 @@ def sortwell(value):
configItems.sort(lambda x,y: cmp(x.entry.kind, y.entry.kind))
return configItems
+class MediaTag(template.Node):
+ def __init__(self, filter_value):
+ self.filter_value = filter_value
+
+ def render(self, context):
+ base = context['MEDIA_URL']
+ try:
+ request = context['request']
+ try:
+ base = request.environ['bcfg2.media_url']
+ except:
+ if request.path != request.META['PATH_INFO']:
+ offset = request.path.find(request.META['PATH_INFO'])
+ if offset > 0:
+ base = "%s/%s" % (request.path[:offset], \
+ context['MEDIA_URL'].strip('/'))
+ except:
+ pass
+ return "%s/%s" % (base, self.filter_value)
+
+@register.tag
+def to_media_url(parser, token):
+ """
+ Return a url relative to the media_url.
+
+ {% to_media_url /bcfg2.css %}
+ """
+ try:
+ tag_name, filter_value = token.split_contents()
+ filter_value = parser.compile_filter(filter_value)
+ except ValueError:
+ raise template.TemplateSyntaxError, "%r tag requires exactly one argument" % token.contents.split()[0]
+
+ return MediaTag(filter_value)
+