• 
      

    Add a Dashboard toggle to show or hide archived review requests

    Review Request #7109 — Created March 24, 2015 and submitted

    Information

    Review Board
    master

    Reviewers

    This adds a toggle on the Dashboard datagrid to show or hide archived review requests, similar to that of the All Review Requests datagrid for showing and hiding closed review requests.

    • a new template block is loaded in the dashboard to expose the toggle button
    • when the pressed, a show-archived query is appended to the existing URL query
    • show-archived=0 filters the archived review requests (those that are archived or muted)
    • show-archived=1 includes all review requests, regardless of their state of visibility

    NB: When show-archived is not specified, its default value of is 0.

    Manual tests: Archived and muted several review requests. In the dashboard, they disappeared when setting show-archived=0 and reappeared when setting show-archived=1

    Unit tests: Added to reviewboard.datagrids.tests to test if archived review requests would appear in the datagrid for a particular user for show-archived=0 and show-archived=1. Also tested for a different user who had not archived any of the same review requests. All tests passed.


    Description From Last Updated

    Could you alphabetize these?

    brenniebrennie

    I have the same question here as in the other review request about why we aren't using default_show_hidden as the …

    brenniebrennie

    Can you chang the formatting so we don't use a backslash, e.g. parent_profile_changed = super(DashboardDataGrid, self).load_extra_state( profile, allow_hide_closed=False)

    brenniebrennie

    Will {{datagrid.queries}} expand to have a & in it if there are queries?

    brenniebrennie

    Can we move this down to be in an else clause of the if profile and self.show_hidden != default_show_hidden: conditional?

    daviddavid

    In order to address Barret's question, how about this, which looks somewhat more similar to ShowClosedReviewRequestsMixin if profile and 'show_hidden' …

    daviddavid

    Can we wrap this a little differently? parent_profile_changed = \ super(DashboardDataGrid, self).load_extra_state( profile, allow_hide_closed=False)

    daviddavid

    Can we do this in DashboardDataGrid.__init__ instead?

    daviddavid

    This shouldn't be indented at all.

    daviddavid

    I think we should call these "Show/Hide archived" rather than "hidden". It's true that it isn't totally correct (since it …

    daviddavid

    Instead of using \, can you add parens around this and wrap after and? if (profile and self.show_archived != profile.extra_data.get('show_archived')):

    daviddavid

    This is the only change in this file now--can you revert it?

    daviddavid

    Col: 13 E113 unexpected indentation

    reviewbotreviewbot

    Col: 13 E112 expected an indented block

    reviewbotreviewbot

    I think it's just under 80 columns if you were to put this all on one line.

    daviddavid
    reviewbot
    1. Tool: Pyflakes
      Processed Files:
          reviewboard/datagrids/grids.py
          reviewboard/datagrids/views.py
      
      Ignored Files:
          reviewboard/templates/datagrids/hideable_listview.html
          reviewboard/static/rb/css/common.less
      
      
      
      Tool: PEP8 Style Checker
      Processed Files:
          reviewboard/datagrids/grids.py
          reviewboard/datagrids/views.py
      
      Ignored Files:
          reviewboard/templates/datagrids/hideable_listview.html
          reviewboard/static/rb/css/common.less
      
      
    2. 
        
    brennie
    1. 
        
    2. reviewboard/datagrids/grids.py (Diff revision 1)
       
       
      Show all issues

      Could you alphabetize these?

    3. reviewboard/datagrids/grids.py (Diff revision 1)
       
       
      Show all issues

      I have the same question here as in the other review request about why we aren't using default_show_hidden as the default parameter.

      1. When I change it to try: self.show_hidden = int(default_show_hidden) != 0, the show-hidden=1 in the URL never switches to show-hidden=0. I think default_show_hidden isn't used because try block needs to get the show-hidden value of the URL query and not the default value (False) of the datagrid

    4. reviewboard/datagrids/grids.py (Diff revision 1)
       
       
       
       
      Show all issues

      Can you chang the formatting so we don't use a backslash, e.g.

              parent_profile_changed = super(DashboardDataGrid,
                                             self).load_extra_state(
                                                 profile,
                                                 allow_hide_closed=False)
      
    5. Show all issues

      Will {{datagrid.queries}} expand to have a & in it if there are queries?

    6. 
        
    CR
    reviewbot
    1. Tool: Pyflakes
      Processed Files:
          reviewboard/datagrids/grids.py
          reviewboard/datagrids/views.py
          reviewboard/accounts/evolutions/reviewrequestvisit_visibility.py
          reviewboard/datagrids/tests.py
      
      Ignored Files:
          reviewboard/templates/datagrids/hideable_listview.html
          reviewboard/static/rb/css/common.less
      
      
      
      Tool: PEP8 Style Checker
      Processed Files:
          reviewboard/datagrids/grids.py
          reviewboard/datagrids/views.py
          reviewboard/accounts/evolutions/reviewrequestvisit_visibility.py
          reviewboard/datagrids/tests.py
      
      Ignored Files:
          reviewboard/templates/datagrids/hideable_listview.html
          reviewboard/static/rb/css/common.less
      
      
    2. 
        
    CR
    CR
    david
    1. 
        
    2. reviewboard/datagrids/grids.py (Diff revision 2)
       
       
      Show all issues

      Can we move this down to be in an else clause of the if profile and self.show_hidden != default_show_hidden: conditional?

    3. reviewboard/datagrids/grids.py (Diff revision 2)
       
       
       
       
       
      Show all issues

      Can we wrap this a little differently?

      parent_profile_changed = \
          super(DashboardDataGrid, self).load_extra_state(
              profile, allow_hide_closed=False)
      
    4. reviewboard/datagrids/views.py (Diff revision 2)
       
       
      Show all issues

      Can we do this in DashboardDataGrid.__init__ instead?

    5. Show all issues

      This shouldn't be indented at all.

    6. Show all issues

      I think we should call these "Show/Hide archived" rather than "hidden". It's true that it isn't totally correct (since it also shows muted), but calling them "hidden" means that we're introducing a third term.

      1. Makes sense, I'll change this throughout, including in grids.py

    7. 
        
    CR
    david
    1. 
        
    2. reviewboard/datagrids/grids.py (Diff revision 2)
       
       
       
       
       
       
       
       
       
       
       
      Show all issues

      In order to address Barret's question, how about this, which looks somewhat more similar to ShowClosedReviewRequestsMixin

      if profile and 'show_hidden' in profile.extra_data:
          self.show_hidden = profile.extra_data['show_hidden']
      
      try:
          show = self.request.GET.get('show-hidden', self.show_hidden)
          self.show_hidden = int(show) != 0
      except ValueError:
          pass
      
      1. okay, and then on line 322 have if profile and self.show_archived != profile.extra_data['show_hidden']: ? (all of this is currently being renamed as show_archived).

        also, should the if have an else that has profile.extra_data['show_archived'] = False ?

      2. Should probably be if profile and self.show_archived != profile.extra_data.get('show_archived') (just to handle the case where it's not in the dict). We should also have the profile field be 'archived' instead of 'hidden' to keep things consistent.

        The else case should already be handled by the default value of self.show_archived set in __init__.

    3. 
        
    reviewbot
    1. Tool: PEP8 Style Checker
      Processed Files:
          reviewboard/datagrids/grids.py
          reviewboard/datagrids/views.py
          reviewboard/accounts/evolutions/reviewrequestvisit_visibility.py
          reviewboard/datagrids/tests.py
      
      Ignored Files:
          reviewboard/templates/datagrids/hideable_listview.html
          reviewboard/static/rb/css/common.less
      
      
      
      Tool: Pyflakes
      Processed Files:
          reviewboard/datagrids/grids.py
          reviewboard/datagrids/views.py
          reviewboard/accounts/evolutions/reviewrequestvisit_visibility.py
          reviewboard/datagrids/tests.py
      
      Ignored Files:
          reviewboard/templates/datagrids/hideable_listview.html
          reviewboard/static/rb/css/common.less
      
      
    2. 
        
    CR
    reviewbot
    1. Tool: Pyflakes
      Processed Files:
          reviewboard/datagrids/grids.py
          reviewboard/datagrids/views.py
          reviewboard/accounts/evolutions/reviewrequestvisit_visibility.py
          reviewboard/datagrids/tests.py
      
      Ignored Files:
          reviewboard/templates/datagrids/hideable_listview.html
          reviewboard/static/rb/css/common.less
      
      
      
      Tool: PEP8 Style Checker
      Processed Files:
          reviewboard/datagrids/grids.py
          reviewboard/datagrids/views.py
          reviewboard/accounts/evolutions/reviewrequestvisit_visibility.py
          reviewboard/datagrids/tests.py
      
      Ignored Files:
          reviewboard/templates/datagrids/hideable_listview.html
          reviewboard/static/rb/css/common.less
      
      
    2. 
        
    david
    1. 
        
    2. reviewboard/datagrids/grids.py (Diff revision 4)
       
       
       
      Show all issues

      Instead of using \, can you add parens around this and wrap after and?

      if (profile and
          self.show_archived != profile.extra_data.get('show_archived')):
      
    3. reviewboard/datagrids/views.py (Diff revision 4)
       
       
      Show all issues

      This is the only change in this file now--can you revert it?

    4. 
        
    CR
    reviewbot
    1. Tool: PEP8 Style Checker
      Processed Files:
          reviewboard/datagrids/grids.py
          reviewboard/accounts/evolutions/reviewrequestvisit_visibility.py
          reviewboard/datagrids/tests.py
      
      Ignored Files:
          reviewboard/templates/datagrids/hideable_listview.html
          reviewboard/static/rb/css/common.less
      
      
    2. reviewboard/datagrids/grids.py (Diff revision 5)
       
       
      Show all issues
      Col: 13
       E113 unexpected indentation
      
      1. This is because you're missing the parens around the conditional.

    3. reviewboard/datagrids/grids.py (Diff revision 5)
       
       
      Show all issues
      Col: 13
       E112 expected an indented block
      
    4. 
        
    CR
    reviewbot
    1. Tool: Pyflakes
      Processed Files:
          reviewboard/datagrids/grids.py
          reviewboard/accounts/evolutions/reviewrequestvisit_visibility.py
          reviewboard/datagrids/tests.py
      
      Ignored Files:
          reviewboard/templates/datagrids/hideable_listview.html
          reviewboard/static/rb/css/common.less
      
      
      
      Tool: PEP8 Style Checker
      Processed Files:
          reviewboard/datagrids/grids.py
          reviewboard/accounts/evolutions/reviewrequestvisit_visibility.py
          reviewboard/datagrids/tests.py
      
      Ignored Files:
          reviewboard/templates/datagrids/hideable_listview.html
          reviewboard/static/rb/css/common.less
      
      
    2. 
        
    david
    1. Your summary/description needs to be updated to refer to the new naming.

    2. reviewboard/datagrids/grids.py (Diff revision 6)
       
       
       
      Show all issues

      I think it's just under 80 columns if you were to put this all on one line.

      1. sorry, I tried and it goes to exactly 80

    3. 
        
    CR
    CR
    david
    1. Ship It!
    2. 
        
    CR
    Review request changed
    Status:
    Completed
    Change Summary:
    Pushed to ucosp/cristocrat/archive-and-mute (9b7605f)