Create extension for auto-assigning students to the students group

Review Request #7856 — Created Jan. 8, 2016 and discarded

Information

rb-extension-pack
master

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.

Description From Last Updated

'RBAutoAssigner' imported but unused

reviewbotreviewbot

'json' imported but unused

reviewbotreviewbot

Single quotes.

brenniebrennie

Blank line here.

brenniebrennie

Same here.

brenniebrennie

And here.

brenniebrennie

logging.info, etc will do % interpolation with positional arguments, so you can do: logging.info('foo %s', bar)

brenniebrennie

Col: 80 E501 line too long (100 > 79 characters)

reviewbotreviewbot

Single quotes

brenniebrennie

Prefer MANIFEST.in over package_data

brenniebrennie

Instead of doing this on publish, what about on create?

daviddavid

I don't think we care if they've joined the group or not.

daviddavid

Would be better to do Group.objects.get(name=self.auto_assign_group) and catch Group.DoesNotExist

daviddavid

Not possible.

daviddavid

Limiting to 40 characters means we won't be able to put in very many usernames.

daviddavid
reviewbot
  1. Tool: PEP8 Style Checker
    Processed Files:
        rbauto_assigner/rbauto_assigner/admin_urls.py
        rbauto_assigner/rbauto_assigner/extension.py
        rbauto_assigner/setup.py
    
    Ignored Files:
        rbauto_assigner/rbauto_assigner/__init__.py
    
    
    
    Tool: Pyflakes
    Processed Files:
        rbauto_assigner/rbauto_assigner/admin_urls.py
        rbauto_assigner/rbauto_assigner/extension.py
        rbauto_assigner/setup.py
    
    Ignored Files:
        rbauto_assigner/rbauto_assigner/__init__.py
    
    
  2. Show all issues
     'RBAutoAssigner' imported but unused
    
  3. Show all issues
     'json' imported but unused
    
  4. rbauto_assigner/setup.py (Diff revision 1)
     
     
    Show all issues
    Col: 80
     E501 line too long (100 > 79 characters)
    
  5. 
      
brennie
  1. 
      
  2. Show all issues

    Single quotes.

  3. Show all issues

    Blank line here.

  4. Show all issues

    Same here.

  5. Show all issues

    And here.

  6. Show all issues

    logging.info, etc will do % interpolation with positional arguments, so you can do:

    logging.info('foo %s',
                 bar)
    
  7. 
      
brennie
  1. 
      
  2. rbauto_assigner/setup.py (Diff revision 1)
     
     
     
     
    Show all issues

    Single quotes

  3. rbauto_assigner/setup.py (Diff revision 1)
     
     
     
     
     
    Show all issues

    Prefer MANIFEST.in over package_data

  4. 
      
mike_conley
reviewbot
  1. Tool: PEP8 Style Checker
    Processed Files:
        rbauto_assigner/rbauto_assigner/admin_urls.py
        rbauto_assigner/rbauto_assigner/extension.py
        rbauto_assigner/setup.py
        rbauto_assigner/rbauto_assigner/forms.py
    
    Ignored Files:
        rbauto_assigner/rbauto_assigner/__init__.py
    
    
  2. 
      
david
  1. Given that this is currently highly student-specific (right now), instead of putting it in rb-extension-pack, how about in the misc/ directory of the student-sonar repository? We can always move it when/if we make it more generic.

  2. Show all issues

    Instead of doing this on publish, what about on create?

    1. I don't see a signal for review request creation. Should I add one in a separate review request?

    2. There's no explicit creation signal, but you can listen to django.db.models.signals.pre_save for ReviewRequest and see if the pk is falsy.

  3. Show all issues

    I don't think we care if they've joined the group or not.

  4. Show all issues

    Would be better to do Group.objects.get(name=self.auto_assign_group) and catch Group.DoesNotExist

  5. Show all issues

    Not possible.

  6. Show all issues

    Limiting to 40 characters means we won't be able to put in very many usernames.

  7. 
      
mike_conley
Review request changed
Status:
Discarded
Change Summary:

Re-posted for the student-sonar repo at https://reviews.reviewboard.org/r/7872/