Fix grades management commands
This commit is contained in:
@@ -3,6 +3,9 @@ from certificates.models import GeneratedCertificate
|
||||
from django.test.client import RequestFactory
|
||||
from django.core.management.base import BaseCommand, CommandError
|
||||
import os
|
||||
from opaque_keys import InvalidKeyError
|
||||
from xmodule.modulestore.keys import CourseKey
|
||||
from xmodule.modulestore.locations import SlashSeparatedCourseKey
|
||||
from django.contrib.auth.models import User
|
||||
from optparse import make_option
|
||||
import datetime
|
||||
@@ -62,24 +65,37 @@ class Command(BaseCommand):
|
||||
options['output']))
|
||||
|
||||
STATUS_INTERVAL = 100
|
||||
course_id = options['course']
|
||||
print "Fetching enrolled students for {0}".format(course_id)
|
||||
|
||||
# parse out the course into a coursekey
|
||||
if options['course']:
|
||||
try:
|
||||
course_key = CourseKey.from_string(options['course'])
|
||||
# if it's not a new-style course key, parse it from an old-style
|
||||
# course key
|
||||
except InvalidKeyError:
|
||||
course_key = SlashSeparatedCourseKey.from_deprecated_string(options['course'])
|
||||
|
||||
print "Fetching enrolled students for {0}".format(course_key)
|
||||
enrolled_students = User.objects.filter(
|
||||
courseenrollment__course_id=course_id)
|
||||
courseenrollment__course_id=course_key
|
||||
)
|
||||
factory = RequestMock()
|
||||
request = factory.get('/')
|
||||
|
||||
total = enrolled_students.count()
|
||||
print "Total enrolled: {0}".format(total)
|
||||
course = courses.get_course_by_id(course_id)
|
||||
course = courses.get_course_by_id(course_key)
|
||||
total = enrolled_students.count()
|
||||
start = datetime.datetime.now()
|
||||
rows = []
|
||||
header = None
|
||||
print "Fetching certificate data"
|
||||
cert_grades = {cert.user.username: cert.grade
|
||||
for cert in list(GeneratedCertificate.objects.filter(
|
||||
course_id=course_id).prefetch_related('user'))}
|
||||
cert_grades = {
|
||||
cert.user.username: cert.grade
|
||||
for cert in list(
|
||||
GeneratedCertificate.objects.filter(course_id=course_key).prefetch_related('user')
|
||||
)
|
||||
}
|
||||
print "Grading students"
|
||||
for count, student in enumerate(enrolled_students):
|
||||
count += 1
|
||||
|
||||
Reference in New Issue
Block a user