1from typing import Any
2
3from plain.packages import packages_registry
4from plain.templates import register_template_filter, register_template_global
5
6from .views.registry import registry
7
8
9@register_template_filter
10def get_admin_model_detail_url(obj: Any) -> str | None:
11 return registry.get_model_detail_url(obj)
12
13
14@register_template_global
15def is_package_installed(package_name: str) -> bool:
16 try:
17 packages_registry.get_package_config(package_name)
18 return True
19 except LookupError:
20 return False