Commit Graph

67553 Commits

Author SHA1 Message Date
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
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
Feanil Patel
b10448dbd8 Merge pull request #37507 from openedx/feanil/fix_workflow_triggers
build: Fix workflow triggers for the Dunder init check.
2025-10-20 12:48:14 -04:00
Feanil Patel
6c7a95c7a0 build: Fix workflow triggers for the Dunder init check.
This check was previously only running on PRs to master, which makes it annoying to stack PRs and have all the checks run.  Update it so that the check runs on all PRs and on pushes to master.
2025-10-20 12:08:16 -04:00
Feanil Patel
fcfa4138fd feat!: Drop the legacy files and uplades page.
The assets page and related tests and settings flags will be removed.
They have been replaced with a new implementation in the
frontend-app-authoring MFE.

BREAKING CHANGE: The legacy_studio.files_uploads flag has been removed
and will no longer allow operators to fall back to the legacy files and
uploads view.  The new MFE version is now the only available veiew.
2025-10-20 11:50:05 -04:00
Feanil Patel
c2d65c9225 Merge pull request #37462 from openedx/feanil/drop_course_outline
feat!: Drop the legacy course_outline page.
2025-10-20 11:49:21 -04:00
Feanil Patel
91010abc17 Merge pull request #37454 from openedx/feanil/drop_course_home
feat!: Drop the legacy studio course home page
2025-10-20 11:45:58 -04:00
David Ormsbee
f7a1a9d990 feat!: remove version from library serializer
The ContentLibraryMetadata used to hold a version field that was meant
to represent the version of the library as a whole. This is a holdover
from v1 libraries, where all changes to the library resulted in a new
version of the content, and that version indicator was used by courses
to know whether or not an update was available.

This maps poorly to Learning Core backed libraries for a number of
reasons:

1. LC-backed libraries have Draft and Published branches, meaning that
   a global "version" may be ambiguous.
2. LC-backed libraries have things like tagging and collections, where
   modifications are explicitly *not* versioned at all, and do not show
   up in either the publish log or the draft change log.
3. Courses that borrow content from LC-backed libraries track
   versioning at the level of the individual thing being borrowed, e.g.
   a single Component. This is in keeping with the goal to have very
   large libraries with many small bits of content to search and use.

