fixup! review comments
This commit is contained in:
@@ -120,7 +120,7 @@ def grader_from_conf(conf):
|
||||
This creates a CourseGrader from a configuration (such as in course_settings.py).
|
||||
The conf can simply be an instance of CourseGrader, in which case no work is done.
|
||||
More commonly, the conf is a list of dictionaries. A WeightedSubsectionsGrader
|
||||
with AssignmentFormatGrader's will be generated. Every dictionary should contain
|
||||
with AssignmentFormatGraders will be generated. Every dictionary should contain
|
||||
the parameters for making an AssignmentFormatGrader, in addition to a 'weight' key.
|
||||
"""
|
||||
if isinstance(conf, CourseGrader):
|
||||
|
||||
@@ -282,18 +282,18 @@ class GraderTest(unittest.TestCase):
|
||||
self.assertEqual(len(graded['section_breakdown']), 12 + 1)
|
||||
|
||||
@ddt.data(
|
||||
# empty
|
||||
(
|
||||
# empty
|
||||
{},
|
||||
u"Configuration has no appropriate grader class."
|
||||
),
|
||||
# no min_count
|
||||
(
|
||||
# no min_count
|
||||
{'type': "Homework", 'drop_count': 0},
|
||||
u"Configuration has no appropriate grader class."
|
||||
),
|
||||
# no drop_count
|
||||
(
|
||||
# no drop_count
|
||||
{'type': "Homework", 'min_count': 0},
|
||||
u"__init__() takes at least 4 arguments (3 given)"
|
||||
),
|
||||
|
||||
@@ -1,14 +1,16 @@
|
||||
"""
|
||||
Management command which fixes ungraded certificates for students
|
||||
"""
|
||||
|
||||
from django.core.management.base import BaseCommand
|
||||
import logging
|
||||
from optparse import make_option
|
||||
|
||||
from certificates.models import GeneratedCertificate
|
||||
from courseware import courses
|
||||
from lms.djangoapps.grades.new.course_grade import CourseGradeFactory
|
||||
from django.test.client import RequestFactory
|
||||
from django.core.management.base import BaseCommand
|
||||
from optparse import make_option
|
||||
|
||||
|
||||
log = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class Command(BaseCommand):
|
||||
@@ -42,18 +44,15 @@ class Command(BaseCommand):
|
||||
|
||||
def handle(self, *args, **options):
|
||||
course_id = options['course']
|
||||
print "Fetching ungraded students for {0}".format(course_id)
|
||||
log.info('Fetching ungraded students for %s.', course_id)
|
||||
ungraded = GeneratedCertificate.objects.filter( # pylint: disable=no-member
|
||||
course_id__exact=course_id
|
||||
).filter(grade__exact='')
|
||||
course = courses.get_course_by_id(course_id)
|
||||
factory = RequestFactory()
|
||||
request = factory.get('/')
|
||||
|
||||
for cert in ungraded:
|
||||
# grade the student
|
||||
grade = CourseGradeFactory().create(cert.user, course)
|
||||
print "grading {0} - {1}".format(cert.user, grade.percent)
|
||||
log.info('grading %s - %s', cert.user, grade.percent)
|
||||
cert.grade = grade.percent
|
||||
if not options['noop']:
|
||||
cert.save()
|
||||
|
||||
Reference in New Issue
Block a user