• 
      

    Adding the reviews a user has made to their profile

    Review Request #5484 — Created Feb. 16, 2014 and submitted

    Information

    Review Board
    master
    3e0b97a...

    Reviewers

    I have added the reviews a user has made to their profile page, which can be accessed at /users/<username>/reviews/
    The columns shown include:
    * summary (of review request)
    * submitter of review request
    * date reviewed

    Created unit tests to test that the reviews page works, and reviews on private review requests are not shown.


    Description From Last Updated

    Since this is just a mixin now, it should be named "UserPageDataGridMixin".

    chipx86chipx86

    The suffix for this class is "Grid," but should be "DataGrid" to match the others.

    chipx86chipx86

    Trailing whitespace.

    chipx86chipx86

    Too many blank lines.

    chipx86chipx86

    Some older views are inconsistent in this way, but docstrings must follow the following format: """One-line summary.""" or: """One-line summary. …

    chipx86chipx86

    Please wrap this to 80 columns.

    daviddavid

    This should use _() for localization.

    daviddavid

    Please wrap at 80 columns.

    daviddavid

    This should use _() for localization.

    daviddavid

    Docstrings should start with a single line for a summary, then (optionally) a blank line and paragraphs of description. Please …

    daviddavid

    Your code here uses 2-space indentation instead of 4.

    daviddavid

    I don't know how permanent this is, but it should probably be formatted more like this: datagrid.tabs = [ (UserPageReviewRequestDataGrid.tab_title(username), …

    daviddavid

    Please wrap to 80 columns.

    daviddavid

    Please put a space ofter the :. Here and throughout this file.

    daviddavid

    Remove this line.

    daviddavid

    Remove this line.

    daviddavid

    Indent 2 spaces in LESS files.

    daviddavid

    Indent 1 space in HTML. Also note that we add spaces between {% and the tag names for block tags …

    daviddavid

    If this isn't necessary, can you remove it?

    daviddavid

    If this isn't necessary, can you remove it?

    daviddavid

    There's an extra space between 'review_summary' and ,

    daviddavid

    Please capitalize the "Do"

    daviddavid

    Maybe mention that this is an abstract class?

    daviddavid

    Wrap to 80 columns.

    daviddavid

    This doesn't match between here and UserPageReviewRequestDataGrid (one has "user page", one has "user's page"). Can you also include a …

    daviddavid

    Trailing whitespace. Can you also rewrap this to put one item per line?

    daviddavid

    Indent 1 more space.

    daviddavid

    Indent 1 more space.

    daviddavid

    Indent 1 more space.

    daviddavid

    Indent 1 more space.

    daviddavid

    Indent 1 more space.

    daviddavid

    Remove these two lines.

    daviddavid

    Can you switch the order of these two URLs?

    daviddavid

    Comments should have a space between # and the comment text, and start with a capital letter.

    daviddavid

    Maybe put these all on the same line?

    daviddavid

    Maybe put these all on the same line? Also, watch out for trailing whitespace.

    daviddavid

    Comments should have a space between # and the comment text, and start with a capital letter.

    daviddavid

    Indent 1 more space.

    daviddavid

    Indent 1 more space.

    daviddavid

    Indent 1 more space.

    daviddavid

    Hmm. It looks like it's been quite some time since you pulled from the origin repository. We've made some changes …

    daviddavid

    Indent 2 more spaces.

    daviddavid

    Can you add a blank line here?

    daviddavid

    "Group" hasn't been imported here. You should import it at the top of this method (like in ReviewRequestManager._query)

    daviddavid

    These are pretty generic class names, and the !important makes me scared. Can you maybe make these a bit more …

    daviddavid

    Missing trailing period.

    chipx86chipx86

    This can be one line, like the one above.

    chipx86chipx86

    This is all a copy/paste of the load_extra_data in ReviewRequestDataGrid. We should pull that out into a ShowClosedReviewRequestsMixin.

    chipx86chipx86

    Should remove the blank line.

    chipx86chipx86

    Wrong class.

    chipx86chipx86

    Space before %

    chipx86chipx86

    Should remove the blank line.

    chipx86chipx86

    Space before %

    chipx86chipx86

    The latter part of that regex is too verbose. We know it'll just be [a-z-]

    chipx86chipx86

    Should be on one line.

    chipx86chipx86

    No blank line.

    chipx86chipx86

    No need for this comment.

    chipx86chipx86

    Let's do review-requests instead. Also, is None

    chipx86chipx86

    This should be: datagrid_cls = UserPageReviewRequestDataGrid Then below, you can just do: datagrid = datagrid_cls(request, .....)

    chipx86chipx86

    The parameters are the same for both classes. Let's compute the class here, and initialize it after the conditionals.

    chipx86chipx86

    No need for this comment.

    chipx86chipx86

    Blank line between these.

    chipx86chipx86

    Missing period.

    chipx86chipx86

    There's a bunch of !important rules in here. We should remove all of them, and instead nest the rules better …

    chipx86chipx86

    Should just list the class, not the element. Same with all the ones below.

    chipx86chipx86

    The &. ones go above the child element/class rules.

    chipx86chipx86

    THis should go above the .datagrid-title rule above.

    chipx86chipx86

    Too many spaces before endif.

    chipx86chipx86

    Shouldn't have &nbsp;. If we're trying to add some spacing, that should be done with CSS.

    chipx86chipx86

    It's not valid to have a <ul> inside another <ul>. It needs to be in <li>.

    chipx86chipx86

    Indentation got a bit wacky here.

    daviddavid

    Col: 17 E126 continuation line over-indented for hanging indent

    reviewbotreviewbot

    Col: 5 E303 too many blank lines (2)

    reviewbotreviewbot

    local variable 'review1' is assigned to but never used

    reviewbotreviewbot

    local variable 'review2' is assigned to but never used

    reviewbotreviewbot

    'SignalHook' imported but unused

    reviewbotreviewbot

    'TemplateHook' imported but unused

    reviewbotreviewbot

    'URLHook' imported but unused

    reviewbotreviewbot

    Col: 21 E128 continuation line under-indented for visual indent

    reviewbotreviewbot

    Col: 38 E127 continuation line over-indented for visual indent

    reviewbotreviewbot

    Col: 38 E127 continuation line over-indented for visual indent

    reviewbotreviewbot

    'SignalHook' imported but unused

    reviewbotreviewbot

    'TemplateHook' imported but unused

    reviewbotreviewbot

    'URLHook' imported but unused

    reviewbotreviewbot

    Col: 21 E128 continuation line under-indented for visual indent

    reviewbotreviewbot

    Needs a trailing period.

    chipx86chipx86

    For each of these, you should have a trailing comma after the value in the dictionary, and the }) should …

    chipx86chipx86

    These can probably just be constants on the class, right?

    chipx86chipx86

    I don't think this is needed.

    chipx86chipx86

    This code is pretty similar to what's in ReviewRequestManager. I don't expect you to worry about refactoring all this right …

    chipx86chipx86
    chipx86
    1. 
        
    2. reviewboard/datagrids/grids.py (Diff revision 1)
       
       
      Show all issues

      Since this is just a mixin now, it should be named "UserPageDataGridMixin".

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

      The suffix for this class is "Grid," but should be "DataGrid" to match the others.

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

      Trailing whitespace.

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

      Too many blank lines.

    6. reviewboard/datagrids/views.py (Diff revision 1)
       
       
       
       
      Show all issues

      Some older views are inconsistent in this way, but docstrings must follow the following format:

      """One-line summary."""
      

      or:

      """One-line summary.
      
      Multi-line description.
      """
      
    7. 
        
    TA
    TA
    david
    1. Reading through this code, it looks like most of the functionality is here. Can you specify in the description what is left to do, and if it's pretty close, remove the WIP tag?

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

      Please wrap this to 80 columns.

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

      This should use _() for localization.

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

      Please wrap at 80 columns.

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

      This should use _() for localization.

    6. reviewboard/datagrids/views.py (Diff revision 5)
       
       
       
       
      Show all issues

      Docstrings should start with a single line for a summary, then (optionally) a blank line and paragraphs of description. Please also wrap to 80 columns.

    7. reviewboard/datagrids/views.py (Diff revision 5)
       
       
       
       
       
       
       
      Show all issues

      Your code here uses 2-space indentation instead of 4.

    8. reviewboard/datagrids/views.py (Diff revision 5)
       
       
       
       
      Show all issues

      I don't know how permanent this is, but it should probably be formatted more like this:

      datagrid.tabs = [
          (UserPageReviewRequestDataGrid.tab_title(username),
           reverse('user', args=[username])),
          (UserPageReviewsDataGrid.tab_title(username),
           reverse('user', args=[username, 'reviews'])),
      ]
      
      1. should this be taken out into a helper function, or done in another way?

      2. I think it's fine here.

    9. reviewboard/extensions/hooks.py (Diff revision 5)
       
       
      Show all issues

      Please wrap to 80 columns.

    10. reviewboard/static/rb/css/common.less (Diff revision 5)
       
       
      Show all issues

      Please put a space ofter the :. Here and throughout this file.

    11. reviewboard/static/rb/css/common.less (Diff revision 5)
       
       
      Show all issues

      Remove this line.

    12. reviewboard/static/rb/css/common.less (Diff revision 5)
       
       
      Show all issues

      Remove this line.

    13. reviewboard/static/rb/css/common.less (Diff revision 5)
       
       
       
       
      Show all issues

      Indent 2 spaces in LESS files.

    14. reviewboard/templates/datagrids/review_request_listview.html (Diff revision 5)
       
       
       
       
       
       
       
       
      Show all issues

      Indent 1 space in HTML. Also note that we add spaces between {% and the tag names for block tags (separate from the HTML indentation). This file hasn't been updated to indent the tags correctly -- would you mind doing so while you're changing this? See reviewboard/templates/reviews/review_request_box.html for a good example.

    15. 
        
    TA
    TA
    TA
    TA
    david
    1. This is looking pretty good! I have a bunch of style comments.

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

      If this isn't necessary, can you remove it?

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

      If this isn't necessary, can you remove it?

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

      There's an extra space between 'review_summary' and ,

    5. reviewboard/datagrids/grids.py (Diff revision 9)
       
       
      Show all issues

      Please capitalize the "Do"

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

      Maybe mention that this is an abstract class?

    7. reviewboard/datagrids/grids.py (Diff revision 9)
       
       
      Show all issues

      Wrap to 80 columns.

    8. reviewboard/datagrids/grids.py (Diff revision 9)
       
       
      Show all issues

      This doesn't match between here and UserPageReviewRequestDataGrid (one has "user page", one has "user's page"). Can you also include a mention of reviews vs. review requests in the docstring summary?

    9. reviewboard/datagrids/tests.py (Diff revision 9)
       
       
      Show all issues

      Trailing whitespace. Can you also rewrap this to put one item per line?

    10. reviewboard/datagrids/tests.py (Diff revision 9)
       
       
       
      Show all issues

      Indent 1 more space.

    11. reviewboard/datagrids/tests.py (Diff revision 9)
       
       
       
      Show all issues

      Indent 1 more space.

    12. reviewboard/datagrids/tests.py (Diff revision 9)
       
       
      Show all issues

      Indent 1 more space.

    13. reviewboard/datagrids/tests.py (Diff revision 9)
       
       
      Show all issues

      Indent 1 more space.

    14. reviewboard/datagrids/tests.py (Diff revision 9)
       
       
      Show all issues

      Indent 1 more space.

    15. reviewboard/datagrids/tests.py (Diff revision 9)
       
       
       
      Show all issues

      Remove these two lines.

    16. reviewboard/datagrids/urls.py (Diff revision 9)
       
       
       
       
       
      Show all issues

      Can you switch the order of these two URLs?

    17. reviewboard/datagrids/views.py (Diff revision 9)
       
       
      Show all issues

      Comments should have a space between # and the comment text, and start with a capital letter.

    18. reviewboard/datagrids/views.py (Diff revision 9)
       
       
       
       
      Show all issues

      Maybe put these all on the same line?

      1. Putting them on one line makes them exceed 80 columns - should I just move the first variable (request) to the same line as the function call, and keep the other variables as is?

      2. In that case, I'd just leave it as-is and drop this issue.

    19. reviewboard/datagrids/views.py (Diff revision 9)
       
       
       
       
      Show all issues

      Maybe put these all on the same line? Also, watch out for trailing whitespace.

    20. reviewboard/datagrids/views.py (Diff revision 9)
       
       
      Show all issues

      Comments should have a space between # and the comment text, and start with a capital letter.

    21. reviewboard/datagrids/views.py (Diff revision 9)
       
       
      Show all issues

      Indent 1 more space.

    22. reviewboard/datagrids/views.py (Diff revision 9)
       
       
      Show all issues

      Indent 1 more space.

    23. reviewboard/extensions/hooks.py (Diff revision 9)
       
       
      Show all issues

      Indent 1 more space.

    24. 
        
    TA
    TA
    david
    1. 
        
    2. reviewboard/reviews/managers.py (Diff revision 11)
       
       
       
       
       
       
      Show all issues

      Hmm. It looks like it's been quite some time since you pulled from the origin repository. We've made some changes to the ReviewRequest version of this query to improve performance. Can you rebase on top of the latest master code, and add the accessible_repo_ids and accessible_group_ids mechanism that ReviewRequestManager._query uses?

    3. 
        
    TA
    david
    1. Almost there!

    2. reviewboard/datagrids/views.py (Diff revision 12)
       
       
      Show all issues

      Indent 2 more spaces.

    3. reviewboard/reviews/managers.py (Diff revision 12)
       
       
       
      Show all issues

      Can you add a blank line here?

    4. reviewboard/reviews/managers.py (Diff revision 12)
       
       
      Show all issues

      "Group" hasn't been imported here. You should import it at the top of this method (like in ReviewRequestManager._query)

    5. reviewboard/static/rb/css/common.less (Diff revision 12)
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
      Show all issues

      These are pretty generic class names, and the !important makes me scared. Can you maybe make these a bit more specific, so that these rules won't bleed out into other parts of the UI?

      1. I modified the rules to be more specific and encapsulated, though I still use !important in some places to override the datagrids css rules. is this ok?

      2. This looks great.

    6. 
        
    TA
    david
    1. This looks good to me. Because it's a big change, Christian is also going to take a look before we push it. Nice work!

    2. 
        
    chipx86
    1. 
        
    2. reviewboard/datagrids/columns.py (Diff revision 13)
       
       
      Show all issues

      Missing trailing period.

    3. reviewboard/datagrids/columns.py (Diff revision 13)
       
       
       
      Show all issues

      This can be one line, like the one above.

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

      This is all a copy/paste of the load_extra_data in ReviewRequestDataGrid. We should pull that out into a ShowClosedReviewRequestsMixin.

      1. is there a way to programmatically decide what is being filtered in the queryset (lines 213, 216)? ReviewRequestDataGrid filters on just status, instead of the review_request

      2. Ah, good point.

        What I'd do then is to have the mixin require an attribute on the class that defines what to filter by. Something like status_query_field, which can be set to status or review_request__status. You can then use this with:

        self.queryset = self.queryset.filter(**{
            self.status_query_field: 'P',
        })
        
    5. reviewboard/datagrids/grids.py (Diff revision 13)
       
       
       
       
      Show all issues

      Should remove the blank line.

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

      Wrong class.

    7. reviewboard/datagrids/grids.py (Diff revision 13)
       
       
      Show all issues

      Space before %

    8. reviewboard/datagrids/grids.py (Diff revision 13)
       
       
       
       
      Show all issues

      Should remove the blank line.

    9. reviewboard/datagrids/grids.py (Diff revision 13)
       
       
      Show all issues

      Space before %

    10. reviewboard/datagrids/urls.py (Diff revision 13)
       
       
      Show all issues

      The latter part of that regex is too verbose. We know it'll just be [a-z-]

    11. reviewboard/datagrids/views.py (Diff revision 13)
       
       
       
      Show all issues

      Should be on one line.

      1. this comment has more content after this line about the grid parameter, should i remove that content?

      2. You can probably simplify it to: "A user's profile page, showing their review requests and reviews."

      3. Christian just means put these two together and leave the rest as-is:

        """A user's profile page...

        That way the docstring doesn't start with a blank line.

    12. reviewboard/datagrids/views.py (Diff revision 13)
       
       
       
       
      Show all issues

      No blank line.

    13. reviewboard/datagrids/views.py (Diff revision 13)
       
       
      Show all issues

      No need for this comment.

    14. reviewboard/datagrids/views.py (Diff revision 13)
       
       
      Show all issues

      Let's do review-requests instead.

      Also, is None

    15. reviewboard/datagrids/views.py (Diff revision 13)
       
       
       
       
       
       
       
       
       
       
      Show all issues

      The parameters are the same for both classes. Let's compute the class here, and initialize it after the conditionals.

    16. reviewboard/datagrids/views.py (Diff revision 13)
       
       
      Show all issues

      No need for this comment.

    17. reviewboard/datagrids/views.py (Diff revision 13)
       
       
       
      Show all issues

      Blank line between these.

    18. reviewboard/reviews/managers.py (Diff revision 13)
       
       
      Show all issues

      Missing period.

    19. reviewboard/static/rb/css/common.less (Diff revision 13)
       
       
       
       
       
      Show all issues

      There's a bunch of !important rules in here. We should remove all of them, and instead nest the rules better so that the browser will naturally choose them.

    20. reviewboard/static/rb/css/common.less (Diff revision 13)
       
       
      Show all issues

      Should just list the class, not the element.

      Same with all the ones below.

    21. reviewboard/static/rb/css/common.less (Diff revision 13)
       
       
      Show all issues

      The &. ones go above the child element/class rules.

    22. reviewboard/static/rb/css/common.less (Diff revision 13)
       
       
      Show all issues

      THis should go above the .datagrid-title rule above.

    23. Show all issues

      Too many spaces before endif.

    24. Show all issues

      Shouldn't have &nbsp;. If we're trying to add some spacing, that should be done with CSS.

    25. Show all issues

      It's not valid to have a <ul> inside another <ul>. It needs to be in <li>.

    26. 
        
    TA
    chipx86
    1. Looking good!

    2. reviewboard/datagrids/views.py (Diff revisions 13 - 14)
       
       
      Show all issues

      This should be:

      datagrid_cls = UserPageReviewRequestDataGrid
      

      Then below, you can just do:

      datagrid = datagrid_cls(request, .....)
      
    3. 
        
    TA
    TA
    david
    1. 
        
    2. reviewboard/datagrids/grids.py (Diff revision 16)
       
       
       
       
       
       
       
       
       
      Show all issues

      Indentation got a bit wacky here.

    3. 
        
    TA
    reviewbot
    1. This is a review from Review Bot.
        Tool: PEP8 Style Checker
        Processed Files:
          reviewboard/datagrids/views.py
          reviewboard/datagrids/columns.py
          reviewboard/datagrids/tests.py
          reviewboard/datagrids/urls.py
          reviewboard/extensions/hooks.py
          reviewboard/datagrids/grids.py
          reviewboard/reviews/managers.py
        Ignored Files:
          reviewboard/static/rb/css/common.less
          reviewboard/templates/datagrids/review_request_listview.html
      
      
    2. reviewboard/datagrids/grids.py (Diff revision 17)
       
       
      Show all issues
      Col: 17
       E126 continuation line over-indented for hanging indent
      
    3. reviewboard/datagrids/grids.py (Diff revision 17)
       
       
      Show all issues
      Col: 5
       E303 too many blank lines (2)
      
    4. reviewboard/reviews/managers.py (Diff revision 17)
       
       
      Show all issues
      Col: 21
       E128 continuation line under-indented for visual indent
      
      1. hm i think adding an indent here causes the line to go over 80 columns - should i indent it anyway?
        Also the indent here is the same indent used in other lines in this function

    5. 
        
    reviewbot
    1. This is a review from Review Bot.
        Tool: Pyflakes
        Processed Files:
          reviewboard/datagrids/views.py
          reviewboard/datagrids/columns.py
          reviewboard/datagrids/tests.py
          reviewboard/datagrids/urls.py
          reviewboard/extensions/hooks.py
          reviewboard/datagrids/grids.py
          reviewboard/reviews/managers.py
        Ignored Files:
          reviewboard/static/rb/css/common.less
          reviewboard/templates/datagrids/review_request_listview.html
      
      
    2. reviewboard/datagrids/tests.py (Diff revision 17)
       
       
      Show all issues
       local variable 'review1' is assigned to but never used
      
    3. reviewboard/datagrids/tests.py (Diff revision 17)
       
       
      Show all issues
       local variable 'review2' is assigned to but never used
      
    4. reviewboard/extensions/hooks.py (Diff revision 17)
       
       
      Show all issues
       'SignalHook' imported but unused
      
    5. reviewboard/extensions/hooks.py (Diff revision 17)
       
       
      Show all issues
       'TemplateHook' imported but unused
      
    6. reviewboard/extensions/hooks.py (Diff revision 17)
       
       
      Show all issues
       'URLHook' imported but unused
      
    7. 
        
    TA
    reviewbot
    1. This is a review from Review Bot.
        Tool: PEP8 Style Checker
        Processed Files:
          reviewboard/datagrids/views.py
          reviewboard/datagrids/columns.py
          reviewboard/datagrids/tests.py
          reviewboard/datagrids/urls.py
          reviewboard/extensions/hooks.py
          reviewboard/datagrids/grids.py
          reviewboard/reviews/managers.py
        Ignored Files:
          reviewboard/static/rb/css/common.less
          reviewboard/templates/datagrids/review_request_listview.html
      
      
    2. reviewboard/datagrids/tests.py (Diff revision 18)
       
       
      Show all issues
      Col: 38
       E127 continuation line over-indented for visual indent
      
    3. reviewboard/datagrids/tests.py (Diff revision 18)
       
       
      Show all issues
      Col: 38
       E127 continuation line over-indented for visual indent
      
    4. reviewboard/reviews/managers.py (Diff revision 18)
       
       
      Show all issues
      Col: 21
       E128 continuation line under-indented for visual indent
      
      1. added a backslash instead - is this fine?

      2. I know we haven't really been using this form elsewhere, but you can just use the |= operator:

        group_query |= Q(review_request__target_groups__in=...)
        
    5. 
        
    reviewbot
    1. This is a review from Review Bot.
        Tool: Pyflakes
        Processed Files:
          reviewboard/datagrids/views.py
          reviewboard/datagrids/columns.py
          reviewboard/datagrids/tests.py
          reviewboard/datagrids/urls.py
          reviewboard/extensions/hooks.py
          reviewboard/datagrids/grids.py
          reviewboard/reviews/managers.py
        Ignored Files:
          reviewboard/static/rb/css/common.less
          reviewboard/templates/datagrids/review_request_listview.html
      
      
    2. reviewboard/extensions/hooks.py (Diff revision 18)
       
       
      Show all issues
       'SignalHook' imported but unused
      
    3. reviewboard/extensions/hooks.py (Diff revision 18)
       
       
      Show all issues
       'TemplateHook' imported but unused
      
    4. reviewboard/extensions/hooks.py (Diff revision 18)
       
       
      Show all issues
       'URLHook' imported but unused
      
    5. 
        
    TA
    chipx86
    1. A few small things. This is pretty great! Just a couple trivial style changes, and we'll be able to put this in for 2.1 :)

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

      Needs a trailing period.

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

      For each of these, you should have a trailing comma after the value in the dictionary, and the }) should be aligned with the opening statement on its own line, like:

      self.queryset = self.queryset.filter(**{
          ...
      });
      
    4. reviewboard/datagrids/grids.py (Diff revision 19)
       
       
       
      Show all issues

      These can probably just be constants on the class, right?

    5. reviewboard/datagrids/grids.py (Diff revision 19)
       
       
       
      Show all issues

      I don't think this is needed.

    6. reviewboard/reviews/managers.py (Diff revision 19)
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
      Show all issues

      This code is pretty similar to what's in ReviewRequestManager. I don't expect you to worry about refactoring all this right now, but we should probably do this at some point.

      Can you put a TODO comment above all this code saying it should be consolidated with the queries in ReviewRequestManager?

    7. 
        
    TA
    TA
    TA
    chipx86
    1. Ship It!

    2. 
        
    TA
    Review request changed
    Status:
    Completed
    Change Summary:
    Pushed to master (f33e964)