• 
      

    Create extension for auto-assigning students to the students group

    Review Request #7872 — Created Jan. 15, 2016 and submitted

    Information

    student-sonar
    master
    5750492...

    Reviewers

    A simple extension for auto-assigning students working on Review Board to
    the "students" group.

    I can imagine this maybe being useful for other projects as well, so I can
    see this expanding out to allow multiple auto-assignments, but for now I've
    just hard-coded the "students" group.

    Created some test users and a "students" group. Entered the extension
    configuration page and added some users in the comma-separated list to
    auto-assign. Created review requests for the users in the list and saw
    that they were correctly added to the "students" group. The review requests
    from the other users were not.

    Also verified that the "open" counts in the dashboard for the group
    was updated correctly after creating an auto-assigned review request.

    Description From Last Updated

    Also a lie!

    daviddavid

    This is a lie.

    daviddavid

    Swap these two lines.

    daviddavid

    This is impossible.

    daviddavid

    These could be combined into a single assignment: assignees = [ s.strip() for s in self.settings.get('assignees').split(',') ]

    daviddavid

    This should probably be logging.debug.

    daviddavid

    No blank line here.

    daviddavid

    Localize this too?

    daviddavid

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

    reviewbotreviewbot
    reviewbot
    1. Tool: PEP8 Style Checker
      Processed Files:
          misc/rb-auto-assigner/rb_auto_assigner/forms.py
          misc/rb-auto-assigner/rb_auto_assigner/extension.py
          misc/rb-auto-assigner/setup.py
          misc/rb-auto-assigner/rb_auto_assigner/admin_urls.py
      
      Ignored Files:
          misc/rb-auto-assigner/rb_auto_assigner/__init__.py
      
      
      
      Tool: Pyflakes
      Processed Files:
          misc/rb-auto-assigner/rb_auto_assigner/forms.py
          misc/rb-auto-assigner/rb_auto_assigner/extension.py
          misc/rb-auto-assigner/setup.py
          misc/rb-auto-assigner/rb_auto_assigner/admin_urls.py
      
      Ignored Files:
          misc/rb-auto-assigner/rb_auto_assigner/__init__.py
      
      
    2. 
        
    mike_conley
    1. Originally posted for review for the rb-extension-pack repo here: https://reviews.reviewboard.org/r/7856/

    2. 
        
    david
    1. Please also see my comments on pre_save on your other review request for this.

      1. Done. I ended up having to use post_save, otherwise I got an error attempting to fiddle with the ManyToMany relationship:

        2016-01-16 06:55:37,323 - ERROR -  - Error when calling <bound method RBAutoAssigner.on_pre_save of <rb_auto_assigner.extension.RBAutoAssigner object at 0x10cfb32d0>> from SignalHook: "<ReviewRequest: (no summary)>" needs to have a value for field "reviewrequest" before this many-to-many relationship can be used.
        Traceback (most recent call last):
          File "/Users/mikeconley/Projects/rb-vm-dev/src/djblets/djblets/extensions/hooks.py", line 439, in _wrap_callback
            self.callback(extension=self.extension, **kwargs)
          File "/Users/mikeconley/Projects/rb-vm-dev/src/student-sonar/misc/rb-auto-assigner/rb_auto_assigner/extension.py", line 58, in on_pre_save
            instance.target_groups.add(group)
          File "/usr/local/lib/python2.7/site-packages/django/db/models/fields/related.py", line 827, in __get__
            through=self.field.rel.through,
          File "/usr/local/lib/python2.7/site-packages/django/db/models/fields/related.py", line 524, in __init__
            (instance, source_field_name))
        ValueError: "<ReviewRequest: (no summary)>" needs to have a value for field "reviewrequest" before this many-to-many relationship can be used.
        
    2. Show all issues

      Also a lie!

    3. misc/rb-auto-assigner/setup.py (Diff revision 1)
       
       
       
      Show all issues

      This is a lie.

    4. 
        
    mike_conley
    reviewbot
    1. Tool: Pyflakes
      Processed Files:
          misc/rb-auto-assigner/rb_auto_assigner/forms.py
          misc/rb-auto-assigner/rb_auto_assigner/extension.py
          misc/rb-auto-assigner/setup.py
          misc/rb-auto-assigner/rb_auto_assigner/admin_urls.py
      
      Ignored Files:
          misc/rb-auto-assigner/rb_auto_assigner/__init__.py
      
      
      
      Tool: PEP8 Style Checker
      Processed Files:
          misc/rb-auto-assigner/rb_auto_assigner/forms.py
          misc/rb-auto-assigner/rb_auto_assigner/extension.py
          misc/rb-auto-assigner/setup.py
          misc/rb-auto-assigner/rb_auto_assigner/admin_urls.py
      
      Ignored Files:
          misc/rb-auto-assigner/rb_auto_assigner/__init__.py
      
      
    2. 
        
    david
    1. 
        
    2. Show all issues

      Swap these two lines.

    3. misc/rb-auto-assigner/rb_auto_assigner/extension.py (Diff revision 2)
       
       
       
       
       
      Show all issues

      This is impossible.

    4. Show all issues

      These could be combined into a single assignment:

      assignees = [
          s.strip() for s in
          self.settings.get('assignees').split(',')
      ]
      
    5. Show all issues

      This should probably be logging.debug.

    6. Can you verify that the open counts in the dashboard are updated correctly for this?

      1. Yep, after publishing, it looks like the counts are updated for the group.

    7. Show all issues

      No blank line here.

    8. Show all issues

      Localize this too?

    9. 
        
    mike_conley
    reviewbot
    1. Tool: PEP8 Style Checker
      Processed Files:
          misc/rb-auto-assigner/rb_auto_assigner/forms.py
          misc/rb-auto-assigner/rb_auto_assigner/extension.py
          misc/rb-auto-assigner/setup.py
          misc/rb-auto-assigner/rb_auto_assigner/admin_urls.py
      
      Ignored Files:
          misc/rb-auto-assigner/rb_auto_assigner/__init__.py
      
      
      
      Tool: Pyflakes
      Processed Files:
          misc/rb-auto-assigner/rb_auto_assigner/forms.py
          misc/rb-auto-assigner/rb_auto_assigner/extension.py
          misc/rb-auto-assigner/setup.py
          misc/rb-auto-assigner/rb_auto_assigner/admin_urls.py
      
      Ignored Files:
          misc/rb-auto-assigner/rb_auto_assigner/__init__.py
      
      
    2. Show all issues
      Col: 22
       E128 continuation line under-indented for visual indent
      
    3. 
        
    mike_conley
    reviewbot
    1. Tool: Pyflakes
      Processed Files:
          misc/rb-auto-assigner/rb_auto_assigner/forms.py
          misc/rb-auto-assigner/rb_auto_assigner/extension.py
          misc/rb-auto-assigner/setup.py
          misc/rb-auto-assigner/rb_auto_assigner/admin_urls.py
      
      Ignored Files:
          misc/rb-auto-assigner/rb_auto_assigner/__init__.py
      
      
      
      Tool: PEP8 Style Checker
      Processed Files:
          misc/rb-auto-assigner/rb_auto_assigner/forms.py
          misc/rb-auto-assigner/rb_auto_assigner/extension.py
          misc/rb-auto-assigner/setup.py
          misc/rb-auto-assigner/rb_auto_assigner/admin_urls.py
      
      Ignored Files:
          misc/rb-auto-assigner/rb_auto_assigner/__init__.py
      
      
    2. 
        
    mike_conley
    david
    1. Ship It!
    2. 
        
    mike_conley
    Review request changed
    Status:
    Completed
    Change Summary:
    Pushed to master (f294119)