Both 'provider' and 'provider_type' have been used for storing the discussion provider type in course 'discussions_settings' field, there are some places in the code checking for 'provider' and others checking for 'provider_type', in some cases this can cause a bug where it doesn't detect the correct provider which causes discussion settings not being copied correctly when a course is cloned.
This change prioritises the `provider_type` setting over `provider` and reads `provider` only as a fallback. The `provider` setting is now made read-only just for backwards-compatibility, to avoid confusion.
Returns HTTP 400 for disallowed enrollments instead of HTTP 500.
Prevents infinite loading spinners on the enrollment page.
Displays clear error messages to users before redirection.
Ensures consistent and meaningful responses from enrollment API endpoints.
* fix: commerce and enrollment apis return 403 when enrollment not allowed
* fix: now both apis send the right message and http code when enrollment fails
* fix: InvalidEnrollmentAtribute as final exception to catch and HTTP 400 returned
* style: the message is displayed as a popup instead of creating a div at the end
* fix: import not used removed for pylint checks
* style: popup now use utility classes
* refactor: use const instead of let for existing const
* refactor: textContent const structure changed due check failed
* refactor: SetTimeout settled as arrow function
* feat: button incorporated to bring users enough time to read the message
* refactor: ErrorStatuses defined at the top of the file to use it in conditionals
* style: typo fixed
Co-authored-by: Diana Olarte <dcoa@live.com>
* refactor: double validation of redirectUrl eliminated and better styling of the message
Co-authored-by: Diana Olarte <dcoa@live.com>
* refactor: redirectUrl param eliminated in showmessage function, close button redirects to dashboard always
* docs: remove unused redirectUrl param from JSDoc and explain hardcoded URL
* style: endline added
* feat: enrollmentNotAllowed exception added in views and the js
* docs: comment added to especify exception
* style: endline added
* refactor: error statuses velidation changed to one single validation instead of two
* refactor: function added to handle enrollment errors
* feat: enrollmentNotAllowed exception added for API coherence and consistency
* style: empty line added
* style: pylint check line too long disabled
---------
Co-authored-by: Diana Olarte <dcoa@live.com>
feat: added account level pref model in notification task
feat: added handler for preference creation on user signup
feat: added unit tests for account level preferences
* fix: removed app level check in notifications
* fix: updated flaky test
The CookieNameChange middleware has been removed. Originally a temporary
measure slated for removal by October 1, 2021, it facilitated a transitional cookie
migration pattern that is no longer required.
This action addresses DEPR:
https://github.com/openedx/edx-platform/issues/36834
This PR fixes following filter on the discussions module by replacing forum api to api since we only need threads that are subscribed/followed by the requesting user.
* fix: redirect to account MFE when using any legacy account URL
Redirect to the account MFE URL configured each time a legacy
account URL like http(s)://lms/account/ or http(s)://lms/account/settings
is used to avoid 404 errors while linking SSO accounts or simply
trying to access the account view via URLs.
The api/courseware/course fails for all the verified enrollments if you
are not using Account MFE, which means that you probably won't set
ACCOUNT_MICROFRONTEND_URL in your settings/configurations.
So this PR adds a check safely try to do rstrip.
Fixes a bug in https://github.com/openedx/edx-platform/pull/36870
While trying to be enrolled on a verified course, the upgrade process
gets to an error screen due to a double slash on the URL that it's added
while doing the redirection to the account microfrontend
Will be backported to Teak.
Part of https://github.com/openedx/wg-build-test-release/issues/468
- Adds the subsections dict in the search index to be used by units
- Adds the sections dict in the search index to be used by sections.
- Rename `get_containers_contains_component` to `get_containers_contains_item` and add support to subsections/sections
- Call `CONTENT_OBJECT_ASSOCIATIONS_CHANGED` for sections and subsections in `update_container_children`
- Refactor of `test_containers.py` 8b9731dfa1
- Updates the `content_libraries/api/containers` and `content_libraries/rest_api` to support:
- Basic CRUD for sections and subsections as containers
- Basic CRUD support for section and subsection children
- Updates the `content/search` to support:
- Basic CRUD for sections and subsections as containers in the search index
- Basic CRUD support for section and subsection children in the search index
- Updates the `content_libraries/tests/test_containers.py` to test the new support
- Updates the `content/search/tests` to test the new support.
- I verified that the add/remove to collection works without major changes. Tests updated
This upgrades edx-django-utils to a version that drops the newrelic
dependency. However, I also needed to fix a test that was sensitive to the
number of warnings that the code under test produced. With newrelic gone,
there's an additional warning.
- Fix test so that it isn't sensitive to unrelated warnings
- Fix typo in warning
For reference, this is the new warning:
```
"WARNING:edx_django_utils.monitoring.internal.backends:Could not load OPENEDX_TELEMETRY option 'edx_django_utils.monitoring.NewRelicBackend': Exception('Could not load New Relic monitoring backend; package not present.')"
```
This is expected due to edx-django-utils still defaulting to NR for
telemetry. (Perhaps the subject of a future breaking change.)
* feat: added support of multiple course ids in enrollment API and fixed failing case
* refactor: handled course IDs along with course run IDs
* refactor: added dosctring and renamed variable
* fix: added temp mixin
* test: added unit tests of added case