* feat: Adds discussions settings for new discusions experience
This commit adds new discussions settings for the new discussions experience. These are stored in the course so they can be a part of course import/export flow.
These are also added to the discussions configuraiton API to allow MFEs to update the settings.
The discussions API is currently available via LMS, however that means it cannot save changes to the modulestore. This also adds the API to the studio config so it can now also be accessed from studio and be used to save course settings.
* fix: tests
This commit adds new discussions settings for the new discussions experience. These are stored in the course so they can be a part of course import/export flow.
These are also added to the discussions configuraiton API to allow MFEs to update the settings.
The discussions API is currently available via LMS, however that means it cannot save changes to the modulestore. This also adds the API to the studio config so it can now also be accessed from studio and be used to save course settings.
* docs: ADR that documents how MFEs can access in-context discussions
This ADR proposes the mechanism for MFEs to get access to the discussion embed for units.
* Update 0005-in-context-discussion-course-blocks.rst
* Update 0005-in-context-discussion-course-blocks.rst
Instead of hard-coding the "Learn More" and potentially other links for course
apps in the course authoring MFEs this change loads those URLs from the
django settings as part of each individual course app.
Some providers need special considerations when being set up so should only be
configured by people with global staff privileges. This adds an
admin_only_config flag to such providers (only YellowDig for now).
This Pr updates the features list of the discussion providers for,
1. Combines LTI basic configuration and LTI integration into 1 feature.
2.Enables Primary discussion app experience for Yellowdig
3. Hides Automatic learner enrollment from this list
FE changes (in Other PR):
1. Turn edX to Full Support instead of partial support
2. Rename Partial support to Basic support
https://openedx.atlassian.net/browse/TNL-8546
For authenticated users that are not global staff, changing discussion
providers after a course has started fails with 403 Forbidden.
Related issues:
* [BB-4253](https://tasks.opencraft.com/browse/BB-4253)
* [TNL-8142](https://openedx.atlassian.net/browse/TNL-8142)
BREAKING CHANGE:
Course staff, who were previously allowed to do this operation,
will instead receive a 403 Forbidden response.
* 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
Code in ./common/lib/xmodule/xmodule should
be imported as `from xmodule`, since `xmodule`
is a locally-installed package.
This is weird, but as long as it is the case,
we should be consistent.
(In BOM-2584, I propose moving the files to
./xmodule, which would quell this confusion.)