Commit Graph

67582 Commits

Author SHA1 Message Date
Navin Karkera
72dac75710 fix: lgeacy library block child.save fails in production instance while migrating (#37573)
The child.save() call while migrating legacy library block to library version 2 fails with `InvalidScopeError` due to presence of `LmsFieldData` in` _bound_field_data` field. Removing this call does not seem to have any adverse affect.
2025-10-30 14:53:55 +00:00
Maria Grimaldi (Majo)
e68e39d957 chore: bump openedx-authz version to avoid app not installed exception (#37577) 2025-10-30 15:04:28 +01:00
Michael Roytman
1c44ca034e Merge pull request #37571 from edx/michaelroytman/COSMO2-729-exam-due-dates-self-paced
fix: incorrect LTI exam due dates for self-paced courses
2025-10-30 08:55:45 -04:00
edX requirements bot
48e8688e8e chore: Upgrade Python requirements (#37575) 2025-10-30 16:21:42 +05:00
Navin Karkera
2db3183958 feat: replace is_modified with downstream_customized field in upstream entity api and models (#37563)
This helps the caller to differentiate between the kind of local edits the downstream has and use it accordingly.
2025-10-29 22:22:01 +00:00
Braden MacDonald
4690913a04 feat: remove "experimental" param from reindex_studio (#37546) 2025-10-29 13:52:06 -07:00
Michael Roytman
2c82f230c9 fix: incorrect LTI exam due dates for self-paced courses
These changes fix a bug in how LTI-based exam due dates are computed and written to the exams service. Prior to this change, an LTI exam due date was computed irrespective of the course pacing type. In certain cases, this caused incorrect due dates to be written to the exams service for LTI-based exams.

For example, if a course team initially develops a course as an instructor-paced course and sets a due date on an exam subsection, that subsection due date is written to the modulestore. If the course team subsequently changes that course pacing type to self-paced, then that due date remains in the modulestore to allow course teams to switch pacing types without erasing due dates. The impact of this is that, when the course is published, the exam subsection due date is written to the exams service as the due date, even though there are no static due dates in a self-paced course. Frequently, these due dates are in the past (e.g. for course reruns), so learners automatically cannot access exams. Even if the due date is manually corrected in the exams service, every course publish reverts the due date to the incorrect due date.

This change computes the due date of LTI-based exams as...
* the exam subsection due date if the course is instructor-paced, if the subsection has a due date; else None
* the course end date if the course is self-paced, if the course has an end date; else None

In order to correct any incorrect due dates, course teams should republish their courses.
2025-10-29 16:43:07 -04:00
Kyle McCormick
b033b337a2 docs: Fix types in OldModuleStoreRuntime comments
Just a small find+replace mistake from 
834cb9482d
2025-10-29 15:49:29 -04:00
Kyle McCormick
834cb9482d refactor: rename ModuleStore runtimes now that XModules are gone (#35523)
* Consolidates and renames the runtime used as a base for all the others:
  * Before: `xmodule.x_module:DescriptorSystem` and
            `xmodule.mako_block:MakoDescriptorSystem`.
  * After:  `xmodule.x_module:ModuleStoreRuntime`.

* Co-locates and renames the runtimes for importing course OLX:
  * Before: `xmodule.x_module:XMLParsingSystem` and
            `xmodule.modulestore.xml:ImportSystem`.
  * After:  `xmodule.modulestore.xml:XMLParsingModuleStoreRuntime` and
            `xmodule.modulestore.xml:XMLImportingModuleStoreRuntime`.
  * Note: I would have liked to consolidate these, but it would have
          involved nontrivial test refactoring.

* Renames the stub Old Mongo runtime:
  * Before: `xmodule.modulestore.mongo.base:CachingDescriptorSystem`.
  * After: `xmodule.modulestore.mongo.base:OldModuleStoreRuntime`.

* Renames the Split Mongo runtime, the which is what runs courses in LMS and CMS:
  * Before: `xmodule.modulestore.split_mongo.caching_descriptor_system:CachingDescriptorSystem`.
  * After: `xmodule.modulestore.split_mongo.runtime:SplitModuleStoreRuntime`.

* Renames some of the dummy runtimes used only in unit tests.
2025-10-29 15:46:07 -04:00
Maria Grimaldi (Majo)
31b1e6ecc4 [FC-0099] feat: assign library roles after successful library creation (#37532) 2025-10-29 20:29:02 +01:00
Nathan Sprenkle
6b0af90664 feat: add a default audio codec for the HLS video player (#37525)
This seems to reduce instances of audio garbling when switching levels during HLS video streaming.
2025-10-29 15:24:33 -04:00
Ahtisham Shahid
dc7db1d3ad feat: unpinned social-auth-core (#37550)
* feat: unpinned social-auth-core

feat: unpinned social-auth-core

* fix: updated to resolve failing tests

* fix: resolved linter errors and failing tests

* fix: updated get_attr signature according to new version
2025-10-29 13:16:34 -04:00
Peter Kulko
2a473cffd3 feat: Prevent empty wrapper divs for about sections with no content (#37551) 2025-10-29 10:52:21 -04:00
Tarun Tak
18d5abb2f6 chore: Replace pytz with zoneinfo for UTC handling - Part 1 (#37523)
First PR to replace pytz with zoneinfo for UTC handling across codebase.

This PR migrates all UTC timezone handling from pytz to Python’s standard
library zoneinfo. The pytz library is now deprecated, and its documentation
recommends using zoneinfo for all new code. This update modernizes our
codebase, removes legacy pytz usage, and ensures compatibility with
current best practices for timezone management in Python 3.9+. No functional
changes to timezone logic - just a direct replacement for UTC handling.

https://github.com/openedx/edx-platform/issues/33980
2025-10-28 16:23:22 -04:00
Daniel Wong
6deb4f8d05 fix: add to search index when creating library from archive (#37526)
Implement full re-index process when creating a library.
2025-10-27 17:53:07 -04:00
Navin Karkera
8aaae4604a fix: index and entity link sync issues on parent block deletion (#37541)
Meilisearch index documents were not synced properly when any block with children blocks like units, subsections, sections etc. were being deleted as the `XBLOCK_DELETED` is only triggered for the deleted block.
This PR fixes it by deleting all index documents that contain the deleted block in its `breadcrumbs` field as only blocks that are children of this block will have it its breadcrumbs field.

Similarly, the entity links that store links between course and library blocks was not synced properly due to children `ContainerLinks` not being deleted.
2025-10-27 13:44:36 -05:00
Deborah Kaplan
121fee3035 feat: display the reset toggles for a report (#37556)
One retirement partner status report admin toggle has  being renamed,
and another has been added. This PR displays them on the appropriate
django admin page.
2025-10-27 17:25:38 +00:00
Taimoor Ahmed
a4c70d7f37 chore: bump forum version to 0.3.8 (#37555)
Co-authored-by: Taimoor  Ahmed <taimoor.ahmed@A006-01711.local>
2025-10-27 18:16:52 +05:00
Krish Tyagi
b86e203249 fix: Improve SAML configuration checks and update warning messages (#37377)
- Removes custom attributes for report. Uses report output only.
- Adds a count for disabled SAML configs.
- Displays disabled status of provider.
- Slug mismatch now informational only (rather than warning)
* Cleans up unit tests.
2025-10-25 00:43:35 +00:00
Deborah Kaplan
3dc96a97e9 feat: allows a reversion of the retirement partner report reset toggle (#37539)
* feat: allows a reversion of the  retirement partner report reset toggle

This allows you to set retirement partner report statuses to True as well as to False. One sample use case: if an overly large number of retirement partner reports have their status reset to false, the partner report queue can struggle to deal with the large queue.

FIXES: APER-4177
2025-10-24 17:07:40 +00:00
Muhammad Faraz Maqsood
8f7e8e3a8b fix: pasting a component with image isn't working (#37529)
- when copying a component that has image in it, and we try to paste it. Image URL
appends  `static_None`. Result in crash or image not found error.
- In this commit we have fixed this scenario, copy paste is working for components
containing images.

---------

Co-authored-by: Muhammad Faraz  Maqsood <faraz.maqsood@A006-01130.local>
2025-10-24 11:12:45 -04:00
Muhammad Farhan Khan
6dc868831c Adds aximprovements team to the code owners of xmodule (#37531)
* chore: add aximprovements team to CODEOWNERS for xmodule

The Aximprovements team is working on extracting all built-in XBlocks
to the external repository (xblocks-contrib). They need to be notified
about any changes within xmodule to stay aligned with this effort.

Ticket: https://github.com/openedx/edx-platform/issues/34827
2025-10-24 09:52:23 -04:00
Muhammad Sameer Amin
74782f4763 Merge pull request #37543 from openedx/sameeramin/upgrade-enterprise-integrated-channels-81fc0bd
feat: Upgrade Python dependency enterprise-integrated-channels
2025-10-24 17:42:57 +05:00
sameeramin
4427150790 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-24 12:05:02 +00:00
Feanil Patel
81fc0bd85c Merge pull request #37535 from openedx/feanil/xblocks_with_children_rendering_fix
fix: Adding components to xblocks with children.
2025-10-23 16:20:08 -04:00
Feanil Patel
3c5cc6fffd fix: Adding components to xblocks with children.
Previously the container JS would remove the `add-xblock-component` for
every component that was in an iframe that was not the split test
component.  We're changing the logic to say that we should not render
the old buttons on pages where the authoring view provides an
alternative set of buttons.  Which in this case is just the
unit/vertical page.  All other containers should render the old buttons
since the new authoring MFE does not provide them.
2025-10-23 15:57:01 -04:00
Taimoor Ahmed
86d9b08b5d feat: remove last cs_comments service references (#37503)
This commit removes all remaining references to cs_comments_service
except the ForumsConfig model. The only purpose of keeping the model
and table around is so that the webapp processes don't start throwing
errors during deployment because they're running the old code for a
few minutes after the database migration has run. We can drop
ForumsConfig and add the drop-table migration after Ulmo is cut.

Also bumps the openedx-forum version to 0.3.7

---------

Co-authored-by: Taimoor  Ahmed <taimoor.ahmed@A006-01711.local>
2025-10-23 10:48:39 -04:00
Feanil Patel
604a87c417 Merge pull request #37527 from openedx/repo-tools/upgrade-python-requirements-067ca72
chore: Upgrade Python requirements
2025-10-23 08:15:43 -04:00
Sameen Fatima
3a97ff2d5e fix: do not autogenerate username if coming through SSO (#37522)
Co-authored-by: Sameen Fatima <sameen.fatima@A006-01036.local>
2025-10-23 14:47:14 +05:00
edX requirements bot
d6e1eabb9c chore: Upgrade Python requirements 2025-10-23 04:05:35 -04:00
Tarun Tak
067ca72ed0 fix: remove unused waffle switch for optimizing learner retrieval (#37513) 2025-10-22 19:53:07 -04:00
Tarun Tak
f05fb639c8 feat: remove unused USE_ENCRYPTED_USER_DATA (#37305) 2025-10-22 19:41:59 -04:00
Chris Chávez
89d3491fef fix: Unfinished migration on fail in one legacy library [FC-0107] (#37521)
- Fix the issue described in https://github.com/openedx/frontend-app-authoring/issues/2169#issuecomment-3412840187
- Adds `is_failed` field to migrations.
- Adds the logic of partial migration: If the import of a library fails, then mark it as failed and continue with the next library.
2025-10-22 17:07:03 -05:00
Chris Chávez
774f3b37cf fix: Issue when migrating legacy libraries with large keys (#37520)
The length of `purpose` in `StagedContent` is 64. The previous code used the legacy content key. So if the library had a very long key, an error occurred. The new code uses the `pk` instead of the `key`
2025-10-22 15:42:17 -05:00
Muhammad Anas
4afff6ef5c feat: shift progress calculation to backend, add never_but_include_grade (#37399)
This commit migrates the data calculation logic for the GradeSummary
table, which was previously in the frontend-app-learning.

This commit also introduces a new visibility option for assignment
scores: “Never show individual assessment results, but show overall
assessment results after the due date.”

With this option, learners cannot see question-level correctness or
scores at any time. However, once the due date has passed, they can
view their overall score in the total grades section on the Progress
page.

These two changes are coupled with each other because it compromises
the integrity of this data to do the score hiding logic on the front
end.

The corresponding frontend PR is: openedx/frontend-app-learning#1797
2025-10-22 10:15:42 -04:00
Taylor Payne
bf8ffe4cf7 feat: add library restore endpoint (#37439)
Adds a library restore endpoint to restore a learning package from a
backup zip archive (/api/libraries/v2/restore/). The learning package
can then be used to create a content library.
2025-10-22 08:30:18 -04:00
Feanil Patel
5d01a40936 Merge pull request #37511 from openedx/repo-tools/upgrade-python-requirements-900706b
chore: Upgrade Python requirements
2025-10-21 14:08:58 -04:00
Feanil Patel
b55c44a81a Merge pull request #37510 from openedx/feanil/fix_branding_redirect_loop
feanil/fix branding redirect loop
2025-10-21 13:27:48 -04:00
Feanil Patel
05392be60a chore: Run make upgrade 2025-10-21 12:42:09 -04:00
Feanil Patel
8894d7dea3 build: Constrain social-auth-core to unblock other upgrades. 2025-10-21 12:32:54 -04:00
Feanil Patel
a0ab48921f fix: Handle a case that could cause infinite redirects.
If ENABLE_MKTG_SITE is True, MKTG_URLS['ROOT'] must be set.  However if
it is set to the same value as the LMS_ROOT_URL (which points to this
view), you can end up in an infinite redirect loop.  If the two URLs do
match, don't redirect, just fall through to the content that this page
would have responded with instead.
2025-10-21 12:11:57 -04:00
edX requirements bot
e7ba68f334 chore: Upgrade Python requirements 2025-10-20 22:40:17 -04:00
Ihor Romaniuk
900706b1e5 fix: improve styling of headers+lists in LMS+Studio (#34867) 2025-10-20 17:26:03 -07:00
Rodrigo Mendez
9ee599005b fix: always return an absolute url in libraries backup endpoint (#37508)
The 'url' field on the GET /api/libraries/v2/{library_id}/backup/?task_id={task_id}
endpoint was returning realtive paths when the file was stored on the default
FileSystemStorage backend, which makes it inconsistent with other storage
backends and semantically incorrect.

This commit addresses this making sure it always returns an absolute url.
2025-10-20 19:48:33 -04:00
Chris Chávez
3f5ac6ddbc fix: Update on_commit_changes_to of modulestore to check MySQL transaction [FC-0097] (#37485)
- `handle_update_xblock_upstream_link` is called asynchronously with celery. In `update_upstream_downstream_link_handler`, the xblock has the updated version, but when calling `handle_update_xblock_upstream_link` inside Celery, the xblock is outdated in a previous version, which is why the error occurs. This happens because `on_commit_changes_to` is executed before the MySQL transaction ends.
- Added `ImmediateOnCommitMixin` to be used in tests that need to call `on_commit_changes_to`. See https://github.com/openedx/edx-platform/pull/37485#issuecomment-3412979170  for more info
2025-10-20 17:02:04 -05:00
Feanil Patel
82073d395c fix: Drop references to the FEATURES dict.
These are out of date and while they still work with the proxy object we
don't need them anymore.  Just look up the setting directly.
2025-10-20 15:28:54 -04:00
Feanil Patel
23295c5e18 Merge pull request #37484 from openedx/feanil/drop_studio_frontend_dependency
build: Don't install @edx/studio-frontend
2025-10-20 15:25:53 -04:00
Feanil Patel
28ab2ceb67 fix: Drop other references to studiofrontend.
Drop tooling to load studio-frontend components into mako templates and
XSS testing features related to it.
2025-10-20 14:08:45 -04:00
Feanil Patel
1ebe64db56 build: Don't install @edx/studio-frontend
The dependencies on this package via studio should all be removed now
and so we no longer need to install this package to pickup any
components from it.

This work is part of:
* https://github.com/openedx/edx-platform/issues/36275
* https://github.com/openedx/edx-platform/issues/36108
2025-10-20 14:08:45 -04:00
Feanil Patel
14d4aa22c8 Merge pull request #37482 from openedx/feanil/drop_assets_and_files
feat!: Drop the legacy files and uploads page.
2025-10-20 12:54:55 -04:00