Adds a feature to the edX platform which allows instructors to set
individual due dates for students on particular coursework. This code is
meant primarily for on-campus use--it is not intended that this feature
would be used for MOOCs. It adds a new tab, "Extensions", to the beta
instructor dashboard which allows changing due dates per student. This
feature is enabled by setting FEATURES['INDIVIDUAL_DUE_DATES'] = True.
This allows XModules (specifically CombinedOpenEnded) to use ajax_url
during their init functions (which would, before, have thrown an
exception).
[LMS-1493]
By transparently proxying between the XModuleDescriptor and the XModule,
and between their runtimes, we can make them act as a single class, so
that we can swap in an actual XBlock instead.
Squashed commits to facilitate cherry-picking. Committers and
original commit messages are:
- ==> @caesar2164, * ==> @jrbl, ~ ==> @jbau
- Added boolean to OE problem CMS settings to turn on ICE track changes
- Added ICE init and tracking start/stop to HTML
- Conditional in Peer Grading HTML for ICE container
- CSS styling for ICE container and insertion/deletion elements
- Added class to track changes HTML
- Added ice.min.js as well as included it in the js requirements for peer grading
- Use track_changes in peer_grading_problem
* Refactor peer_grading_problem to lookup track_changes variable by problem location.
* Whitelist ICE insert, delete tags
* Adds ICE multi-user-editor insert and delete tags to the peer grading sanitize_html whitelist.
- add reset button
* Introduction ICE means we need its inline tags to get passed through
to the feedback target, but we don't want malicious peer feedback
providers introducing <script>, etc, so we use lxml.html.clean to
scrub peer grading input.
* Adds feedback URL autoheating.
* Allows ICE <insert> and <delete> tags but not others.
~ add helptext re: EXPERIMENTAL FEATURES
~ address a bunch of @VikParuchuri review comments on ICE for OEE
~ remove extraneous code
~ change to new xmodule accessors
~ refactor filtering
~ fix broken test test_peer_grading_problem
~ Create track_changes.coffee and remove <script> from
peer_grading_problem.html
~ Remove all reliance on id in favor of local scoping and classes
~ bring up test coverage somewhat
~ remove superflous $.scrollTo
~ TODO: Filtering
Instead, we use XModule field default values when creating an empty
XModule. Driven by this use case, we also allow for XModules to be
created in memory without being persisted to the database at all. This
necessitates a change to the Modulestore api, replacing clone_item with
create_draft and save_xmodule.
stores_state is now only used in a single test, in conjunction with
has_score. In practice, it's never the case that stores_state is false
when has_score is true, so we can delete stores_state entirely, and just
use has_score for the grading test.