@@ -595,7 +595,8 @@ def get_exception(self, status, headers, format_, code,
595595 if format_ == F_HTML :
596596 headers ['Content-Type' ] = FORMAT_TYPES [F_HTML ]
597597 content = render_j2_template (
598- self .config , 'exception.html' , exception , SYSTEM_LOCALE )
598+ self .tpl_config , self .config ['server' ]['templates' ],
599+ 'exception.html' , exception , SYSTEM_LOCALE )
599600 else :
600601 content = to_json (exception , self .pretty_print )
601602
@@ -619,12 +620,13 @@ def get_format_exception(self, request) -> Tuple[dict, int, str]:
619620 HTTPStatus .BAD_REQUEST , headers ,
620621 request .format , 'InvalidParameterValue' , msg )
621622
622- def get_collections_url (self ):
623+ def get_collections_url (self ) -> str :
623624 return f"{ self .base_url } /collections"
624625
625- def set_dataset_templates (self , dataset ):
626- if 'templates' in self .config ['resources' ][dataset ]:
627- self .tpl_config ['server' ]['templates' ] = self .config ['resources' ][dataset ]['templates' ] # noqa
626+ def get_dataset_templates (self , dataset ) -> dict :
627+ templates = self .config ['resources' ][dataset ].get ('templates' )
628+
629+ return templates or self .tpl_config ['server' ]['templates' ]
628630
629631 @staticmethod
630632 def _create_crs_transform_spec (
@@ -829,8 +831,10 @@ def landing_page(api: API,
829831 'type' , 'collection' ):
830832 fcm ['collection' ] = True
831833
832- content = render_j2_template (api .tpl_config , 'landing_page.html' ,
833- fcm , request .locale )
834+ content = render_j2_template (
835+ api .tpl_config , api .config ['server' ]['templates' ],
836+ 'landing_page.html' , fcm , request .locale )
837+
834838 return headers , HTTPStatus .OK , content
835839
836840 if request .format == F_JSONLD :
@@ -860,8 +864,10 @@ def openapi_(api: API, request: APIRequest) -> Tuple[dict, int, str]:
860864 data = {
861865 'openapi-document-path' : path
862866 }
863- content = render_j2_template (api .tpl_config , template , data ,
864- request .locale )
867+ content = render_j2_template (
868+ api .tpl_config , api .config ['server' ]['templates' ], template , data ,
869+ request .locale )
870+
865871 return headers , HTTPStatus .OK , content
866872
867873 headers ['Content-Type' ] = 'application/vnd.oai.openapi+json;version=3.0' # noqa
@@ -908,8 +914,10 @@ def conformance(api, request: APIRequest) -> Tuple[dict, int, str]:
908914
909915 headers = request .get_response_headers (** api .api_headers )
910916 if request .format == F_HTML : # render
911- content = render_j2_template (api .tpl_config , 'conformance.html' ,
912- conformance , request .locale )
917+ content = render_j2_template (
918+ api .tpl_config , api .config ['server' ]['templates' ],
919+ 'conformance.html' , conformance , request .locale )
920+
913921 return headers , HTTPStatus .OK , content
914922
915923 return headers , HTTPStatus .OK , to_json (conformance , api .pretty_print )
@@ -1336,14 +1344,14 @@ def describe_collections(api: API, request: APIRequest,
13361344 if request .format == F_HTML : # render
13371345 fcm ['collections_path' ] = api .get_collections_url ()
13381346 if dataset is not None :
1339- api .set_dataset_templates (dataset )
1340- content = render_j2_template (api .tpl_config ,
1347+ tpl_config = api .get_dataset_templates (dataset )
1348+ content = render_j2_template (api .tpl_config , tpl_config ,
13411349 'collections/collection.html' ,
13421350 fcm , request .locale )
13431351 else :
1344- content = render_j2_template (api . tpl_config ,
1345- 'collections/index.html' ,
1346- fcm , request .locale )
1352+ content = render_j2_template (
1353+ api . tpl_config , api . config [ 'server' ][ 'templates' ] ,
1354+ 'collections/index.html' , fcm , request .locale )
13471355
13481356 return headers , HTTPStatus .OK , content
13491357
@@ -1428,14 +1436,14 @@ def get_collection_schema(api: API, request: Union[APIRequest, Any],
14281436 schema ['properties' ][k ]['x-ogc-role' ] = 'primary-instant'
14291437
14301438 if request .format == F_HTML : # render
1431- api .set_dataset_templates (dataset )
1439+ tpl_config = api .get_dataset_templates (dataset )
14321440 schema ['title' ] = l10n .translate (
14331441 api .config ['resources' ][dataset ]['title' ], request .locale )
14341442
14351443 schema ['collections_path' ] = api .get_collections_url ()
14361444 schema ['dataset_path' ] = f'{ api .get_collections_url ()} /{ dataset } '
14371445
1438- content = render_j2_template (api .tpl_config ,
1446+ content = render_j2_template (api .tpl_config , tpl_config ,
14391447 'collections/schema.html' ,
14401448 schema , request .locale )
14411449
0 commit comments