mirror of
https://github.com/simonw/datasette.git
synced 2025-12-10 16:51:24 +01:00
Added columns argument to various extra_ plugin hooks, closes #938
This commit is contained in:
parent
94ae840fe3
commit
3a4c8ed36a
5 changed files with 122 additions and 113 deletions
|
|
@ -26,7 +26,7 @@ def prepare_connection(conn, database, datasette):
|
|||
|
||||
|
||||
@hookimpl
|
||||
def extra_css_urls(template, database, table, view_name, request, datasette):
|
||||
def extra_css_urls(template, database, table, view_name, columns, request, datasette):
|
||||
async def inner():
|
||||
return [
|
||||
"https://plugin-example.com/{}/extra-css-urls-demo.css".format(
|
||||
|
|
@ -43,6 +43,7 @@ def extra_css_urls(template, database, table, view_name, request, datasette):
|
|||
"added": (
|
||||
await datasette.get_database().execute("select 3 * 5")
|
||||
).first()[0],
|
||||
"columns": columns,
|
||||
}
|
||||
).encode("utf8")
|
||||
).decode("utf8")
|
||||
|
|
@ -61,7 +62,9 @@ def extra_js_urls():
|
|||
|
||||
|
||||
@hookimpl
|
||||
def extra_body_script(template, database, table, view_name, request, datasette):
|
||||
def extra_body_script(
|
||||
template, database, table, view_name, columns, request, datasette
|
||||
):
|
||||
async def inner():
|
||||
return "var extra_body_script = {};".format(
|
||||
json.dumps(
|
||||
|
|
@ -77,6 +80,7 @@ def extra_body_script(template, database, table, view_name, request, datasette):
|
|||
"added": (
|
||||
await datasette.get_database().execute("select 3 * 5")
|
||||
).first()[0],
|
||||
"columns": columns,
|
||||
}
|
||||
)
|
||||
)
|
||||
|
|
@ -102,12 +106,15 @@ def render_cell(value, column, table, database, datasette):
|
|||
|
||||
|
||||
@hookimpl
|
||||
def extra_template_vars(template, database, table, view_name, request, datasette):
|
||||
def extra_template_vars(
|
||||
template, database, table, view_name, columns, request, datasette
|
||||
):
|
||||
return {
|
||||
"extra_template_vars": json.dumps(
|
||||
{
|
||||
"template": template,
|
||||
"scope_path": request.scope["path"] if request else None,
|
||||
"columns": columns,
|
||||
},
|
||||
default=lambda b: b.decode("utf8"),
|
||||
)
|
||||
|
|
|
|||
|
|
@ -65,6 +65,7 @@ def test_hook_plugin_prepare_connection_arguments(app_client):
|
|||
"view_name": "index",
|
||||
"request_path": "/",
|
||||
"added": 15,
|
||||
"columns": None,
|
||||
},
|
||||
),
|
||||
(
|
||||
|
|
@ -76,6 +77,7 @@ def test_hook_plugin_prepare_connection_arguments(app_client):
|
|||
"view_name": "database",
|
||||
"request_path": "/fixtures",
|
||||
"added": 15,
|
||||
"columns": None,
|
||||
},
|
||||
),
|
||||
(
|
||||
|
|
@ -87,6 +89,15 @@ def test_hook_plugin_prepare_connection_arguments(app_client):
|
|||
"view_name": "table",
|
||||
"request_path": "/fixtures/sortable",
|
||||
"added": 15,
|
||||
"columns": [
|
||||
"pk1",
|
||||
"pk2",
|
||||
"content",
|
||||
"sortable",
|
||||
"sortable_with_nulls",
|
||||
"sortable_with_nulls_2",
|
||||
"text",
|
||||
],
|
||||
},
|
||||
),
|
||||
],
|
||||
|
|
@ -234,6 +245,7 @@ def test_plugin_config_file(app_client):
|
|||
"view_name": "index",
|
||||
"request_path": "/",
|
||||
"added": 15,
|
||||
"columns": None,
|
||||
},
|
||||
),
|
||||
(
|
||||
|
|
@ -246,6 +258,7 @@ def test_plugin_config_file(app_client):
|
|||
"view_name": "database",
|
||||
"request_path": "/fixtures",
|
||||
"added": 15,
|
||||
"columns": None,
|
||||
},
|
||||
),
|
||||
(
|
||||
|
|
@ -258,11 +271,20 @@ def test_plugin_config_file(app_client):
|
|||
"view_name": "table",
|
||||
"request_path": "/fixtures/sortable",
|
||||
"added": 15,
|
||||
"columns": [
|
||||
"pk1",
|
||||
"pk2",
|
||||
"content",
|
||||
"sortable",
|
||||
"sortable_with_nulls",
|
||||
"sortable_with_nulls_2",
|
||||
"text",
|
||||
],
|
||||
},
|
||||
),
|
||||
],
|
||||
)
|
||||
def test_hook__extra_body_script(app_client, path, expected_extra_body_script):
|
||||
def test_hook_extra_body_script(app_client, path, expected_extra_body_script):
|
||||
r = re.compile(r"<script>var extra_body_script = (.*?);</script>")
|
||||
json_data = r.search(app_client.get(path).text).group(1)
|
||||
actual_data = json.loads(json_data)
|
||||
|
|
@ -286,6 +308,7 @@ def test_hook_extra_template_vars(restore_working_directory):
|
|||
assert {
|
||||
"template": "show_json.html",
|
||||
"scope_path": "/-/metadata",
|
||||
"columns": None,
|
||||
} == extra_template_vars
|
||||
extra_template_vars_from_awaitable = json.loads(
|
||||
Soup(response.body, "html.parser")
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue