The command was failing when it encountered both Old Mongo
and Split Mongo course keys, as it tried to `sort` the keys,
but Opaque Keys are only comparable if they are of the same
type. The solution is to convert them to strings before sorting.
The edx-organizations code that instruments the backfill knows
to parse them back into CourseKeys.
* Pin requirements to temporarily fix instructor task registration
We ran into an issue where instructor tasks were not being registered with celery correctly, resulting in: https://openedx.atlassian.net/browse/CR-2982
The cause wasn’t clear, so we started reverting some recent, suspect PRs. When we reverted #25746, the issue went away.
The revert PR was this one: https://github.com/edx/edx-platform/pull/25766
So that we can unpause our deployment pipelines, we’re temporarily pinning the versions of the four packages upgraded in #25746 so we can continue to investigate.
* Result of make upgrade, propagating constraints out to other requirements files
Adds can_show_course_sock and verified_mode values to the outline
API serialization. And adds a utility method to generate the
verified_mode dictionary, shared with the courseware API.
Since Course Highlights aren't necessarily weekly (self-paced courses),
update the language to be more generic. And then includes a bug fix to
not send highlights to learners after they have unenrolled from a course.
If ORGANIZATIONS_AUTOCREATE, this will create a new
org in the case that the organization is missing.
If !ORGANIZATIONS_AUTOCREATE, this will raise a
validation error in the case that the organization is
missing.
TNL-7646
When CourseNextSectionUpdate was created, it incorporated Personalized
Learner Schedules logic which didn't take into account release dates of
content and was only intended for self-paced courses that always have
all content released. This caused a bug where instructor-paced courses
could receive an update about content that had not been released yet.
This PR turns the CourseUpdateResolver back on for instructor-paced
courses so they can go back to receiving weekly highlights.
Waffle classes no longer have namespaces. All features are moved to the
WaffleFlag/WaffleSwitch classes.
Here we use the edx_toggles.toggles.__future__ API, which is available
in 1.2.0. This means that we don't have to upgrade edx-toggles. We
should remove the __future__ imports as soon as we upgrade to 2.0.0.
This is required because edx-platform uses the waffle API from
completion, which itself depends on edx-toggles. So if we change
edx-toggles import paths, we also need to upgrade our usage of
completion here.
By explicitly importing the legacy namespace classes, we make it clear
that we are using soon-to-be-deprecated classes. We will then be able to
start removing the legacy classes, one module at a time.