LTI grade callbacks for example, come in with an anonymous user. This causes a
stack trace in the psychometrics app that leads to the LTI service
getting a 404. This adds a check before that callback gets registered.
This commit updates lms/djangoapps/courseware.
These keys are now objects with a limited interface, and the particular
internal representation is managed by the data storage layer (the
modulestore).
For the LMS, there should be no outward-facing changes to the system.
The keys are, for now, a change to internal representation only. For
Studio, the new serialized form of the keys is used in urls, to allow
for further migration in the future.
Co-Author: Andy Armstrong <andya@edx.org>
Co-Author: Christina Roberts <christina@edx.org>
Co-Author: David Baumgold <db@edx.org>
Co-Author: Diana Huang <dkh@edx.org>
Co-Author: Don Mitchell <dmitchell@edx.org>
Co-Author: Julia Hansbrough <julia@edx.org>
Co-Author: Nimisha Asthagiri <nasthagiri@edx.org>
Co-Author: Sarina Canelake <sarina@edx.org>
[LMS-2370]
This information will likely be used frequently for analytics purposes, so we would like to denormalize here to avoid having to join with the modulestore later.
Fixes: AN-594
This requires fixing the javascript api implementation, and adding
an implementation of get_block to the ModuleSystem api.
However, the implementation is incomplete, due to mismatches between
the expectations of XModule and XBlock.
Also adds tests using the Acid block to make sure that the javascript
and python apis for children are working correctly.
Generating histograms requires scanning the courseware_studentmodule table on
each view. This can make staff access to courseware very slow on large courses.
Default is False.
LMS-1199
This does not yet replace the existing per-student anonymous id, but
is intended to do so in the future.
Co-author: Alexander Kryklia <kryklia@edx.org>
Co-author: Ned Batchelder <ned@edx.org>
Co-author: Oleg Marchev <oleg@edx.org>
Co-author: Valera Rozuvan <valera@edx.org>
Co-author: polesye
Updates to depend on the latest version of XBlock, which includes
support for service-to-service (thirdparty) handler urls, which aren't
authenticated with a user (unlike handler requests coming from the
xblock client-side javascript).
Co-author: Ned Batchelder <ned@edx.org>
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.