Commit Graph

66833 Commits

Author SHA1 Message Date
Hassan Raza
c87a3b721b chore: add temporary info log for notification grouping issue (#36600) 2025-04-25 13:15:12 +05:00
Hassan Raza
2d4defef2c fix: Add info for ORA notifications and fix for account preferences (#36571) 2025-04-25 11:33:02 +05:00
Navin Karkera
1cd73d1b96 feat: support for syncing units from libraries to courses (#36553)
* feat: library unit sync
* feat: create component link only for component xblocks
* feat: container link model
* feat: update downstream api views
* feat: delete extra components in container on sync (not working)
* fix: duplicate definitions of LibraryXBlockMetadata
* test: add a new integration test suite for syncing
* feat: partially implement container+child syncing
* fix: blockserializer wasn't always serializing all HTML block fields
* feat: handle reorder, addition and deletion of components in sync

Updates children components of unit in course based on upstream unit,
deletes removed component, adds new ones and updates order as per
upstream.

* feat: return unit upstreamInfo and disallow edits to units in courses that are sourced from a library (#773)
* feat: Add upstream_info to unit
* feat: disallow edits to units in courses that are sourced from a library (#774)

---------

Co-authored-by: Jillian Vogel <jill@opencraft.com>
Co-authored-by: Rômulo Penido <romulo.penido@gmail.com>

* docs: capitalization of XBlock

Co-authored-by: David Ormsbee <dave@axim.org>

* refactor: (minor) change python property name to reflect type better

* fix: lots of "Tried to inspect a missing...upstream link" warnings

when viewing a unit in Studio

* docs: mention potential REST API for future refactor

* fix: check if upstream actually exists before making unit read-only

* chore: fix camel-case var

* fix: test failure when mocked XBlock doesn't have UpstreamSyncMixin

---------

Co-authored-by: Braden MacDonald <braden@opencraft.com>
Co-authored-by: Chris Chávez <xnpiochv@gmail.com>
Co-authored-by: Jillian Vogel <jill@opencraft.com>
Co-authored-by: Rômulo Penido <romulo.penido@gmail.com>
Co-authored-by: Braden MacDonald <mail@bradenm.com>
Co-authored-by: David Ormsbee <dave@axim.org>
2025-04-24 11:41:47 -07:00
Kyle McCormick
875158f1ad feat!: Put "How It Works" Page Behind Waffle in Preparation for Removal (#36496)
We add a a new Waffle toggle:

* legacy_studio.logged_out_home

Unless enabled, unauthenticated users accessing Studio will now be sent
to the login page, and then redirected to the logged-in Studio home (the
course listing). By the Ulmo release, the Waffle will be removed along
with the howitworks page, and the new redirect-to-login behavior will
become the only available behavior.

The howitworks page is implemented as a legacy frontend, and we are not
seeing enough value in it to justify a rewrite in React. Via the DEPR
process we confirmed that the new behavior is acceptable, or even
preferable, as it removes edX.org-oriented language from the community
release and reduces the number of clicks needed for Studio users to log
in. We add an a new Waffle toggles

Part of: https://github.com/openedx/edx-platform/issues/36269
which is part of: https://github.com/openedx/edx-platform/issues/36275
2025-04-24 17:07:25 +00:00
Kyle McCormick
8e9f94424d feat!: Flip Studio MFE Waffle Flags to be On-By-Default (#36495)
This makes nearly all of Studio React-by-default by replacing the
"opt-in-to-React" flags with a set of parallel
"opt-out-of-React-and-use-the-legacy-experience" flags. Here is the
mapping:

* `contentstore.new_studio_mfe.use_new_unit_page` ->
  `!legacy_studio.unit_editor`
* `new_core_editors.use_new_problem_editor` ->
  `!legacy_studio.problem_editor`
* `new_core_editors.use_new_text_editor` ->
  `!legacy_studio.text_editor`
* `new_core_editors.use_new_video_editor` ->
  `!legacy_studio.video_editor`
* `new_studio_mfe.use_new_home_page` ->
  `!legacy_studio.home`
* `contentstore.new_studio_mfe.use_new_custom_pages` ->
  `!legacy_studio.custom_pages`
* `contentstore.new_studio_mfe.use_new_schedule_details_page` ->
  `!legacy_studio.schedule_details`
* `contentstore.new_studio_mfe.use_new_advanced_settings_page` ->
  `!legacy_studio.advanced_settings`
* `contentstore.new_studio_mfe.use_new_grading_page` ->
  `!legacy_studio.grading`
* `contentstore.new_studio_mfe.use_new_updates_page` ->
  `!legacy_studio.updates`
* `contentstore.new_studio_mfe.use_new_import_page` ->
  `!legacy_studio.import`
* `contentstore.new_studio_mfe.use_new_export_page` ->
  `!legacy_studio.export`
* `contentstore.new_studio_mfe.use_new_files_uploads_page` ->
  `!legacy_studio.files_uploads`
* `contentstore.new_studio_mfe.use_new_course_outline_page` ->
  `!legacy_studio.course_outline`
* `contentstore.new_studio_mfe.use_new_course_team_page` ->
  `!legacy_studio.course_team`
* `contentstore.new_studio_mfe.use_new_certificates_page` ->
  `!legacy_studio.certificates`
* `contentstore.new_studio_mfe.use_new_textbooks_page` ->
  `!legacy_studio.textbooks`
* `contentstore.new_studio_mfe.use_new_group_configurations_page` ->
  `!legacy_studio.configurations`

Part of: https://github.com/openedx/edx-platform/issues/36275
2025-04-24 12:34:35 -04:00
Awais Qureshi
1b15ae0cd9 feat!: upgrading api to DRF. 2025-04-24 13:00:04 +05:00
Muhammad Adeel Tajamul
254167feb6 feat: removed new notification view waffle flag (#36585) 2025-04-24 12:11:36 +05:00
Awais Qureshi
04aa93c213 feat!: upgrading api to DRF. 2025-04-24 11:29:34 +05:00
Muhammad Faraz Maqsood
692a1862d0 fix: message after email is sent via batch enrollment 2025-04-24 10:46:50 +05:00
Braden MacDonald
867e246606 chore: bump opaque-keys to v3, update content libraries key usages (#36588)
See https://github.com/openedx/opaque-keys/pull/379
2025-04-23 22:03:01 +00:00
David Ormsbee
77fda46a39 chore: remove py2neo as a dependency
The py2neo package exists to support CourseGraph, which required the
Neo4j database. Support for it was removed before the Sumac cut, tracked
by the following DEPR:
  https://github.com/openedx/edx-platform/issues/34342

It looks like the actual dependency install was just overlooked during
the removal process.
2025-04-23 15:00:40 -04:00
Feanil Patel
ac5c6d6de3 Merge pull request #36564 from openedx/repo-tools/upgrade-python-requirements-1ac6de2
chore: Upgrade Python requirements
2025-04-23 15:00:06 -04:00
Feanil Patel
8cab446f69 test: Make pytz api related tests more resilient.
Compare the output of our API with the library that backs them so that
we don't have brittle tests that need to be updated when the number of
timezones changes.
2025-04-23 14:29:50 -04:00
Feanil Patel
e174ab4666 build: Rollback django-user-tasks.
The newest version is throwing an error because it may not be compatible
with both Django 4.2 and 5.2
2025-04-23 14:29:50 -04:00
edX requirements bot
e5d3509a2b chore: Upgrade Python requirements 2025-04-23 14:29:50 -04:00
Ivan Niedielnitsev
3f67f3c295 feat: Import from modulestore APIs (#36540)
This PR is addressed at adding the functionality to import
modulestore-based content to the learning-core based learning
package.

Partof: https://github.com/openedx/frontend-app-authoring/issues/1681
2025-04-23 14:28:07 -04:00
Feanil Patel
544531423d Merge pull request #36532 from raccoongang/axm-default-advanced-modules
Allow Default Advanced Modules Configuration
2025-04-23 09:16:51 -04:00
Andrii
dcd7c1b171 refactor: move DEFAULT_ADVANCED_MODULES to hardcoded list instead of settings 2025-04-23 14:31:26 +03:00
Braden MacDonald
ce00b16be7 test: Enforce application layering using import linter (#36581)
* test: add import linters to promote clean dependencies

* docs: update a few comments / todos
2025-04-23 00:28:30 -04:00
Kyle McCormick
9d45f855d6 feat: Explicit mapping from container_types to OLX tags (#36580)
This is needed by several aspects of the Teak Libraries Overhaul
(https://github.com/orgs/openedx/projects/66) including:
* copy-paste of containers between courses and V2 libraries
* syncing of containers in courses from V2 libraries
* the import_from_modulestore API
2025-04-23 00:13:28 +00:00
Kyle D McCormick
4551aea70d feat: Install (sub)sections apps from openedx-learning 2025-04-22 18:51:34 -04:00
Kyle D McCormick
a790d2f5ae feat: Upgrade openedx-learning to 0.25 for Section support 2025-04-22 18:51:34 -04:00
Chris Chávez
54ec998bee fix: Broken CSS styles of ora2 block editor [FC-0076] (#36220)
* It was this error 'Uncaught TypeError: el.timepicker is not a function' while rendering the editor. It's fixed adding the timepicker pluging in xblock_v2/xblock_iframe.html
* Added '.openassessment_cancel_button' and '.openassessment_save_button' as action buttons.
* Use openassessment manifest.json to load css from dist
2025-04-22 21:08:02 +00:00
Peter Pinch
2eb0adb440 Merge pull request #36500 from mitodl/asad/save-video-asides-during-course-import
fix: save video asides during XML course import
2025-04-22 15:48:35 -04:00
Asad Ali
797438e91b fix: save video asides during XML course import 2025-04-22 23:59:55 +05:00
Edward Zarecor
49a69f5042 feat: allow return dates for not started courses for mobile, PR #36297
feat: allow return dates for not started courses for mobile
2025-04-22 13:28:38 -04:00
Chris Chávez
f5e0500854 feat: Add new publish field on container search document (#36551)
* Added publish_display_name and last_published on container search document.
* This change is used in feat: Add unit from library in course [FC-0083] frontend-app-authoring#1829 to show only published units in the unit picker, also to show the published_display_name in the picker, and avoid empty titles.
* Which edX user roles will this change impact? "Developer".
2025-04-22 16:58:57 +00:00
Ahtisham Shahid
1608e8f9b6 Revert "Revert "Revert "Saml redirect mfe (#36197)" (#36550)" (#36554)" (#36569)
This reverts commit 51a48b42a9.
2025-04-22 09:34:20 +00:00
Andrii
94c37e9449 refactor: simplify tests a bit & add DEFAULT_ADVANCED_MODULES to test settings 2025-04-22 11:59:05 +03:00
Muhammad Adeel Tajamul
f90c442ad6 fix: unpin thread api calling returning 500 error (#36567) 2025-04-22 12:45:26 +05:00
Muhammad Adeel Tajamul
6972a6a562 feat: prevent sending bulk email to disabled users (#36549) 2025-04-22 12:44:04 +05:00
Ahtisham Shahid
51a48b42a9 Revert "Revert "Saml redirect mfe (#36197)" (#36550)" (#36554)
This reverts commit 447cd796b7.
2025-04-22 11:06:42 +05:00
Braden MacDonald
1ac6de2ec0 chore: libraries - remove usage of deprecated key types / params (#36563) 2025-04-21 18:47:29 -07:00
Kyle McCormick
57658b78d2 fix: add missing migraitons for import_from_modulestore (#36560) 2025-04-21 13:56:23 -04:00
Hamza Waleed
b7a4e8cce4 Merge pull request #36548 from openedx/hamzawaleed01/upgrade-edx-enterprise-334c0fe
feat: Upgrade Python dependency edx-enterprise
2025-04-19 00:27:17 +05:00
Hamza Waleed
8e1e80a00c Merge branch 'master' into hamzawaleed01/upgrade-edx-enterprise-334c0fe 2025-04-19 00:08:00 +05:00
Tim McCormack
3a9b4367e6 fix: Call json_safe on globals in codejail remote_exec (#36542)
We need to make globals JSON-friendly before sending them across the
network.

Addresses https://github.com/edx/edx-arch-experiments/issues/1016
2025-04-18 11:22:43 -04:00
Ahtisham Shahid
447cd796b7 Revert "Saml redirect mfe (#36197)" (#36550)
This reverts commit 0a05dc292b.
2025-04-18 15:12:22 +00:00
hamzawaleed01
fe297b2b80 feat: Upgrade Python dependency edx-enterprise
chore: added logs for debuging

Commit generated by workflow `openedx/edx-platform/.github/workflows/upgrade-one-python-dependency.yml@refs/heads/master`
2025-04-18 13:39:50 +00:00
Kyrylo Kholodenko
b2c57adf12 feat: allow return dates for not started courses for mobile 2025-04-18 14:08:35 +03:00
Braden MacDonald
334c0fee51 feat: REST API to publish the changes to a container in a library (#36543)
* feat: REST API to publish the changes to a container

* fix: trigger LIBRARY_CONTAINER_UPDATED when component published
   for components in containers.

---------

Co-authored-by: Jillian Vogel <jill@opencraft.com>
2025-04-17 22:05:44 -07:00
Tim McCormack
a960cdff8d fix: Add much more codejail darklaunch info; fix remote error bug (#36534)
- Fix bug where we were overwriting `remote_emsg` with None, and add test
  that would have caught it.
- Suppress differences due solely to the codejail sandbox directory name
  differing (in stack traces), and add test for this. Configurable because
  we'll need to add an additional search/replace pair for the sandbox venv
  paths.
- Add a variety of custom attributes, replacing existing ones. The attrs
  now have a prefixed naming scheme to simplify searching.
- Add slug to log output so we can more readily correlate traces and logs,
  as well as logs across services.
- Fix typo in error message.
- Fix existing import sort order lint.
2025-04-17 15:39:47 -04:00
Ivan Niedielnitsev
505b4f466c feat: Models for import_from_modulestore (#36515)
A new application has been created, described in this ADR:
https://github.com/openedx/edx-platform/pull/36545

have been created, as well as related models for mapping original content and
new content created during the import process. Python and Django APIs, as well
as a Django admin interface, will soon follow.
2025-04-17 19:03:46 +00:00
David Ormsbee
fd7ce0e273 feat: record the user for library content writes (#36513)
We were previously not recording who was doing write/delete/reset operations.
Prior to openedx-learning 0.23.0, we didn't have a place to write the user for a
reset-to-publish.

Upgrades the openedx-learning pin, 0.22 -> 0.23
2025-04-16 20:17:05 +00:00
Sarina Canelake
d2b7e64697 docs: Point to nvmrc for the official Node version (#36533) 2025-04-16 15:45:58 -04:00
Chris Chávez
581596b52b fix: Transcripts in downstream creation [FC-0076] (#36509)
* Fix the issue described in https://github.com/openedx/frontend-app-authoring/issues/1352#issuecomment-2791305416
2025-04-16 17:11:03 +00:00
Tim McCormack
3fac56b407 Merge pull request #36521 from openedx/timmc/cj-dl-more
Restructure codejail darklaunch to better capture errors, fix globals pollution.
2025-04-16 09:51:40 -04:00
Ahtisham Shahid
af40ac0feb feat: update preference config when version is changed (#36518) 2025-04-16 15:39:22 +05:00
andrii-hantkovskyi
d5c50b5376 feat: [AXM-1899] add default advanced modules (#2634)
* feat: [AXM-1899] add default advanced modules

* test: [AXM-1899] add check for default advanced modules list

---------

Co-authored-by: Andrii <andrii.hantkovskyi@raccoongang.com>
2025-04-16 12:56:30 +03:00
Braden MacDonald
336fb018fb feat: support pasting units from courses into libraries (#36516)
* fix: don't allow pasting xblocks with children into libraries
* fix: IntegrityError: "Column 'md5_hash' cannot be null"
* feat: allow pasting a unit from a course into a library
* feat: auto-generate a nice block_id when pasting into a library
* test: add test for pasting unit from course into library
* fix: better handle potentially missing display_names during paste
* chore: clarifications and import cleanups
2025-04-15 15:25:46 -07:00