From d9b553b378fcd38b88e08c6248dc2b3ec13bcd47 Mon Sep 17 00:00:00 2001 From: Arjun Singh Date: Mon, 5 Nov 2012 15:29:49 -0800 Subject: [PATCH] Adding a better command for assigning roles. --- .../commands/assign_roles_for_course.py | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 lms/djangoapps/django_comment_client/management/commands/assign_roles_for_course.py diff --git a/lms/djangoapps/django_comment_client/management/commands/assign_roles_for_course.py b/lms/djangoapps/django_comment_client/management/commands/assign_roles_for_course.py new file mode 100644 index 0000000000..82f2290bc7 --- /dev/null +++ b/lms/djangoapps/django_comment_client/management/commands/assign_roles_for_course.py @@ -0,0 +1,27 @@ +""" +This must be run only after seed_permissions_roles.py! + +Creates default roles for all users in the provided course. Just runs through +Enrollments. +""" +from django.core.management.base import BaseCommand, CommandError + +from student.models import CourseEnrollment, assign_default_role + +class Command(BaseCommand): + args = 'course_id' + help = 'Add roles for all users in a course' + + def handle(self, *args, **options): + if len(args) == 0: + raise CommandError("Please provide a course id") + if len(args) > 1: + raise CommandError("Too many arguments") + course_id = args[0] + + print "Updated roles for ", + for i, enrollment in enumerate(CourseEnrollment.objects.filter(course_id=course_id), start=1): + assign_default_role(None, enrollment) + if i % 1000 == 0: + print "{0}...".format(i), + print