29 lines
783 B
Python
29 lines
783 B
Python
|
|
from django.http import JsonResponse
|
||
|
|
from django.template.loader import render_to_string
|
||
|
|
|
||
|
|
|
||
|
|
def render_modal_workflow(
|
||
|
|
request, html_template, js_template=None, template_vars=None, json_data=None
|
||
|
|
):
|
||
|
|
""" "
|
||
|
|
Render a response consisting of an HTML chunk and a JS onload chunk
|
||
|
|
in the format required by the modal-workflow framework.
|
||
|
|
"""
|
||
|
|
if js_template:
|
||
|
|
raise TypeError(
|
||
|
|
"Passing a js_template argument to render_modal_workflow is no longer supported"
|
||
|
|
)
|
||
|
|
|
||
|
|
# construct response as JSON
|
||
|
|
response = {}
|
||
|
|
|
||
|
|
if html_template:
|
||
|
|
response["html"] = render_to_string(
|
||
|
|
html_template, template_vars or {}, request=request
|
||
|
|
)
|
||
|
|
|
||
|
|
if json_data:
|
||
|
|
response.update(json_data)
|
||
|
|
|
||
|
|
return JsonResponse(response)
|