Users may want to start anew when answering a question. This commit decouples reset from randomization while still preserving backward compatibility. Users can clear their input.
Instructors can set course-wide and problem-specific settings for reset button display.
This commit adds validation for course advanced settings. Currently when course
administrators make invalid changes in the Settings/Advanced Settings tab,
they're not notified through a new modal window of the list of invalid settings
changes.
* Extending CourseMetadata
- Previously, we only had update_from_json method in CourseMetadata.py,
and it was only validating one field every POST request.
- Now we have validate_and_update_from_json method that encapsulates the
functionality of update_from_json into a validation call
- To avoid discrepancy of validation standards between modules, validation
uses the from_json method implemented to each field in xblock.
* Different Response in advanced settings ajax requests
- After receiving a POST ajax request, course.py calls
validate_and_update_from_json, and sends a json object of either:
1) valid course metadata model
2) error objects
* Error Messages shown in validation-error-modal
- error objects passed through ajax are shown in a separate modal.
Stop propagation of clicks in XBlockStringFieldEditor
Fix collapsed subsections expanding when creating or deleting subsections
Prevent clicking in display name textbox from toggling expand collapse
Add test for published title when not live
This test was passing in Jenkins, but failing in our Solano runs (and locally on firefox).
This is because it was attaching a file that was not there. This change fixes the test
and makes the attachment method smarter so it will fail if it tries attaching a non-existent
file.
Fix opaque key TODOs left over from split-migrator changes and fixed test_image_import to use the correct course
Reset get_location_from_path to pre deprecated opaque-keys
Fix CMS acceptance test
Fixed usage key reassignment in item.py