Add signal html_page_start

This commit is contained in:
Raphael Michel
2018-08-11 12:52:46 +02:00
parent e645a350f2
commit 693965af28
3 changed files with 31 additions and 0 deletions

View File

@@ -25,3 +25,22 @@ def eventsignal(event: Event, signame: str, **kwargs):
if response:
_html.append(response)
return mark_safe("".join(_html))
@register.simple_tag
def signal(signame: str, request, **kwargs):
"""
Send a signal and return the concatenated return values of all responses.
Usage::
{% signal request "path.to.signal" argument="value" ... %}
"""
sigstr = signame.rsplit('.', 1)
sigmod = importlib.import_module(sigstr[0])
signal = getattr(sigmod, sigstr[1])
_html = []
for receiver, response in signal.send(request, **kwargs):
if response:
_html.append(response)
return mark_safe("".join(_html))