26 lines
751 B
Python
26 lines
751 B
Python
from functools import lru_cache
|
|
from pathlib import Path
|
|
|
|
from django.template import TemplateDoesNotExist
|
|
from django.template.loader import select_template
|
|
|
|
import wagtail
|
|
|
|
|
|
@lru_cache(maxsize=None)
|
|
def template_is_overridden(template_name: str, expected_location: str) -> bool:
|
|
"""
|
|
Check if a template has been overridden.
|
|
|
|
A template is overridden if the resolved template file is different from the
|
|
expected location within the `wagtail` package directory.
|
|
"""
|
|
try:
|
|
template = select_template([template_name])
|
|
except TemplateDoesNotExist:
|
|
return False
|
|
|
|
root = Path(wagtail.__file__).resolve().parent
|
|
path = str(root / expected_location / template_name)
|
|
|
|
return template.origin.name != path
|