templates: pass request in context whenever it's available (#21137)
This commit is contained in:
parent
644619cea4
commit
698a013d50
|
@ -0,0 +1,14 @@
|
|||
{% extends "qommon/forms/widget.html" %}
|
||||
{% load qommon %}
|
||||
{% block widget-control %}
|
||||
<!-- TEST TEMPLATE -->
|
||||
<!-- backoffice: {{ request.quixote_request.is_in_backoffice|pprint }} -->
|
||||
<select id="form_{{widget.name}}" name="{{widget.name}}"
|
||||
{% for attr in widget.attrs.items %}{{attr.0}}="{{attr.1}}"{% endfor %}>
|
||||
<option value="">---</option>
|
||||
{% for option in widget.get_options %}
|
||||
<option{% for attr in option.attrs.items %} {{attr.0}}="{{attr.1}}"{% endfor %}
|
||||
>{{ option.description }}</option>
|
||||
{% endfor %}
|
||||
</select>
|
||||
{% endblock %}
|
|
@ -3914,3 +3914,21 @@ def test_resubmit(pub):
|
|||
resp = resp.click('new draft')
|
||||
resp = resp.follow()
|
||||
assert resp.forms[1]['f2'].value == 'XXX'
|
||||
|
||||
def test_form_custom_select_template(pub):
|
||||
formdef = create_formdef()
|
||||
formdef.fields = [
|
||||
fields.ItemField(id='1', label='select', type='item',
|
||||
required=True,
|
||||
varname='foo', items=['Foo', 'Bar', 'Baz'])]
|
||||
formdef.store()
|
||||
formdef.data_class().wipe()
|
||||
resp = get_app(pub).get('/test/')
|
||||
assert not 'TEST TEMPLATE' in resp.body
|
||||
formdef.fields[0].extra_css_class = 'template-test'
|
||||
formdef.store()
|
||||
|
||||
resp = get_app(pub).get('/test/')
|
||||
assert 'TEST TEMPLATE' in resp.body
|
||||
# make sure request is available in context
|
||||
assert '<!-- backoffice: False -->' in resp.body
|
||||
|
|
|
@ -94,6 +94,8 @@ def create_temporary_pub(sql_mode=False):
|
|||
return pub
|
||||
|
||||
os.mkdir(pub.app_dir)
|
||||
os.symlink(os.path.join(os.path.dirname(__file__), 'templates'),
|
||||
os.path.join(pub.app_dir, 'templates'))
|
||||
fd = file(os.path.join(pub.app_dir, 'site-options.cfg'), 'w')
|
||||
fd.write('[wscall-secrets]\n')
|
||||
fd.write('idp.example.net = BAR\n')
|
||||
|
|
|
@ -415,7 +415,8 @@ def decorate(body, response):
|
|||
|
||||
|
||||
def render(template_name, context):
|
||||
return htmltext(render_to_string(template_name, context).encode('utf-8'))
|
||||
request = getattr(get_request(), 'django_request', None)
|
||||
return htmltext(render_to_string(template_name, context, request=request).encode('utf-8'))
|
||||
|
||||
|
||||
class TemplateError(Exception):
|
||||
|
|
|
@ -94,6 +94,7 @@ TEMPLATES = [
|
|||
"django.template.context_processors.debug",
|
||||
"django.template.context_processors.i18n",
|
||||
"django.template.context_processors.media",
|
||||
"django.template.context_processors.request",
|
||||
"django.template.context_processors.static",
|
||||
"django.template.context_processors.tz",
|
||||
"django.contrib.messages.context_processors.messages",
|
||||
|
|
Loading…
Reference in New Issue