1from plain.runtime import settings
2from plain.templates import register_template_extension, register_template_filter
3from plain.templates.jinja.extensions import InclusionTagExtension
4from plain.utils.module_loading import import_string
5
6from .views.registry import registry
7
8
9@register_template_extension
10class ToolbarExtension(InclusionTagExtension):
11 tags = {"toolbar"}
12 template_name = "toolbar/toolbar.html"
13
14 def get_context(self, context, *args, **kwargs):
15 if isinstance(settings.ADMIN_TOOLBAR_CLASS, str):
16 cls = import_string(settings.ADMIN_TOOLBAR_CLASS)
17 else:
18 cls = settings.ADMIN_TOOLBAR_CLASS
19 context.vars["toolbar"] = cls(request=context["request"])
20 return context
21
22
23@register_template_filter
24def get_admin_model_detail_url(obj):
25 return registry.get_model_detail_url(obj)