All programs are now managed using the Django admin on the catalog service. This is the first in a series of commits removing use of the old programs service from edx-platform.
ECOM-4422
This command was updated to request programs from the catalog, but it wasn't changed to deal with the new response structure. I'm updating all code in the LMS to deal with catalog service responses separately.
ECOM-6900.
When crawlers like edX-downloader make requests on courseware, they are
often concurrently loading many units in the same sequence. This causes
contention for the rows in courseware_studentmodule that store the
student's state for various XBlocks/XModules, most notably for the
sequence, chapter, and course -- all of which record and update user
position information when loaded.
It would be nice if we could actually remove these writes altogether
and come up with a cleaner way of keeping track of the user's position.
In general, GETs should be side-effect free. However, any such change
would break backwards compatibility, and would require close
coordination with research teams to make sure they weren't negatively
affected.
This commit identifies crawlers by user agent (CrawlersConfig model),
and blocks student state writes if a crawler is detected. FieldDataCache
writes simply become no-ops. It doesn't actually alter the rendering
of the courseware in any way -- the main impact is that the blocks
won't record your most recent position, which is meaningless for
crawlers anyway.
This can also be used as a building block for other policy we want to
define around crawlers. We just have to be mindful that this only works
with "nice" crawlers who are honest in their user agents, and that
significantly more sophisticated (and costly) measures would be
necessary to prevent crawlers that try to be even trivially sneaky.
[PERF-403]
The programs service has no concept of run publication status. The catalog does, and many runs returned by the programs service are marked as unpublished in the catalog. To maintain existing behavior and continue displaying these runs as part of their respective programs, we need to ignore their publication status.
ECOM-6925
The system checks require database access, which is not available when building Docker images. This relaxes the check, allowing the command to execute without a database.
ECOM-6634
This change requires Block Transformer schema changes to be backwards
compatible for older Block Transformer code versions - at least 1
version back to allow smooth deployments in a multi-version setting.
[courseware] generate sequence-specific titles server-side (AC-695)
[courseware] generate sequence-specific titles server-side (AC-695)
case for empty subsections [AC-695]
move title logic into courseware context method [AC-695]
pep8
coffeescript -> js
js mistake
jslint
refactor sequence title generation slightly
missed a line
line too long
python is not javascript
ugh js
ugh js part 2
We added this a long time ago as part of the shift to opaque-keys, but
left it on because it's occasionally useful for spotting unusual levels
of activity for certain models. That being said, because we have so
many models now, we're generating too many differently named metrics,
which might get expensive.
This is doing the simplest thing and just removing datadog reporting
of model updates altogether.