Fix for redirects ignoring base_url, refs #1883

This commit is contained in:
Simon Willison 2022-11-10 22:49:54 -08:00
commit fa9cc9efaf
2 changed files with 20 additions and 8 deletions

View file

@ -286,7 +286,7 @@ class TableView(DataView):
if redirect_params: if redirect_params:
return self.redirect( return self.redirect(
request, request,
path_with_added_args(request, redirect_params), self.ds.urls.path(path_with_added_args(request, redirect_params)),
forward_querystring=False, forward_querystring=False,
) )
@ -294,13 +294,15 @@ class TableView(DataView):
if "_sort_by_desc" in request.args: if "_sort_by_desc" in request.args:
return self.redirect( return self.redirect(
request, request,
path_with_added_args( self.ds.urls.path(
request, path_with_added_args(
{ request,
"_sort_desc": request.args.get("_sort"), {
"_sort_by_desc": None, "_sort_desc": request.args.get("_sort"),
"_sort": None, "_sort_by_desc": None,
}, "_sort": None,
},
)
), ),
forward_querystring=False, forward_querystring=False,
) )

View file

@ -801,6 +801,16 @@ def test_base_url_config(app_client_base_url_prefix, path, use_prefix):
) )
def test_base_url_affects_filter_redirects(app_client_base_url_prefix):
path = "/fixtures/binary_data?_filter_column=rowid&_filter_op=exact&_filter_value=1&_sort=rowid"
response = app_client_base_url_prefix.get(path)
assert response.status == 302
assert (
response.headers["location"]
== "/prefix/fixtures/binary_data?_sort=rowid&rowid__exact=1"
)
def test_base_url_affects_metadata_extra_css_urls(app_client_base_url_prefix): def test_base_url_affects_metadata_extra_css_urls(app_client_base_url_prefix):
html = app_client_base_url_prefix.get("/").text html = app_client_base_url_prefix.get("/").text
assert '<link rel="stylesheet" href="/prefix/static/extra-css-urls.css">' in html assert '<link rel="stylesheet" href="/prefix/static/extra-css-urls.css">' in html