def handle(self, *args, **kwargs): # pylint: disable=unused-argument
edx_course_key = kwargs.get('edx_course_key')
try:
run = CourseRun.objects.get(edx_course_key=edx_course_key)
except CourseRun.DoesNotExist:
raise CommandError('Course Run for course_id "{}" does not exist'.format(edx_course_key))
try:
can_freeze = run.can_freeze_grades
except ImproperlyConfigured:
raise CommandError('Course Run for course_id "{}" is missing the freeze date'.format(edx_course_key))
if not can_freeze:
raise CommandError('Course Run for course_id "{}" cannot be frozen yet'.format(edx_course_key))
if CourseRunGradingStatus.is_complete(run):
self.stdout.write(
self.style.SUCCESS(
'Final grades for course "{0}" are already complete'.format(edx_course_key)
)
)
return
freeze_course_run_final_grades.delay(run.id)
self.stdout.write(
self.style.SUCCESS(
'Successfully submitted async task to freeze final grades for course "{0}"'.format(edx_course_key)
)
)
评论列表
文章目录