load_template() plugin hook

Closes #1042
This commit is contained in:
Simon Willison 2020-10-30 10:47:18 -07:00 committed by GitHub
commit 81dea4b07a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
8 changed files with 73 additions and 12 deletions

View file

@ -43,6 +43,7 @@ EXPECTED_PLUGINS = [
"extra_js_urls",
"extra_template_vars",
"forbidden",
"load_template",
"menu_links",
"permission_allowed",
"prepare_connection",

View file

@ -308,3 +308,9 @@ def table_actions(datasette, database, table, actor):
},
{"href": datasette.urls.instance(), "label": "Table: {}".format(table)},
]
@hookimpl
def load_template(template, request):
if template == "show_json.html" and request.args.get("_special"):
return "<h1>Special show_json: {{ filename }}</h1>"

View file

@ -801,3 +801,8 @@ def test_hook_table_actions(app_client):
{"label": "Database: fixtures", "href": "/"},
{"label": "Table: facetable", "href": "/"},
]
def test_hook_load_template(app_client):
response = app_client.get("/-/databases?_special=1")
assert response.text == "<h1>Special show_json: databases.json</h1>"