wcs: fix make_public_url templatetag used with simple Context (#62460)
gitea-wip/combo/pipeline/head There was a failure building this commit Details
gitea/combo/pipeline/head Build queued... Details

This commit is contained in:
Lauréline Guérin 2022-03-07 16:05:51 +01:00
parent abae3b1a70
commit ebcdc01084
No known key found for this signature in database
GPG Key ID: 1FAB9B9B4F93D473
2 changed files with 29 additions and 3 deletions

View File

@ -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={

View File

@ -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'},