• 
      

    Users should be able to specify their default Dashboard view

    Review Request #3653 — Created Dec. 11, 2012 and discarded

    Information

    Review Board
    581

    Reviewers

    Users should be able to specify their default dashboard view.
        
    Introduce a User Profile attribute that allows the user to select one of "incoming","outgoing","starred","mine". Once they select one of these (the default will be "incoming"), the default view will be set to that and will be shown anytime they come into the /dashboard/ page.
        
    Summary of changes:
    * reviewboard/accounts/evolutions/__init__.py
    * reviewboard/accounts/evolutions/default_view.py
      + Migration script to add the "default_view" column to accounts_profile
        
    * reviewboard/accounts/forms.py
      + Create a default_view field selected from a dropdown list of "incoming", "outgoing", "mine" or "starred".
      + Save the user selected value when saving the user profile.
        
    * reviewboard/accounts/models.py
      + Create a default_view field in the model (CharField) that has a default value of "incoming".
        
    * reviewboard/reviews/datagrids.py
      + Get the value from the constructor and set it to be the default_view. If nothing is setup, default to 'incoming' (Existing behaviour) Fill it out the same way as how it would be when a         
        user does /dashboard?view=<view type>
        
    * reviewboard/reviews/tests.py
      + Added testDashboardDefaultView that sets the default view for "doc" user. Test the counts by varying the account profile value.
        
    * reviewboard/reviews/views.py
      + Call DashboardDataGrid passing in the user's default_view profile setting.
    
    
    Manual, ran the test cases (new and existing).
    
    I wasnt sure of how to run the migration testing, so that was not tested.

    Description From Last Updated

    Should be listed alphabetically.

    chipx86chipx86

    Can we call this default_dashboard_view, so it's clear?

    chipx86chipx86

    The human-readable strings should be localized (using _(..))

    chipx86chipx86

    Should also be default_dashboard_view. Also, alignment issue.

    chipx86chipx86

    The other functions in this class don't do this yet, but we're trying to move unit tests to use underscore_separated_functions, …

    chipx86chipx86

    Trailing whitespace. I think it's best to have all parameters on their own lines, aligned with default_view, so that there's …

    chipx86chipx86

    I'd prefer this go in Profile.

    chipx86chipx86

    I think ideally, this would be 4 separate test functions, one per view. That way we know that each of …

    chipx86chipx86

    use assertTrue.

    chipx86chipx86

    assertTrue.

    chipx86chipx86

    This shouldn't be needed.

    chipx86chipx86
    chipx86
    1. 
        
    2. reviewboard/accounts/forms.py (Diff revision 1)
       
       
      Show all issues
      Should be listed alphabetically.
    3. reviewboard/accounts/forms.py (Diff revision 1)
       
       
      Show all issues
      Can we call this default_dashboard_view, so it's clear?
    4. reviewboard/accounts/models.py (Diff revision 1)
       
       
       
       
       
      Show all issues
      The human-readable strings should be localized (using _(..))
    5. reviewboard/accounts/models.py (Diff revision 1)
       
       
       
      Show all issues
      Should also be default_dashboard_view.
      
      Also, alignment issue.
    6. reviewboard/reviews/tests.py (Diff revision 1)
       
       
      Show all issues
      The other functions in this class don't do this yet, but we're trying to move unit tests to use underscore_separated_functions, like the rest of the codebase. Can you update this to do that?
    7. reviewboard/reviews/views.py (Diff revision 1)
       
       
       
      Show all issues
      Trailing whitespace.
      
      I think it's best to have all parameters on their own lines, aligned with default_view, so that there's consistency. Like:
      
      grid = DashboardDataGrid(
          request,
          local_site=...,
          ...)
    8. 
        
    RA
    reviewbot
    1. This is a review from Review Bot.
        Tool: PEP8 Style Checker
        Processed Files:
          reviewboard/reviews/views.py
          reviewboard/reviews/tests.py
          reviewboard/accounts/views.py
          reviewboard/accounts/evolutions/__init__.py
          reviewboard/accounts/models.py
          reviewboard/reviews/datagrids.py
          reviewboard/accounts/evolutions/default_dashboard_view.py
          reviewboard/accounts/forms.py
        Ignored Files:
          reviewboard/templates/accounts/prefs.html
      
      
    2. 
        
    chipx86
    1. 
        
    2. reviewboard/accounts/models.py (Diff revision 2)
       
       
      Show all issues
      I'd prefer this go in Profile.
    3. reviewboard/reviews/tests.py (Diff revision 2)
       
       
      Show all issues
      I think ideally, this would be 4 separate test functions, one per view. That way we know that each of those does the right thing, and our tests become more fine-grained (easier to see what breaks).
    4. reviewboard/reviews/tests.py (Diff revision 2)
       
       
      Show all issues
      use assertTrue.
    5. reviewboard/reviews/tests.py (Diff revision 2)
       
       
      Show all issues
      assertTrue.
    6. reviewboard/reviews/tests.py (Diff revision 2)
       
       
      Show all issues
      This shouldn't be needed.
    7. 
        
    RA
    reviewbot
    1. This is a review from Review Bot.
        Tool: PEP8 Style Checker
        Processed Files:
          reviewboard/reviews/views.py
          reviewboard/reviews/tests.py
          reviewboard/accounts/views.py
          reviewboard/accounts/evolutions/__init__.py
          reviewboard/accounts/models.py
          reviewboard/reviews/datagrids.py
          reviewboard/accounts/evolutions/default_dashboard_view.py
          reviewboard/accounts/forms.py
        Ignored Files:
          reviewboard/templates/accounts/prefs.html
      
      
    2. 
        
    RA
    Review request changed
    Status:
    Discarded