Filed! Thanks for your help. https://code.google.com/p/reviewboard/issues/detail?id=3423
On Tuesday, June 17, 2014 1:43:26 PM UTC-6, Christian Hammond wrote: > > Certainly. Always good to track these :) Might be a good student project > in the future. > > Thanks, > > 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:25:10 PM, Marc Bryan (marc...@gmail.com > <javascript:>) wrote: > > 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 >> 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) 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. >> 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.