Merge pull request #20367 from edx/dcs/ada-reason
Added a reason field for due date extensions
This commit is contained in:
@@ -2856,7 +2856,9 @@ def change_due_date(request, course_id):
|
||||
student = require_student_from_identifier(request.POST.get('student'))
|
||||
unit = find_unit(course, request.POST.get('url'))
|
||||
due_date = parse_datetime(request.POST.get('due_datetime'))
|
||||
set_due_date_extension(course, unit, student, due_date, request.user)
|
||||
reason = strip_tags(request.POST.get('reason', ''))
|
||||
|
||||
set_due_date_extension(course, unit, student, due_date, request.user, reason=reason)
|
||||
|
||||
return JsonResponse(_(
|
||||
u'Successfully changed due date for student {0} for {1} '
|
||||
@@ -2877,7 +2879,9 @@ def reset_due_date(request, course_id):
|
||||
course = get_course_by_id(CourseKey.from_string(course_id))
|
||||
student = require_student_from_identifier(request.POST.get('student'))
|
||||
unit = find_unit(course, request.POST.get('url'))
|
||||
set_due_date_extension(course, unit, student, None, request.user)
|
||||
reason = strip_tags(request.POST.get('reason', ''))
|
||||
|
||||
set_due_date_extension(course, unit, student, None, request.user, reason=reason)
|
||||
if not getattr(unit, "due", None):
|
||||
# It's possible the normal due date was deleted after an extension was granted:
|
||||
return JsonResponse(
|
||||
|
||||
@@ -150,20 +150,20 @@ def title_or_url(node):
|
||||
return title
|
||||
|
||||
|
||||
def set_due_date_extension(course, unit, student, due_date, actor=None):
|
||||
def set_due_date_extension(course, unit, student, due_date, actor=None, reason=''):
|
||||
"""
|
||||
Sets a due date extension. Raises DashboardError if the unit or extended
|
||||
due date is invalid.
|
||||
"""
|
||||
if due_date:
|
||||
try:
|
||||
api.set_date_for_block(course.id, unit.location, 'due', due_date, user=student, reason=None, actor=actor)
|
||||
api.set_date_for_block(course.id, unit.location, 'due', due_date, user=student, reason=reason, actor=actor)
|
||||
except api.MissingDateError:
|
||||
raise DashboardError(_(u"Unit {0} has no due date to extend.").format(unit.location))
|
||||
except api.InvalidDateError:
|
||||
raise DashboardError(_("An extended due date must be later than the original due date."))
|
||||
else:
|
||||
api.set_date_for_block(course.id, unit.location, 'due', None, user=student, reason=None, actor=actor)
|
||||
api.set_date_for_block(course.id, unit.location, 'due', None, user=student, reason=reason, actor=actor)
|
||||
|
||||
|
||||
def dump_module_extensions(course, unit):
|
||||
|
||||
Reference in New Issue
Block a user