Plain is headed towards 1.0! Subscribe for development updates →

 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)