Provide a new API for plugins to add HTML to the <head> of the site

This commit is contained in:
Raphael Michel
2015-03-15 23:50:30 +01:00
parent c23468e266
commit f54515ba0a
9 changed files with 69 additions and 1 deletions

View File

@@ -1,14 +1,23 @@
from django.conf import settings
from django.core.urlresolvers import resolve
from .signals import html_head
def contextprocessor(request):
"""
Adds data to all template contexts
"""
url = resolve(request.path_info)
if url.namespace != 'control':
return {}
ctx = {
'url_name': resolve(request.path_info).url_name,
'url_name': url.url_name,
'settings': settings,
}
_html_head = []
if hasattr(request, 'event'):
for receiver, response in html_head.send(request.event):
_html_head.append(response)
ctx['html_head'] = "".join(_html_head)
return ctx

View File

@@ -8,3 +8,10 @@ This signal is sent out to build configuration forms for all restriction formset
restriction_formset = EventPluginSignal(
providing_args=["item"]
)
"""
This signal is sent out to include code into the HTML <head> tag
"""
html_head = EventPluginSignal(
providing_args=[]
)

View File

@@ -17,6 +17,7 @@
<script type="text/javascript" src="{% static "pretixcontrol/js/sb-admin-2.js" %}"></script>
<script type="text/javascript" src="{% static "pretixcontrol/js/ui/main.js" %}"></script>
{% endcompress %}
{{ html_head|safe }}
</head>
<body>
<div id="#wrapper">