Doing modulestore lookups is expensive, so commit 695b036 created a
course_publish listener that would materialize the discussion ID to
XBlock usage key mapping into the CourseDiscussionSettings model.
However, the signal wasn't hooked up to the Studio process, so that
async task was never called. When hooking it up, I also discovered that
bok choy tests related to partitioning were failing because of a race
condition where multiple processes are overwriting the discussion
settings. To make sure this wasn't an issue, I moved the mapping to
its own table.
This is part of ARCH-111, and the overall Course Structures API
deprecation.
This endpoint is likely being inefficient with how it's querying various parts
of the code and can take courseware down, it needs to be rate limited until
optimized.
LEARNER-5527
This endpoint is likely being inefficient with how it's querying various parts of the code
and can take courseware down, it needs to be rate limited until optimized.
LEARNER-5527
This is really two separate things:
1. Fix the notes retirement endpoint to generate the correct notes API
url "/api/v1/annotations/" rather than the nonexistent "/api/v1/".
2. Update the API params to use "user" rather than "user_id". This
depends on another PR in edx/edx-notes-api to make the corresponding
change on the API side. This is required because "user" is the
hard-coded key that the permissions class uses to check the JWT token
user.
Django 2.0 will make this field required for `ForeignKey` and `OneToOneFields`.
In previous versions the option defaulted to `models.CASCADE` when not
specified. This change should make the deprecation warnings in the current
Django version go away.
The migrations where also modified, but the changes should not cause a change in
the database schema since `models.CASCADE` was already the old default.
if a learner has completed multiple course runs
of each course then they want to see course runs
with highest grades on associated programs.
LEARNER-4351
This allows course staff to add arbitrary HTML to the sidebar on the About page.
A waffle switch has been added in the course_experience app to allow enabling and disabling of this feature.
This is because we already require trailing slashes on most of the rest
of the retirement endpoints, which are called via slumber which appends
the trailing slash by default.
Since cert_html_view_enabled is deprecated and set default true,
PDF certificates are not appearing for learners and staff also
unable to regenerate them.
LEARNER-4520