Features coming down the pipe will want to be able to:
* Refer to enrollments before they are actually activated (approval step).
* See what courses a user used to be enrolled in for when they re-enroll in
the same course, or a different run of that course.
* Have different "modes" of enrolling in a course, representing things like
honor certificate enrollment, auditing (no certs), etc.
This change adds an is_active flag and mode (with default being "honor").
The commit is only as large as it is because many parts of the codebase were
manipulating enrollments by adding and removing CourseEnrollment objects
directly. It was necessary to create classmethods on CourseEnrollment to
encapsulate this functionality and then port everything over to using them.
The migration to add columns has been tested on a prod replica, and seems to be
fine for running on a live system with single digit millions of rows of
enrollments.
Fixed all common and LMS tests.
The tests were failing because XMLDescriptor adds in some attributes
to _model_data, such as `xml_attributes`, that aren't necessary. The
solution is to handle all XML parsing in VideoDescriptor. There's
still one test failing in CMS, which has to do with metadata being
saved. I'm still working out how to update it in such a way that it
doesn't fail, but still tests something meaningful.
Added missing file.~
Undid a mistake.
Copied Python tests from video_alpha1.
moves TestLogic to __init__.py
reorginizes xmodule logic tests
adds docstrings for poll tests
adds docstring for word cloud and conditional tests
adds docstrings for video alpha tests
adds videoalphafactory for tests, not finished
adds imports
Bug fixing.
fix video/videoalpha tests
Updated lettuce test. Now it is aware of the fact that Video and Video Alpha players have different base CSS classes.
Removed REFACTOR comments.
Turn off autoplay for Video Alpha in Studio.
Carry over fix for bug where in Firefox changing to speed 1.0 has no effect.
Carry over JavaScript Jasmine tests from jmclaus/videoalpha2_js branch.
Exporting state object from main function of Video Alpha.
More stuff from jmclaus/videoalpha2_js branch.
Specs in html5_video.js all pass except ten of them. Cleaned code a bit and moved it out of display_spec.js
One more spec passes
Fixed remaning tests in spec/../html5_video.js test suite. Removed test video files.
Added JavaScript Jasmine tests for main of Video Alpha 2.
adds test for volume control and updates helper file for videoalpha
This makes the LMS use an XBlock's student_view, rather than an
XModule's get_html to render for display. However, it does not yet use
wrap_child to handle instructor debug information or url rewriting.
[LMS-219]
Embedded discussion component defaults to "Discussion"
Blank HTML page defaults to "Text"
Video component defaults to "Video"
These default names show up in tooltips.
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.
DraftModuleStore was originally designed as a mixin, but never used that
way, and with the upcoming changes to use the versioned module store,
never will be. This changes removes a circular dependency between
mongo.py and draft.py.
The data argument was being treated specially, but that was just
because we didn't have **kwargs support. Now we do. There are
two uses of data=, one we convert to kwargs, the other was actually
unused, so remove it completely.