Skip to content

Commit 8c8236f

Browse files
committed
fix templates
1 parent 7967856 commit 8c8236f

File tree

3 files changed

+24
-18
lines changed

3 files changed

+24
-18
lines changed

titiler/stacapi/factory.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,7 @@ def get_base_url(self, request: Request) -> str:
119119
path_format, param_convertors, request.path_params.copy()
120120
)
121121
base_url += prefix
122+
122123
return base_url
123124

124125
def register_routes(self) -> None:
@@ -416,7 +417,7 @@ def map_viewer(
416417
"tms": tms,
417418
"resolutions": [matrix.cellSize for matrix in tms],
418419
"template": {
419-
"api_root": self.get_base_url(request),
420+
"api_root": str(request.base_url).rstrip("/"),
420421
"params": request.query_params,
421422
"title": "Map",
422423
},

titiler/stacapi/main.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,7 @@
9393
optional_headers=optional_headers,
9494
router_prefix="/collections/{collection_id}",
9595
add_viewer=True,
96+
templates=templates,
9697
)
9798
app.include_router(
9899
collection.router, tags=["STAC Collection"], prefix="/collections/{collection_id}"
@@ -205,7 +206,7 @@ def landing(
205206
if output_type == MediaType.html:
206207
return create_html_response(
207208
request,
208-
data.model_dump_json(exclude_none=True),
209+
data.model_dump(exclude_none=True, mode="json"),
209210
templates=templates,
210211
template_name="landing",
211212
)

titiler/stacapi/utils.py

+20-16
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
import time
99
from typing import Any, Optional, Sequence, Type, Union
1010

11-
import orjson
1211
from starlette.requests import Request
1312
from starlette.templating import Jinja2Templates, _TemplateResponse
1413

@@ -42,48 +41,53 @@ def _newfn(*args: Any, **kwargs: Any):
4241

4342
def create_html_response(
4443
request: Request,
45-
data: str,
44+
data: Any,
4645
templates: Jinja2Templates,
4746
template_name: str,
47+
title: Optional[str] = None,
4848
router_prefix: Optional[str] = None,
49+
**kwargs: Any,
4950
) -> _TemplateResponse:
5051
"""Create Template response."""
5152
urlpath = request.url.path
5253
if root_path := request.app.root_path:
5354
urlpath = re.sub(r"^" + root_path, "", urlpath)
5455

56+
if router_prefix:
57+
urlpath = re.sub(r"^" + router_prefix, "", urlpath)
58+
5559
crumbs = []
5660
baseurl = str(request.base_url).rstrip("/")
5761

62+
if router_prefix:
63+
baseurl += router_prefix
64+
5865
crumbpath = str(baseurl)
66+
if urlpath == "/":
67+
urlpath = ""
68+
5969
for crumb in urlpath.split("/"):
6070
crumbpath = crumbpath.rstrip("/")
61-
6271
part = crumb
6372
if part is None or part == "":
6473
part = "Home"
65-
6674
crumbpath += f"/{crumb}"
6775
crumbs.append({"url": crumbpath.rstrip("/"), "part": part.capitalize()})
6876

69-
if router_prefix:
70-
baseurl += router_prefix
71-
7277
return templates.TemplateResponse(
73-
f"{template_name}.html",
74-
{
75-
"request": request,
76-
"response": orjson.loads(data),
78+
request,
79+
name=f"{template_name}.html",
80+
context={
81+
"response": data,
7782
"template": {
7883
"api_root": baseurl,
7984
"params": request.query_params,
80-
"title": "",
85+
"title": title or template_name,
8186
},
8287
"crumbs": crumbs,
83-
"url": str(request.url),
84-
"baseurl": baseurl,
85-
"urlpath": str(request.url.path),
86-
"urlparams": str(request.url.query),
88+
"url": baseurl + urlpath,
89+
"params": str(request.url.query),
90+
**kwargs,
8791
},
8892
)
8993

0 commit comments

Comments
 (0)