kopia lustrzana https://github.com/simonw/datasette
Fixed bug with custom templates for writable canned queries, closes #1547
rodzic
5fac26aa22
commit
4094741c28
|
@ -246,6 +246,11 @@ class QueryView(DataView):
|
||||||
extra_args["page_size"] = _size
|
extra_args["page_size"] = _size
|
||||||
|
|
||||||
templates = [f"query-{to_css_class(database)}.html", "query.html"]
|
templates = [f"query-{to_css_class(database)}.html", "query.html"]
|
||||||
|
if canned_query:
|
||||||
|
templates.insert(
|
||||||
|
0,
|
||||||
|
f"query-{to_css_class(database)}-{to_css_class(canned_query)}.html",
|
||||||
|
)
|
||||||
|
|
||||||
query_error = None
|
query_error = None
|
||||||
|
|
||||||
|
@ -340,12 +345,6 @@ class QueryView(DataView):
|
||||||
results = None
|
results = None
|
||||||
columns = []
|
columns = []
|
||||||
|
|
||||||
if canned_query:
|
|
||||||
templates.insert(
|
|
||||||
0,
|
|
||||||
f"query-{to_css_class(database)}-{to_css_class(canned_query)}.html",
|
|
||||||
)
|
|
||||||
|
|
||||||
allow_execute_sql = await self.ds.permission_allowed(
|
allow_execute_sql = await self.ds.permission_allowed(
|
||||||
request.actor, "execute-sql", database, default=True
|
request.actor, "execute-sql", database, default=True
|
||||||
)
|
)
|
||||||
|
|
|
@ -6,9 +6,19 @@ from .fixtures import make_app_client, app_client
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture
|
@pytest.fixture
|
||||||
def canned_write_client():
|
def canned_write_client(tmpdir):
|
||||||
|
template_dir = tmpdir / "canned_write_templates"
|
||||||
|
template_dir.mkdir()
|
||||||
|
(template_dir / "query-data-update_name.html").write_text(
|
||||||
|
"""
|
||||||
|
{% extends "query.html" %}
|
||||||
|
{% block content %}!!!CUSTOM_UPDATE_NAME_TEMPLATE!!!{{ super() }}{% endblock %}
|
||||||
|
""",
|
||||||
|
"utf-8",
|
||||||
|
)
|
||||||
with make_app_client(
|
with make_app_client(
|
||||||
extra_databases={"data.db": "create table names (name text)"},
|
extra_databases={"data.db": "create table names (name text)"},
|
||||||
|
template_dir=str(template_dir),
|
||||||
metadata={
|
metadata={
|
||||||
"databases": {
|
"databases": {
|
||||||
"data": {
|
"data": {
|
||||||
|
@ -344,3 +354,13 @@ def test_magic_parameters_cannot_be_used_in_arbitrary_queries(magic_parameters_c
|
||||||
)
|
)
|
||||||
assert 400 == response.status
|
assert 400 == response.status
|
||||||
assert response.json["error"].startswith("You did not supply a value for binding")
|
assert response.json["error"].startswith("You did not supply a value for binding")
|
||||||
|
|
||||||
|
|
||||||
|
def test_canned_write_custom_template(canned_write_client):
|
||||||
|
response = canned_write_client.get("/data/update_name")
|
||||||
|
assert response.status == 200
|
||||||
|
assert (
|
||||||
|
"<!-- Templates considered: *query-data-update_name.html, query-data.html, query.html -->"
|
||||||
|
in response.text
|
||||||
|
)
|
||||||
|
assert "!!!CUSTOM_UPDATE_NAME_TEMPLATE!!!" in response.text
|
||||||
|
|
Ładowanie…
Reference in New Issue