UserPageSidebarItemsHook¶
reviewboard.extensions.hooks.UserPageSidebarItemsHook can be used
to add items to the sidebar on the user page. These items can contain
anything: Links, images, statistics, or anything else the extension may want
to provide.
Sidebar items are subclasses of
reviewboard.datagrids.sidebar.BaseSidebarItem. Review Board
provides two built-in items:
reviewboard.datagrids.sidebar.BaseSidebarSection and
reviewboard.datagrids.sidebar.SidebarNavItem.
To use the hook, simply instantiate it and pass a list of BaseSidebarItem subclasses to it. These will then automatically appear in the user page’s sidebar.
Example¶
from typing import TYPE_CHECKING
from reviewboard.datagrids.sidebar import (BaseSidebarSection,
SidebarNavItem)
from reviewboard.extensions.base import Extension
from reviewboard.extensions.hooks import UserPageSidebarItemsHook
if TYPE_CHECKING:
from collections.abc import Sequence
class SampleSidebarSection(BaseSidebarSection):
label = 'My Links'
def get_items(self) -> Sequence[SidebarNavItem]:
return [
SidebarNavItem(label='Link 1',
url_name='myvendor_url_name_1',
count=10),
SidebarNavItem(label='Link 2',
url_name='myvendor_url_name_2')
]
class SampleExtension(Extension):
def initialize(self) -> None:
UserPageSidebarItemsHook(self, [SampleSidebarSection])