POST proctored exam settings (#24597)

This commit is contained in:
Zachary Hancock
2020-07-27 09:23:03 -04:00
committed by GitHub
parent b77d4c9490
commit 57de9b2ac6
4 changed files with 296 additions and 85 deletions

View File

@@ -252,7 +252,7 @@ class CourseMetadata(object):
key_values[key] = descriptor.fields[key].from_json(val)
except (TypeError, ValueError, ValidationError) as err:
did_validate = False
errors.append({'message': text_type(err), 'model': model})
errors.append({'key': key, 'message': text_type(err), 'model': model})
proctoring_errors = cls._validate_proctoring_settings(descriptor, filtered_dict, user)
if proctoring_errors:
@@ -302,7 +302,7 @@ class CourseMetadata(object):
'The proctoring provider cannot be modified after a course has started.'
' Contact {support_email} for assistance'
).format(support_email=settings.PARTNER_SUPPORT_EMAIL or 'support')
errors.append({'message': message, 'model': proctoring_provider_model})
errors.append({'key': 'proctoring_provider', 'message': message, 'model': proctoring_provider_model})
# Require a valid escalation email if Proctortrack is chosen as the proctoring provider
# This requirement will be disabled until release of the new exam settings view
@@ -317,7 +317,11 @@ class CourseMetadata(object):
if proctoring_provider_model and proctoring_provider_model.get('value') == 'proctortrack':
if not escalation_email:
message = missing_escalation_email_msg.format(provider=proctoring_provider_model.get('value'))
errors.append({'message': message, 'model': proctoring_provider_model})
errors.append({
'key': 'proctoring_provider',
'message': message,
'model': proctoring_provider_model
})
if (
escalation_email_model and not proctoring_provider_model and
@@ -325,7 +329,11 @@ class CourseMetadata(object):
):
if not escalation_email:
message = missing_escalation_email_msg.format(provider=descriptor.proctoring_provider)
errors.append({'message': message, 'model': escalation_email_model})
errors.append({
'key': 'proctoring_escalation_email',
'message': message,
'model': escalation_email_model
})
return errors