* it now works in the context of a specific course_id
* add tracking of parent locations to xml modulestore
* adjust lots of tests, including some refactoring
* NOT working yet: jumping to the right position in a sequence.
* All access checks now done for the "user" param, ignoring request.user
- This matters for xqueue callbacks and for instructor view of student progress
* An effect of this change is that if a student couldn't see their own 'progress' tab,
the course instructor won't be able to see it either
* All access control logic is now in access.py
* It exports a single method for general use: has_access(user, object, action)
- possible actions depend on object type (e.g. 'see_exists', 'enroll', 'staff')
* Removed DARK_LAUNCH feature flag--it is now the default behavior
* Replaced check_course with three separate more focused functions that use has_access
Minor things:
* note on using pdb in testing
* moved time parsing helper into timeparse.py
* x_modules now have a .start attribute (None if not in metadata)
* if the course metadata have enrollment_start and/or enrollment_end,
only allow normal users to enroll post start and pre end.
* If DARK_LAUNCH is on, staff can enroll outside the window
* pass user to check_course
* if dark launch feature enabled, users with staff access to course
can see courseware before start date. Students still can't.
* tests.
* Remaining: enrollment view has custom access control. Need to check it.
* move askbot repo into mitx as a submodule
* set settings as in 85865f7221
* remove test_mongo env.
* Refactor tests to use new config structure.
* Add real integration tests--not working due to bugs in course xml. Turned off.
* new env file to run integration tests with mongo backend
- needs askbot to get db in the right state
- needs wiki to load pages successfully
- not using migrations to make it run faster
* import test courses, check that each page loads without erroring.
* fix NonePointerException in index view to make tests pass
* misc formatting cleanups