Plain is headed towards 1.0! Subscribe for development updates →

 1from typing import Any
 2
 3from plain.auth.requests import get_request_user
 4from plain.toolbar import ToolbarItem, register_toolbar_item
 5
 6from .impersonate import get_request_impersonator
 7from .views.registry import registry
 8
 9
10@register_toolbar_item
11class AdminToolbarItem(ToolbarItem):
12    name = "Admin"
13    button_template_name = "admin/toolbar/button.html"
14
15    def get_template_context(self) -> dict[str, Any]:
16        context = super().get_template_context()
17        # Add admin-specific context for the object if it exists
18        if "object" in context:
19            obj = context["object"]
20            context["object_admin_url"] = registry.get_model_detail_url(obj)
21            context["object_class_name"] = obj.__class__.__name__
22        context["impersonator"] = get_request_impersonator(self.request)
23        context["user"] = get_request_user(self.request)
24        return context