* feat: Upgrade edx-enterprise to 3.26.13
Canvas client create_or_update, and detection of deleted courses
ENT-4594
* fix: Use correct edx-enterprise version
ENT-4594
ENT-4594
A previous PR moved the CourseEditLTIFieldsEnabledFlag model to the LTI consumer
XBlock's repo. The migrations in the XBlock repo check if the model already
exists, and if so, it will avoid creating the model. However, it seems that
in some cases the LTI consumer XBlock's migrations run first, creating the model
and causing the edx-platform migrations to fail due to a pre-existing table
since no such check is performed in the migrations in edx-platform.
Since the only migrations that exist for this model are one that creates it and
another that deletes it, this change creates a squashed miration that just skips
creating the model since for new installs the LTI Consumer XBlock should handle
it.
This PR fixes Course Outline DAGs with duplicate sequences. Previously
when a course outline had duplicate sequences, the outline would not generate
and raise a ValueError. There were no checks for duplicate sequences
before the generation of the course outline because it is not possible
to create duplicate sequences in Studio, but is possible when a Course
Author imports a course. Now before the course outline is generated, it
will be checked for duplicate sequences. If a duplicate sequence is
found an error will be logged for Partner Support to see in the Django
Admin and the duplicate will be deleted. This change will impact the
Course Author.
Previously, it would 404. While accurate, it's not a great user
experience. Users can be offered invalid jump_to paths in the normal
course of things, if course content disappears or they lose access
to it.
In both cases, they might be offered a resume URL in the courseware
that would be to a now-invalid location.
With this change, that invalid link will at least give them
*something* (the first unit in the course) rather than an error
page.
This also (unrelatedly) fixes an exception when the learning MFE
outline page tries to render a course that contains sequences
with no children.
AA-867
[MICROBA-1307]
Before this change a user would not be auto refunded if they had a
certificate in a course with any status. This had unintended
consequences. This change updates the logic to only block auto refund
for statuses that we do not want to refund on such as downloadable.
This pull request upgrade the version of the edx-proctoring library from 3.14.0 to 3.17.1.
This includes the following changes.
GET and POST endpoints are added for to bulk get and bulk create allowances.
A bug in the exam attempt API where total time allowed for the exam would not include allowance time is fixed.
Internal logic for determing learners' onboarding statuses for the course onboarding API is replaced with a provider onboarding API.
A bug in the JSON parsing of error messages returned by the course onboarding API is fixed.
Add a Waffle Flag. When enabled, the courseware pages of the
Learning MFE should use the Learning Sequences HTTP API instead
of the Course Blocks HTTP API in order to load course structure
data. We expect that this switchover will lead to performance
improvements and a more comprehensible system.
(We are putting the switchover behind a temporary flag in order to
enable debugging, incremental rollout, and comparison testing.)
The flag is exposed to the MFE via the Course API.
As of this commit, the new flag is not enabled in any environment,
and the MFE does not have any code to act on the flag's value.
So, this commit on its own should have no production impact.
TNL-8330
This pull request upgrade the version of the edx-proctoring library from 3.14.0 to 3.17.0.
This includes the following changes.
GET and POST endpoints are added for to bulk get and bulk create allowances.
A bug in the exam attempt API where total time allowed for the exam would not include allowance time is fixed.
Internal logic for determing learners' onboarding statuses for the course onboarding API is replaced with a provider onboarding API.
This is technically a revert of a revert that also includes some new
logic. The original PR was https://github.com/edx/edx-platform/pull/27770
and the revert PR was https://github.com/edx/edx-platform/pull/27973.
The new logic is to mock a request and create a module with user state
taken into account. We also put this into a celery task to help avoid
any potential concerns with recursing through children.
and CourseSectionSequence to ensure that cascading deletes will occur to delete
the relation upon deletion of a foreign-keyed object.
This commit is phase 1 of 3 in order to ensure a smooth deploy. The phases:
1) Add separate through models for user partition groups, add fields to point to the
separate models, and start writing to those fields as well.
2) After all models have been re-generated, switch code over to use separate through
model fields backed by the separate through models.
3) After phase 2 is deployed smoothly, remove the original ManyToManyField fields
and rename the new fields to have the same name as the old fields.
* [refactor] Reword dashboard verify ID message
Small change to reword ID verification messaging on the course dashboard
and remove one of the buttons.
* set coloring of warning message
* follow patter for theme font colors
* docs: ADR for new course apps API
This ADR proposes a new course apps API that is driven by a new coruse app
plugin type.
* Updated based on feedback
* Major changes to document structure
* Review feedback
There are issues in lti-consumer-xblock version 2.11.0 that
we cannot merge into edx-platform. This pins to a previous
version until the issues are resolved.
* feat: Course Apps API
This adds a new concept called course apps. These are exposed via a new
"openedx.course_app" entrypoint, which helps the LMS and studio discover such
apps and list them in a new rest api for the same.
These course apps will drive the pages and resources view in the course authoring
MFE. This system will track which apps are enabled and which are disabled. It
also allows third-party apps to be listed here by using the plugin entrypoint.
* Apply feedback from review