Cool! Do you think it is worth filing this as an enhancement ticket? On Tuesday, June 17, 2014 1:19:41 PM UTC-6, Christian Hammond wrote: > > Hey Marc, > > I can certainly relate. Time’s a problem for me as well. I’d love to add > this ability, and think it makes sense, but I can’t give you an ETA right > now. Swamped with a large To Do list. > > If it were being written, what I’d expect is a hook that > DashboardDataGrid’s view directly uses. It would take the ?view= provided > to the URL, find the appropriate hook, and either render the queryset it > provides through DashboardDataGrid, or render a custom DataGrid. There’s > probably a lot to think through, like how the sidebar works, where things > integrate, etc. > > Christian > > -- > Christian Hammond - chri...@beanbaginc.com <javascript:> > Review Board - http://www.reviewboard.org > Beanbag, Inc. - http://www.beanbaginc.com > > On June 17, 2014 at 12:15:56 PM, Marc Bryan (marc...@gmail.com > <javascript:>) wrote: > > Thanks Christian. Makes sense to post to reviewboard-dev. :) > > Are there any plans to add another extension point / change the way this > works in the future? If I get a chance I can look into making a patch, but > time is always the problem :D > > Marc > > On Monday, June 16, 2014 10:35:46 PM UTC-6, Christian Hammond wrote: >> >> Hi Marc, >> >> The reviewboard-dev list is a better place for these questions, since >> there’s less traffic there and more people interested in RB-related >> development. >> >> That said, the problem is that you cannot replace the dashboard. The >> parameter for the datagrid in DataGridSidebarItemsHook is the class that >> the sidebar should apply to, but it must be an existing, established >> datagrid. What you’d have to do there is provide your own URL and view for >> your this datagrid, render that there, and then link to that URL. That also >> means you’ll need these hooks in two places, which is going to be a bit >> annoying. >> >> It’s not ideal, but that’s how it works currently. >> >> Christian >> >> -- >> Christian Hammond - chri...@beanbaginc.com >> Review Board - http://www.reviewboard.org >> Beanbag, Inc. - http://www.beanbaginc.com >> >> On June 16, 2014 at 11:24:54 AM, Marc Bryan (marc...@gmail.com) wrote: >> >> 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 reviewboard...@googlegroups.com. >> For more options, visit https://groups.google.com/d/optout. >> >> -- > 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 reviewboard...@googlegroups.com <javascript:>. > For more options, visit https://groups.google.com/d/optout. > >
-- 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 reviewboard+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.