wcs: fix make_public_url templatetag used with simple Context (#62460)
This commit is contained in:
parent
abae3b1a70
commit
ebcdc01084
|
@ -98,9 +98,15 @@ def format_text(field, value):
|
|||
def make_public_url(context, url):
|
||||
if not url or not is_url_from_known_service(url):
|
||||
return url
|
||||
if not context.request.session.session_key:
|
||||
context.request.session.cycle_key()
|
||||
session_key = context.request.session.session_key
|
||||
if hasattr(context, 'request'):
|
||||
request = context.request
|
||||
else:
|
||||
request = context.get('request')
|
||||
if request is None:
|
||||
return url
|
||||
if not request.session.session_key:
|
||||
request.session.cycle_key()
|
||||
session_key = request.session.session_key
|
||||
return reverse(
|
||||
'wcs-redirect-crypto-url',
|
||||
kwargs={
|
||||
|
|
|
@ -2910,6 +2910,26 @@ def test_card_cell_render_custom_schema_custom_entry(mock_send, context, app):
|
|||
|
||||
# test available context
|
||||
cell.card_ids = '11'
|
||||
cell.custom_schema = {
|
||||
'cells': [
|
||||
{
|
||||
'varname': '@custom@',
|
||||
'template': 'Foo bar baz {% make_public_url url="http://127.0.0.1:8999/" %}',
|
||||
'display_mode': 'label',
|
||||
},
|
||||
]
|
||||
}
|
||||
cell.save()
|
||||
resp = app.get(page.get_online_url())
|
||||
assert len(resp.context['cells']) == 1
|
||||
extra_ctx = re.findall(r'data-extra-context="(.*)"', resp.text)
|
||||
cell_url = reverse(
|
||||
'combo-public-ajax-page-cell',
|
||||
kwargs={'page_pk': page.pk, 'cell_reference': cell.get_reference()},
|
||||
)
|
||||
cell_resp = app.get(cell_url + '?ctx=' + extra_ctx[0])
|
||||
assert '/api/wcs/file/' in PyQuery(cell_resp.text).find('.label').text()
|
||||
|
||||
cell.custom_schema = {
|
||||
'cells': [
|
||||
{'varname': '@custom@', 'template': 'Foo bar baz X{{ site_base }}Y', 'display_mode': 'label'},
|
||||
|
|
Loading…
Reference in New Issue