• 
      

    Add complexity icons to the commits in the diffviewer.

    Review Request #6943 — Created Feb. 12, 2015 and submitted

    Information

    Review Board
    dvcs

    Reviewers

    The DiffCommitIndexView now renders complexity icons via the
    DiffComplexityIconView that the DiffIndexView also uses.

    Diff complexity icons appear next to commits in the
    diffviewer's commit list.

    Description From Last Updated

    Does prefetch_related do what you want?

    daviddavid

    Comments here are a little weirdly aligned.

    daviddavid

    Because this is javascript land, we actually need to do this wacky thing: for (lineType in this.attributes.lineCounts) { if (this.attributes.lineCounts.hasOwnProperty(lineType)) …

    daviddavid

    We already have much of this and the one below. Let's pull those out into something reusable. The review request …

    chipx86chipx86

    Can we put the comments on the lines before the attributes? Helps to allow more verbose comments and to prevent …

    chipx86chipx86

    Just a thing to consider: I'm not 100% sure, but I suspect that an object doing diffcommit.get('lineCounts').deletes = 5 could …

    chipx86chipx86

    I we pull out lineCounts into a local variable, we'll reduce the number of property accesses required.

    chipx86chipx86

    Indentation is off here.

    daviddavid

    I think this should be defined inside the this.collection.each() callback function.

    daviddavid
    reviewbot
    1. Tool: PEP8 Style Checker
      Processed Files:
          reviewboard/diffviewer/views.py
      
      Ignored Files:
          reviewboard/static/rb/js/diffviewer/views/diffCommitIndexView.js
          reviewboard/static/rb/js/diffviewer/models/diffCommitModel.js
          reviewboard/static/rb/css/pages/reviews.less
      
      
      
      Tool: Pyflakes
      Processed Files:
          reviewboard/diffviewer/views.py
      
      Ignored Files:
          reviewboard/static/rb/js/diffviewer/views/diffCommitIndexView.js
          reviewboard/static/rb/js/diffviewer/models/diffCommitModel.js
          reviewboard/static/rb/css/pages/reviews.less
      
      
    2. 
        
    brennie
    reviewbot
    1. Tool: PEP8 Style Checker
      Processed Files:
          reviewboard/diffviewer/views.py
      
      Ignored Files:
          reviewboard/static/rb/js/diffviewer/views/diffCommitIndexView.js
          reviewboard/static/rb/js/diffviewer/models/diffCommitModel.js
          reviewboard/static/rb/css/pages/reviews.less
      
      
      
      Tool: Pyflakes
      Processed Files:
          reviewboard/diffviewer/views.py
      
      Ignored Files:
          reviewboard/static/rb/js/diffviewer/views/diffCommitIndexView.js
          reviewboard/static/rb/js/diffviewer/models/diffCommitModel.js
          reviewboard/static/rb/css/pages/reviews.less
      
      
    2. 
        
    david
    1. 
        
    2. reviewboard/diffviewer/views.py (Diff revision 2)
       
       
      Show all issues

      Does prefetch_related do what you want?

      1. Not really. As the diffset object has already been fetched, it doesn't have the ability (as far as I can see) to fetch the related objects. I believe it would have tbe done wherever the diffset is fetched.

      2. Actually it turns out this is exactly what I want. I was just attempting to use it in the wrong way.

    3. Show all issues

      Comments here are a little weirdly aligned.

    4. Show all issues

      Because this is javascript land, we actually need to do this wacky thing:

      for (lineType in this.attributes.lineCounts) {
          if (this.attributes.lineCounts.hasOwnProperty(lineType)) {
              sum += this.attributes.lineCounts[lineType];
          }
      }
      

      Alternatively, _.each will do the right thing when iterating over object properties.

    5. 
        
    brennie
    reviewbot
    1. Tool: Pyflakes
      Processed Files:
          reviewboard/diffviewer/views.py
      
      Ignored Files:
          reviewboard/static/rb/js/diffviewer/views/diffCommitIndexView.js
          reviewboard/static/rb/js/diffviewer/models/diffCommitModel.js
          reviewboard/static/rb/css/pages/reviews.less
      
      
      
      Tool: PEP8 Style Checker
      Processed Files:
          reviewboard/diffviewer/views.py
      
      Ignored Files:
          reviewboard/static/rb/js/diffviewer/views/diffCommitIndexView.js
          reviewboard/static/rb/js/diffviewer/models/diffCommitModel.js
          reviewboard/static/rb/css/pages/reviews.less
      
      
    2. 
        
    chipx86
    1. 
        
    2. Show all issues

      We already have much of this and the one below. Let's pull those out into something reusable.

      The review request page should be pulling in diffviewer.less, so you can just have those all in one place there.

      1. These aren't actually used in the review request page, so I removed them and references to them. Putting complexity icons on the review request page will be another change.

    3. reviewboard/static/rb/js/diffviewer/models/diffCommitModel.js (Diff revision 3)
       
       
       
       
       
       
       
       
       
       
       
      Show all issues

      Can we put the comments on the lines before the attributes? Helps to allow more verbose comments and to prevent annoyances when we add new attributes (which may have longer names or defaults).

    4. reviewboard/static/rb/js/diffviewer/models/diffCommitModel.js (Diff revision 3)
       
       
       
       
       
       
       
      Show all issues

      Just a thing to consider:

      I'm not 100% sure, but I suspect that an object doing diffcommit.get('lineCounts').deletes = 5 could end up overwriting the defaults for other instances. I don't know if Backbone makes a copy of dictionary values when populating from defaults. Just something to think about for any future changes.

      1. As it turns out, it will not copy and can overwrite defaults for other instances.

    5. Show all issues

      I we pull out lineCounts into a local variable, we'll reduce the number of property accesses required.

    6. 
        
    brennie
    reviewbot
    1. Tool: Pyflakes
      Processed Files:
          reviewboard/diffviewer/views.py
      
      Ignored Files:
          reviewboard/static/rb/js/diffviewer/views/diffCommitIndexView.js
          reviewboard/static/rb/js/diffviewer/models/diffCommitModel.js
      
      
      
      Tool: PEP8 Style Checker
      Processed Files:
          reviewboard/diffviewer/views.py
      
      Ignored Files:
          reviewboard/static/rb/js/diffviewer/views/diffCommitIndexView.js
          reviewboard/static/rb/js/diffviewer/models/diffCommitModel.js
      
      
    2. 
        
    david
    1. 
        
    2. Show all issues

      Indentation is off here.

    3. Show all issues

      I think this should be defined inside the this.collection.each() callback function.

    4. 
        
    brennie
    reviewbot
    1. Tool: PEP8 Style Checker
      Processed Files:
          reviewboard/diffviewer/views.py
      
      Ignored Files:
          reviewboard/static/rb/js/diffviewer/views/diffCommitIndexView.js
          reviewboard/static/rb/js/diffviewer/models/diffCommitModel.js
      
      
      
      Tool: Pyflakes
      Processed Files:
          reviewboard/diffviewer/views.py
      
      Ignored Files:
          reviewboard/static/rb/js/diffviewer/views/diffCommitIndexView.js
          reviewboard/static/rb/js/diffviewer/models/diffCommitModel.js
      
      
    2. 
        
    david
    1. Ship It!
    2. 
        
    brennie
    Review request changed
    Status:
    Completed
    Change Summary:
    Pushed to dvcs (22e2cef)