Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion docs/cookbook/displaying_one_time_secrets.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ built-in create/edit handlers stamp anti-cache headers on the response
automatically; custom views must do so explicitly:

```python
response = await self.templates.TemplateResponse(request, "your_template.html", context)
response = await self.templates.TemplateResponse(request=request, name="your_template.html", context=context)
Secret.apply_no_store_headers(response)
return response
```
Expand Down
2 changes: 1 addition & 1 deletion docs/writing_custom_views.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ To add custom views to the Admin interface, you can use the `BaseView` included

@expose("/report", methods=["GET"])
async def report_page(self, request):
return await self.templates.TemplateResponse(request, "report.html")
return await self.templates.TemplateResponse(request=request, name="report.html")

admin.add_view(ReportView)
```
Expand Down
53 changes: 39 additions & 14 deletions sqladmin/application.py
Original file line number Diff line number Diff line change
Expand Up @@ -283,7 +283,8 @@ class CustomAdmin(BaseView):

@expose("/custom", methods=["GET"])
async def test_page(self, request: Request):
return await self.templates.TemplateResponse(request, "custom.html")
return await self.templates.TemplateResponse(
request=request, name="custom.html")

admin.add_base_view(CustomAdmin)
```
Expand Down Expand Up @@ -508,7 +509,10 @@ async def http_exception(
"message": exc.detail,
}
return await self.templates.TemplateResponse(
request, "sqladmin/error.html", context, status_code=exc.status_code
request=request,
name="sqladmin/error.html",
context=context,
status_code=exc.status_code,
)

routes = [
Expand Down Expand Up @@ -573,7 +577,9 @@ async def http_exception(
async def index(self, request: Request) -> Response:
"""Index route which can be overridden to create dashboards."""

return await self.templates.TemplateResponse(request, "sqladmin/index.html")
return await self.templates.TemplateResponse(
request=request, name="sqladmin/index.html"
)

@login_required
async def list(self, request: Request) -> Response:
Expand Down Expand Up @@ -604,7 +610,7 @@ async def list(self, request: Request) -> Response:
context["error"] = request.query_params["error"]

return await self.templates.TemplateResponse(
request, model_view.list_template, context
request=request, name=model_view.list_template, context=context
)

@login_required
Expand All @@ -625,7 +631,7 @@ async def details(self, request: Request) -> Response:
}

return await self.templates.TemplateResponse(
request, model_view.details_template, context
request=request, name=model_view.details_template, context=context
)

@login_required
Expand Down Expand Up @@ -678,7 +684,9 @@ async def _resolve_after_change_response(
context["secret_next_url"] = str(
request.url_for("admin:list", identity=identity)
)
response = await self.templates.TemplateResponse(request, template, context)
response = await self.templates.TemplateResponse(
request=request, name=template, context=context
)
Secret.apply_no_store_headers(response)
return response

Expand All @@ -701,7 +709,7 @@ async def create(self, request: Request) -> Response:
"form": form,
}
return await self.templates.TemplateResponse(
request, model_view.create_template, context
request=request, name=model_view.create_template, context=context
)

form_data = await self._handle_form_data(request)
Expand All @@ -714,7 +722,10 @@ async def create(self, request: Request) -> Response:

if not form.validate():
return await self.templates.TemplateResponse(
request, model_view.create_template, context, status_code=400
request=request,
name=model_view.create_template,
context=context,
status_code=400,
)

form_data_dict = self._denormalize_wtform_data(form.data, model_view.model)
Expand All @@ -724,7 +735,10 @@ async def create(self, request: Request) -> Response:
logger.exception(e)
context["error"] = str(e)
return await self.templates.TemplateResponse(
request, model_view.create_template, context, status_code=400
request=request,
name=model_view.create_template,
context=context,
status_code=400,
)

override = await self._resolve_after_change_response(
Expand Down Expand Up @@ -763,7 +777,7 @@ async def edit(self, request: Request) -> Response:

if request.method == "GET":
return await self.templates.TemplateResponse(
request, model_view.edit_template, context
request=request, name=model_view.edit_template, context=context
)

form_data = await self._handle_form_data(request, model)
Expand All @@ -772,7 +786,10 @@ async def edit(self, request: Request) -> Response:

if not form.validate():
return await self.templates.TemplateResponse(
request, model_view.edit_template, context, status_code=400
request=request,
name=model_view.edit_template,
context=context,
status_code=400,
)

form_data_dict = self._denormalize_wtform_data(form.data, model)
Expand All @@ -787,7 +804,10 @@ async def edit(self, request: Request) -> Response:
logger.exception(e)
context["error"] = str(e)
return await self.templates.TemplateResponse(
request, model_view.edit_template, context, status_code=400
request=request,
name=model_view.edit_template,
context=context,
status_code=400,
)

override = await self._resolve_after_change_response(
Expand Down Expand Up @@ -855,13 +875,18 @@ async def login(self, request: Request) -> Response:

context = {}
if request.method == "GET":
return await self.templates.TemplateResponse(request, "sqladmin/login.html")
return await self.templates.TemplateResponse(
request=request, name="sqladmin/login.html"
)

response = await self.authentication_backend.login(request)
if not response:
context["error"] = "Invalid credentials."
return await self.templates.TemplateResponse(
request, "sqladmin/login.html", context, status_code=400
request=request,
name="sqladmin/login.html",
context=context,
status_code=400,
)

if isinstance(response, Response):
Expand Down
3 changes: 2 additions & 1 deletion sqladmin/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -169,7 +169,8 @@ class CustomAdmin(BaseView):

@expose("/custom", methods=["GET"])
async def test_page(self, request: Request):
return await self.templates.TemplateResponse(request, "custom.html")
return await self.templates.TemplateResponse(
request=request, name="custom.html")

admin.add_base_view(CustomAdmin)
```
Expand Down
16 changes: 12 additions & 4 deletions tests/test_base_view.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,17 +21,23 @@ class CustomAdmin(BaseView):

@expose("/custom", methods=["GET"])
async def custom(self, request: Request):
return await self.templates.TemplateResponse(request, "custom.html")
return await self.templates.TemplateResponse(
request=request, name="custom.html"
)

@expose("/custom/report")
async def custom_report(self, request: Request):
return await self.templates.TemplateResponse(request, "custom.html")
return await self.templates.TemplateResponse(
request=request, name="custom.html"
)

# Add this for second test: Before alphabetically (!)
# first `expose` was BaseView url, now it's first by `order`
@expose("/a")
async def a(self, request: Request):
return await self.templates.TemplateResponse(request, "custom.html")
return await self.templates.TemplateResponse(
request=request, name="custom.html"
)


@pytest.fixture
Expand Down Expand Up @@ -69,7 +75,9 @@ class IndexNamedView(BaseView):

@expose("/activity-analytics", methods=["GET"])
async def index(self, request: Request):
return await self.templates.TemplateResponse(request, "custom.html")
return await self.templates.TemplateResponse(
request=request, name="custom.html"
)


def test_menu_view_url_with_index_method(client: TestClient) -> None:
Expand Down
2 changes: 1 addition & 1 deletion tests/test_models.py
Original file line number Diff line number Diff line change
Expand Up @@ -860,7 +860,7 @@ class UserAdmin(ModelView, model=User):
async def profile(self, request: Request):
user: User = await self.get_object_for_edit(request)
return await self.templates.TemplateResponse(
request, "user.html", {"user": user}
request=request, name="user.html", context={"user": user}
)

admin.add_view(UserAdmin)
Expand Down
Loading