DashboardColumnsHook¶
reviewboard.extensions.hooks.DashboardColumnsHook
allows
extensions to register new columns for the dashboard. Users can add these
columns to their dashboard, move them around, and sort them. They behave just
like the default columns.
Dashboard columns can simply reflect information from the database, or provide any sort of custom rendering needed.
A caller simply instantiates DashboardColumnsHook
, passing a list
of djblets.datagrid.grids.Column
instances. Each instance must
have an id
attribute set to a value that’s unique.
Custom columns can also be created by subclassing
djblets.datagrid.grids.Column
.
Note that this is a specialization of
reviewboard.extensions.hooks.DataGridColumnsHook
. If you need to
add to any other datagrid, such as the one on the All Review Requests page,
then you should use DataGridColumnsHook instead.
Example¶
from django.utils.html import escape
from djblets.datagrid.grids import Column
from reviewboard.extensions.base import Extension
from reviewboard.extensions.hooks import DashboardColumnsHook
class MilestoneColumn(Column):
def render_data(self, review_request):
if 'myvendor_milestone' in review_request.extra_data:
return (
'<span class="myvendor-milestone">%s</span>'
% escape(review_request.extra_data['myvendor_milestone'])
)
return ''
class SampleExtension(Extension):
def initialize(self):
DashboardColumnsHook(self, [
MilestoneColumn(id='myvendor_milestone',
label='Milestone'),
])