new_contents: #!/usr/bin/python
  #
  # File:   manage_course_groups
  #
  # interactively list and edit membership in course staff and instructor groups
  
  import os, sys, string, re
  import datetime
  from getpass import getpass
  import json
  import readline
  
  from django.core.management.base import BaseCommand
  from django.conf import settings
  from django.contrib.auth.models import User, Group
  
  #-----------------------------------------------------------------------------
  # get all staff groups
  
  class Command(BaseCommand):
      help = "Manage course group membership, interactively."
  
      def handle(self, *args, **options):
  
          gset = Group.objects.all()
          
          print "Groups:"
          for cnt,g in zip(range(len(gset)), gset):
              print "%d. %s" % (cnt,g)
          
          gnum = int(raw_input('Choose group to manage (enter #): '))
          
          group = gset[gnum]
          
          #-----------------------------------------------------------------------------
          # users in group
          
          uall = User.objects.all()
          print "----"
          print "List of All Users: %s" % [str(x.username) for x in uall]
          print "----"
          
          while True:
          
              print "Users in the group:"
              
              uset = group.user_set.all()
              for cnt, u in zip(range(len(uset)), uset):
                  print "%d. %s" % (cnt, u)
          
              action = raw_input('Choose user to delete (enter #) or enter usernames (comma delim) to add: ')
          
              m = re.match('^[0-9]+$',action)
              if m:
                  unum = int(action)
                  u = uset[unum]
                  print "Deleting user %s" % u
                  u.groups.remove(group)
              
              else:
                  for uname in action.split(','):
                      try:
                          user = User.objects.get(username=action)
                      except Exception as err:
                          print "Error %s" % err
                          continue
                      print "adding %s to group %s" % (user, group)
                      user.groups.add(group)
                  
              
              
  
subject: add manage_course_groups command to lms_migration