This commit removes the notion of a Library-global version entirely for
v2 (LC-backed) libraries. This does not affect legacy v1 libraries that
are backed by ModuleStore.
2025-10-20 11:11:46 -04:00
Tobias Macey
0fdb6ed2fe fix: Convert UUIDField columns to uuid type for MariaDB (#37494)
The behavior of the MariaDB backend has changed behavior for UUIDField
from a `CharField(32)` to an actual `uuid` type. This is not converted
automatically, which results in all writes to the affected columns to
error with a message about the data being too long. This is because the
actual tring being written is a UUID with the `-` included, resulting in
a 36 character value which can't be inserted into a 32 character column.
2025-10-20 10:32:44 -04:00
Feanil Patel
83cfa1d58b docs: Apply suggestion from @kdmccormick
Co-authored-by: Kyle McCormick <kyle@axim.org>
2025-10-20 10:26:53 -04:00
Feanil Patel
ad4b0541f8 test: Don't test HTML views that no longer exist.
The removed tests either needed to check things on the outline page
which makes them not relevant tests, or they just needed data from the
course_handler which they can get from json now.
2025-10-20 10:26:49 -04:00
Feanil Patel
5b1362fdb1 test: Drop the header menu tests.
The tests were testing a set of menu items that were specifically
available on the old course_outline page.  Since the page is never
rendered we don't need to test to see if those header items are actually
rendered.

As we finish the rest of the studio frontend cleanup, the header itself
should be removed but just removing these tests since they relied on
conditional bits of the header for when it was showing a course outline.
2025-10-20 10:26:48 -04:00
Feanil Patel
e64d4cee8d feat!: Drop the legacy course_outline page.
This page has been replaced with an equivalent page in the authoring MFE
which has been on by default since Teak.  This change removes the
ability to fallback to the old page using waffle flags.

BREAKING CHANGE: The `legacy_studio.course_outline` waffle flag will be removed
and the code will behave as if it's always set to `False`. Preventing
you from falling back to the old Course Outline page.
2025-10-20 10:26:48 -04:00
Feanil Patel
1ca24ee71c docs: Add a link to future cleanup ticket.
Co-authored-by: Kyle McCormick <kyle@axim.org>
2025-10-20 10:24:08 -04:00
Peter Pinch
264198f013 Merge pull request #37395 from asajjad2/areeb/discussions-edit-errant-string
fix: prevent errant body string on title edit
2025-10-20 08:32:56 -04:00
Muhammad Sameer Amin
71989bd67c Merge pull request #37498 from openedx/sameeramin/upgrade-edx-enterprise-e2526cf
feat: Upgrade Python dependency edx-enterprise
2025-10-20 12:41:38 +05:00
Navin Karkera
744cc87ffb feat: follow migrated legacy library content block (#37405)
* feat: show item bank ui for migrated legacy library content

* feat: migrate legacy content block to item bank block on view in studio

* fix: duplicate and copy issues

* refactor: migration location and add tests

* fix: lint issues

* fix: item bank and library content children view add button functionality

Newly added blocks from library in children view page of item bank block
and migrated library content block were not displayed automatically.

* fix: lint issues

* fix: lint issues

* feat: only migrate if same version of library is migrated

* refactor: migrate block on request

* fix: component reload on migration

* fix: tests

* refactor: comments and message wordings

* refactor: update alert text

* docs: add context

* fix: component links not being created on migrating legacy blocks

* fix: api docs and types

* refactor: use inheritance and specific parent method call

* fix: imports

* fix: api typing

* fix: upstream_version check

* refactor: rename variables

* refactor: parsing entity keys to usage_keys
2025-10-20 11:20:37 +05:30
Kyle McCormick
d91676fcb4 fix: Don't look for a custom Python ZIP in Content Libs V2 (#37500)
Python-evaluated problems were failing to render because they were trying to
invoke `course_id.make_asset_key` in order to obtain the asset key of the
custom Python ZIP file. Learning Core assets work differently (no asset keys,
etc.), and, furthermore, we haven't really thought though how and whether we
want to support custom Python ZIPs in libraries.

So, this fix punts on supporting Python ZIP files in libraries for now, but
enables rendering of advanced CAPA problems which don't rely on a ZIP. This
brings us to parity with Legacy Libraries, which didn't support assets at all
and thus didn't support Python ZIPs either.

Fixes: https://github.com/openedx/edx-platform/issues/37447
2025-10-17 17:29:26 -04:00
sameeramin
4953c12fbc feat: Upgrade Python dependency edx-enterprise
Commit generated by workflow `openedx/edx-platform/.github/workflows/upgrade-one-python-dependency.yml@refs/heads/master`
2025-10-17 17:38:32 +00:00
Rômulo Penido
e2526cfb9b feat: intra library container copy [FC-0097] (#37483)
Allows pasting sections and subsections in libraries, adding support for intra-library copy and paste
2025-10-17 12:14:24 -05:00
Peter Pinch
2b0982f2da Merge branch 'master' into areeb/discussions-edit-errant-string 2025-10-17 12:50:25 -04:00
Feanil Patel
0c214db8e3 Merge pull request #37394 from openedx/dependabot/github_actions/actions/setup-python-6
chore(deps): bump actions/setup-python from 5 to 6
2025-10-17 10:58:30 -04:00
Feanil Patel
0b8df53d70 Merge pull request #37393 from openedx/dependabot/github_actions/actions/setup-node-5
chore(deps): bump actions/setup-node from 4 to 5
2025-10-17 10:58:21 -04:00
Feanil Patel
599138b9a5 Merge pull request #36589 from tonybusa/depr-karma-selenium-webdriver-launcher
Remove karma-selenium-webdriver-launcher and dependent configs
2025-10-17 10:55:21 -04:00
Feanil Patel
56fdae20eb Merge pull request #35645 from openedx/dependabot/github_actions/thollander/actions-comment-pull-request-3
build(deps): bump thollander/actions-comment-pull-request from 2 to 3
2025-10-17 10:51:32 -04:00
Feanil Patel
7c8020d29d feat: Update the home_library url to redriect to the MFE.
The url previously pointed to the legacy index.html with the libraries
tab loaded.  Now it redirects to the new libraries endpoint in the
authoring MFE.
2025-10-17 10:25:03 -04:00
Feanil Patel
30d219fe71 test: Switch the contentstore tests to use APIs
Since we're trying to drop the underlying page, switch to the equivalent
API views for these contentstore tests.
2025-10-17 10:25:03 -04:00
Feanil Patel
b6b9599f18 test: Drop useless tests.
We had a set of i18n tests that testing basic english is working on a
page that's going away.  It's not necessary. And then we have a skipped
test that tests i18n. It would be good to have actual i18n tests and
there are some other ones in this file at the block level that do test
i18n but since this test isn't actually testing anything novel there's
no need to keep it.
2025-10-17 10:25:03 -04:00
Feanil Patel
63286258ec test: Drop tests related to the legacy course home view.
This view has been replaced with a new courses API endpoint
`/contentstore/v2/home/courses` which has its own tests.
2025-10-17 10:25:03 -04:00
Feanil Patel
0077058e37 feat!: Drop the legacy studio home page.
This is the page that lists the courses in studio.  This has been
replaced by an MFE and the MFE has been on by default since Teak.

BREAKING CHANGE: Setting the `legacy_studio.home` waffle flag will no longer
work.  The code will behave as if this is set to false showing the new
studio authoring MFE experience for the course home page.

This has been the default since Teak.
2025-10-17 10:25:03 -04:00
dependabot[bot]
ba56c0aa2d chore(deps): bump actions/setup-python from 5 to 6
Bumps [actions/setup-python](https://github.com/actions/setup-python) from 5 to 6.
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](https://github.com/actions/setup-python/compare/v5...v6)

---
updated-dependencies:
- dependency-name: actions/setup-python
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-17 14:11:51 +00:00