Commit Graph

67484 Commits

Author SHA1 Message Date
Raymond Zhou
da2daf255e feat: future proof artifact uploads (#37464) 2025-10-14 18:32:48 -04:00
Feanil Patel
86293e5e40 Merge pull request #37461 from openedx/feanil/remove_accessibility_html
fix: Remove templates that are never used.
2025-10-14 17:14:15 -04:00
Feanil Patel
2268c5a92f fix: Remove templates which are never used.
The code that renders these was removed some time ago but this got missed I
guess.

This cleanup is part of
https://github.com/openedx/edx-platform/issues/36108 and https://github.com/openedx/studio-frontend/issues/381
2025-10-14 16:20:59 -04:00
Feanil Patel
fc374e7dfa Merge pull request #37474 from openedx/fix-assert-dict-contains-subset-depr
fix: replace deprecated assertDictContainsSubset()
2025-10-14 13:42:51 -04:00
Chris Chávez
3db4399f74 feat: bulk modulestore migration [FC-0097] (#37381)
- Adds the task, python api, and rest api view for bulk migration.
- Refactor the code to share code between single migration and bulk migration.
2025-10-13 21:34:36 +00:00
usamasadiq
8aa2970c51 fix: fix pycodestyle error 2025-10-13 22:53:37 +05:00
usamasadiq
ebaf5e64de fix: fix pylint warning 2025-10-13 19:00:45 +05:00
Muhammad Farhan Khan
19c9a340f9 chore: move sharing_sites module into video_configuration app 2025-10-13 18:45:59 +05:00
usamasadiq
8a2c451439 fix: replace deprecated assertDictContainsSubset() 2025-10-12 11:10:36 +05:00
iloveagent57
467bb32b66 feat: Upgrade Python dependency edx-enterprise
feat: add an endpoint to create a customer admin user

Commit generated by workflow `openedx/edx-platform/.github/workflows/upgrade-one-python-dependency.yml@refs/heads/master`
2025-10-10 13:54:47 -04:00
Glib Glugovskiy
515a3017f2 docs: ADR introducing mobile offline content support (#35011)
Co-authored-by: Іван Нєдєльніцев <ivan.niedielnitsev@raccoongang.com>
Co-authored-by: Kyrylo Kholodenko <kyrylo.kholodenko@raccoongang.com>
Co-authored-by: Glib Glugovskiy <glib.glugovskiy@raccoongang.com>
2025-10-10 13:11:15 -04:00
Kyle McCormick
20bc7113e3 feat!: Remove Studio Maintenance & Announcements (#37432)
The announcements editor was never ported to frontend-app-authoring, and
the announcements display was never ported to frontend-app-learner-dashboard.
This announcements feature is rarely used, undocumented, non-a11y-friendly, and
there were no volunteers to port it to the new frontends. It is the last
remaining part of the legacy Studio "Maintenance" dashboard. So, we are
removing it.

BREAKING CHANGE: This removes...
* Studio Maintenance dashboard legacy frontend
* Studio Edit Announcements legacy frontend
* The snippet of legacy learner dashboard which renders announcements
* openedx/features/announcements djangoapp
* The ENABLE_ANNOUNCEMENTS feature flag

Not removed:
* The announcements_announcement table from openedx/features/announcements .
  The table is most likely very small, as it is only populated by administrators. Removing
  it would be more labor for us and more risk of toil for operators than is worthwhile.

Closes: https://github.com/openedx/edx-platform/issues/36263
2025-10-10 12:48:00 -04:00
farhan
dc074d57cd chore: Move sharing_sites into video_configuration app
- https://github.com/openedx/edx-platform/issues/37456
2025-10-10 17:25:39 +05:00
Navin Karkera
09e86e24b2 refactor!: use String field instead of Dict field to store top_level_downstream_parent_key (#37448)
* refactor!: use String field instead of Dict field to store top_level_downstream_parent_key

Since this is a new field no production instance should have this field
yet. Developers need to delete their old courses as this change will
raise error in all course pages.

* chore: add `top_level_parent` field in ComponentLink and ContainerLink admin

* refactor: use ":" as separator

* refactor: block key parsing and tests
2025-10-09 22:03:23 +05:30
Braden MacDonald
9110ae0d71 revert: chore: upgrade jQuery UI to version 1.14.1 (#37025) (#37449)
This reverts commit e4270785b3.
2025-10-08 18:23:05 +00:00
Luis Felipe Castaño
e4270785b3 chore: upgrade jQuery UI to version 1.14.1 (#37025) 2025-10-08 10:33:53 -07:00
Edward Zarecor
ed2e77ed82 Merge pull request #36499 from raccoongang/feat/api-for-shifting-all-past-due-dates
feat: api for shifting all relative past due dates
2025-10-08 12:01:44 -04:00
Taimoor Ahmed
4c051378d0 feat!: remove last calls to cs_comments_service (#37376)
This removes the last remaining code that called out to the
cs_comments_service. All forums backend logic now uses the v2 API from
the forum repo (https://github.com/openedx/forum). This does NOT remove
MongoDB support.

This also implements the endpoint to retrieve all comments for a user
using the new forum backend. This is not actually called from any known
frontend code, but it has not been formally deprecated as an endpoint,
and therefore needs to be supported.

As part of the cleanup, the ENABLE_FORUM_V2 course waffle flag has also
been removed, along with all remaining switching logic that used to
route between the Python API in the forum repo and service calls to the
cs_comments_service Ruby service.

Other endpoints affected (switching logic removed):

* get course commentable counts
* get/update course user stats
* update comment/thread/user
* delete thread (implementation moved to forum repo)
* follow
* retire user

This is part of the following overall DEPR ticket:
  https://github.com/openedx/cs_comments_service/issues/437
2025-10-08 11:36:52 -04:00
Abdul-Muqadim-Arbisoft
e5b497cbba fix: prevent None entrance_exam_minimum_score_pct from breaking CourseOverview sync (#37339)
* fix: prevent None entrance_exam_minimum_score_pct from breaking CourseOverview sync

When entrance exams are disabled in Studio, the field
`entrance_exam_minimum_score_pct` was set to `None`. This caused silent failures
when saving `CourseOverview` because the database column requires a float (NOT NULL).

This patch ensures that:
- CourseOverview sanitizes None values by falling back to
  `settings.ENTRANCE_EXAM_MIN_SCORE_PCT` (default=50).
- Studio avoids writing `None` and instead applies the configured default.

Impact:
- Prevents IntegrityErrors and silent failures when updating course settings.
- Restores proper syncing between modulestore (Mongo) and CourseOverview (MySQL).
- Fixes reported issues such as display name changes not persisting and course
  start dates not syncing.

Closes: https://github.com/openedx/edx-platform/issues/37319#

* refactor: clean up entrance_exam_minimum_score_pct handling

- Consolidate logic to avoid repeated assignments
- Centralize None fallback and int/float normalization
- Improve readability with inline comment and consistency with Open edX style

* test: update entrance exam deletion test to expect default min score

- Adjusted `test_entrance_exam_created_updated_and_deleted_successfully` to check for
  `settings.ENTRANCE_EXAM_MIN_SCORE_PCT` instead of `None` after exam deletion
- Added handling for both int and float defaults (`/100` for integer case)
2025-10-08 15:26:00 +05:00
Haftamu Kebede
e46cfa6b32 feat: Certificate sharing to linkedin (optionally) consider course level organization name (#37331)
By adjusting social media sharing settings(specifically linkedin) certificate parameters are autopopulated to LinkedIn API. Additional setting parameters(such as CERTIFICATE_LINKEDIN_DEFAULTS_TO_COURSE_ORGANIZATION_NAME) are introduced to override existing(platform level parameter for organization name) parameters for an operator to configure course level organization name. This will enable learners to share certificate in to LinkedIn with an option for course associated organization to be autopopulated.
2025-10-07 16:02:08 -04:00
Navin Karkera
718dac1e7b refactor: include container display name in children api (#37429)
This helps us avoid additional API calls just to fetch display name of
the container block that is being previewed.
2025-10-07 14:42:57 -05:00
Feanil Patel
d484910052 Merge pull request #37364 from openedx/final-dj52
feat!: Upgrading to `django52`.
2025-10-07 12:47:11 -04:00
Feanil Patel
2e8a19b829 Merge pull request #37416 from eduNEXT/dmh/fix-profile-url-legacy
fix: Profile MFE redirection issue (URL path override)
2025-10-07 11:41:06 -04:00
Muhammad Farhan Khan
5c759f1e13 refactor: Update and migrate Video Block JS files into xmodule/assets
- Move Video Block JS files from xmodule/js/src/video/ to xmodule/assets/video/public/js/ 
- Update JavaScript files from  RequireJS to ES6 import/export
- test: Enable and fix Karma Js tests for Video XBlock (#37351)

---------

Co-authored-by: salmannawaz <salman.nawaz@arbisoft.com>
2025-10-07 19:01:50 +05:00
Muhammad Sameer Amin
e80317d814 Merge pull request #37424 from openedx/sameeramin/upgrade-enterprise-integrated-channels-904b6c1
feat: Upgrade Python dependency enterprise-integrated-channels
2025-10-07 12:45:16 +05:00
Usama Sadiq
9bf7dfa758 chore: python requirements upgrade 2025-10-07 09:57:41 +05:00
Usama Sadiq
0c8e35415d fix: add Djang<6.0 local constraint 2025-10-07 09:43:50 +05:00
Usama Sadiq
148a233bde Merge branch 'master' into final-dj52 2025-10-07 09:30:06 +05:00
Usama Sadiq
242a69d06b Fix upgrade job pin cryptography (#37436)
* fix: pin cryptography to fix the upgrade job
* fix: pin pact-python<3.0.0
---------

Co-authored-by: edX requirements bot <49161187+edx-requirements-bot@users.noreply.github.com>
2025-10-07 09:27:24 +05:00
Rodrigo Mendez
0c9997ce92 feat: Implementation of library v2 backup endpoints 2025-10-06 18:13:02 -04:00
Rômulo Penido
913598076c fix: add default to target_collection_slug (#37391)
adds a default `None` value to the `target_collection_slug` parameter of the migration rest API endpoint, to prevent a `KeyError`.
2025-10-06 13:53:58 -05:00
Rômulo Penido
815fd443bb fix: fix fork on multiple migrations (#37422)
Fixes a bug where, when running a migration using the fork strategy, it was only looking at the last migration, resulting in a slug reuse, which would cause a component update instead of a new component creation.
2025-10-06 12:30:11 -05:00
Kyle McCormick
8b6a94bc8d fix: Only update downstream_customized for upstream-linked blocks (#37412)
We only need to track field customizations for upstream-linked (i.e.,
library-linked) blocks. Thd downstream_customized field is irrelevant for other
blocks. It would just add a ton of noise to the OLX.

Additionally, we now clear downstream_customized when severing an upstream
link.

Fixes: https://github.com/openedx/edx-platform/issues/37411
2025-10-06 11:33:25 -04:00
Feanil Patel
9ee56dee85 Merge pull request #37423 from openedx/feanil/cleanup_dead_files
build: Drop unused docker compose and sql files.
2025-10-06 11:02:12 -04:00
Feanil Patel
c0ce868365 Merge pull request #37380 from openedx/feanil/move_user_util
feanil/move user util
2025-10-06 10:37:14 -04:00
Feanil Patel
e4aafc4249 Merge pull request #37361 from mitodl/marslan/6604-configurable-allowed-hosts
fix: make ALLOWED_HOSTS configurable through YAML
2025-10-06 10:35:38 -04:00
Kyrylo Kholodenko
56806007ac refactor: use path instead of re_path 2025-10-06 13:08:39 +03:00
Usama Sadiq
f0733114db Merge branch 'master' into final-dj52 2025-10-06 14:43:09 +05:00
Kyle McCormick
0c77083e3a revert: fix: support parsing the pointer-tag OLX for external XBlocks (#37426)
This reverts commit d382721cf8,
which seems to break edx-platform's ability to load the content of externally-
defined xblocks (e.g. lti_consumer) from course exports.
2025-10-03 15:57:26 -04:00
M. Tayyab Tahir Qureshi
d382721cf8 fix: support parsing the pointer-tag OLX for external XBlocks (#37133)
Previously, the built-in XBlocks (problem, video, etc) could be parsed
from pointer tag syntax, but externally-defined XBlocks (drag-and-drop,
ORA, etc.) could only be parsed from inline syntax. This is because the
built-in blocks have special parsing logic, defined in XmlMixin,
which is not available to external blocks.

This PR shifts the pointer tag parsing "up a level" such that the parent
blocks parse the pointer tag, regardless of whether the child is built-in
or external:
* vertical (aka unit)
* split_test (aka content experiment)
* itembank (aka problem bank)
* library_content (aka randomized legacy library)

The following parent blocks still lack support for external pointer-tag children;
we will fix this in a follow-up PR:
* randomize
* all externally defined container blocks

Part of: https://github.com/openedx/XBlock/issues/823
2025-10-03 11:54:30 -04:00
Feanil Patel
c943c223b4 Merge pull request #36982 from WGU-Open-edX/refactor-36961-unify-certificate-apis
feat: add unified certificate task API with support for toggle, gener…
2025-10-03 11:46:16 -04:00
sameeramin
154c224e54 feat: Upgrade Python dependency enterprise-integrated-channels
Commit generated by workflow `openedx/edx-platform/.github/workflows/upgrade-one-python-dependency.yml@refs/heads/master`
2025-10-03 14:34:26 +00:00
Feanil Patel
4090e41f51 build: Drop unused docker compose and sql files. 2025-10-03 10:17:19 -04:00
Feanil Patel
904b6c133a Merge pull request #37413 from openedx/feanil/fix_docs_build
fix: Fix the docs build.
2025-10-03 10:01:03 -04:00
Feanil Patel
3b6a1857d0 Merge pull request #34408 from openedx/aansari/survey-mobile-view-fix
fix: survey questions options alignment in mobile view
2025-10-03 09:03:18 -04:00
Kyrylo Kholodenko
3c31cdb9eb refactor: rename and refactor functions and view 2025-10-03 14:43:34 +03:00
Awais Qureshi
daf5320981 Merge branch 'master' into final-dj52 2025-10-03 15:30:49 +05:00
Braden MacDonald
245b861e01 fix: reindex_studio could crash if an XBlock child isn't loadable (#37177)
Co-authored-by: Chris Chávez <xnpiochv@gmail.com>
2025-10-02 18:22:28 -07:00
Rômulo Penido
1aa862738e feat: adds new fork migration strategy (#37408)
Implements the `fork` strategy, allowing the user to create new copies while migrating courses/legacy libraries to v2 libraries.
2025-10-02 19:35:41 -05:00
Tim McCormack
df1d91e8ca chore: Upgrade Django to 4.2.25 to pick up security patch (#37418)
This is from running `make upgrade-package package=Django`
2025-10-01 18:06:11 -04:00