Hi guys,
I'm having trouble writing a dashboard sidebar extension that adds custom
filters to the datagrid.
ie. I would like to make a few different links, but an example of one would
be 'Needs More Reviews', which would filter the reviews by:
- less than 2 Ship-its (2 is our internal rule)
- has no open reviews
- not yours
Here is what I have currently:
*extension.py:*
class MySidebarSection(BaseSidebarSection):
label = 'My Dashboard'
def get_items(self):
yield SidebarNavItem(self, 'My Requests to Push', view_id='push')
yield SidebarNavItem(self, 'My Requests to Fix', view_id='fix')
yield SidebarNavItem(self, 'Involved Reviews', view_id='involved')
yield SidebarNavItem(self, 'Needs More Reviews',
view_id='outstanding')
yield SidebarNavItem(self, 'All Requests to Push',
view_id='approved')
class MyDashboard(Extension):
metadata = {
'Name': 'My Dashboard',
'Summary': 'Summary here',
}
is_configurable = True
def initialize(self):
# Your extension initialization is done here.
DataGridSidebarItemsHook(self, MyDashboardDataGrid,
[MySidebarSection])
*datagrids.py*
class MyDashboardDataGrid(DashboardDataGrid):
def load_extra_state(self, profile):
# pass custom queryset and change title
user = self.request.user
fullPath = self.request.get_full_path()
view = self.request.GET.get('view', self.default_view)
q = Q(repository__name='MyRepo', target_groups__name='internal',
status='P')
if view == 'outstanding':
q = q & Q(shipit_count__lt=2, issue_open_count=0) # TODO:
make sure the review isn't yours
self.queryset = ReviewRequest.objects.filter(q)
self.title = _('Requests That Need Reviews (Reviews with #
ship-its < 2, no open issues, not yours)')
return super(MyDashboardDataGrid, self).load_extra_state(profile)
I assume this is all I need to do, but I keep getting this error when I
click on the 'Needs More Reviews' link.
Page not found (404)
Request Method: GET
Request URL: http://0.0.0.0:8080/dashboard/?view=outstanding
This 404 is being raised by DashboardDataGrid.load_extra_state().
It seems as if DataGridSidebarItemsHook isn't using MyDashboardDataGrid but
instead using DashboardDataGrid.
Is there anything I am missing?
Thanks for your help.
Marc
--
Get the Review Board Power Pack at http://www.reviewboard.org/powerpack/
---
Sign up for Review Board hosting at RBCommons: https://rbcommons.com/
---
Happy user? Let us know at http://www.reviewboard.org/users/
---
You received this message because you are subscribed to the Google Groups
"reviewboard" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.