Commit Graph

66761 Commits

Author SHA1 Message Date
Ram Chandra Bhavirisetty
456bc55d98 chore: removed moto version constraint after verifying compatibility 2025-05-04 06:16:16 +00:00
Ram Chandra Bhavirisetty
4b4faac644 chore: remove moto version constraint after verifying compatibility 2025-05-04 01:28:25 +00:00
vladislavkeblysh
84583a73e0 feat: [RGOeX-26106] added correct image for FB sharing (#33784) 2025-05-02 11:58:21 -04:00
Deborah Kaplan
ea98b2d65f chore: updating some user retirement documents (#36649)
* chore: updating some user retirement documents

* removing some Jenkins documentation which is specific to 2u's implementation, and links to the old org's wiki
* updating some markup that was preventing images from rendering. Tested locally with a docs  bill to make them render now.

FIXES: APER-3981

* chore: adding a filewith a revised image

*  another file with a revised image which didn't make it into the original commit
2025-05-02 11:41:37 -04:00
Jillian
5b3caa93e2 feat: store content.child_usage_keys in Container search document [FC-0083] (#36528)
* feat: store content.child_usage_keys in Container search document
  Stores the draft children + published children (if applicable)

Related fixes:
* fix: lib_api.get_container does not take a "user" arg
* refactor: fetch_customizable_fields_from_container does not need a "user" arg
* refactor: moves tags_count into LibraryItem
   because anything that appears in a library may be tagged.
* refactor: remove get_container_from_key from public API
   API users must use get_container and ContainerMetadata.
* refactor: made set_library_item_collections take an entity_key string instead of
  a PublishableEntity instance, so we don't need to fetch a Container object to call it.
* refactor: changed ContainerLink.update_or_create to take the container PK
  instead of a Container object, since this is enough.
  Added container_pk to ContainerMetadata to support this.
2025-05-02 10:47:25 +09:30
Navin Karkera
6508010726 fix: unwanted section of code causing cross-origin error (#36643)
https://github.com/openedx/edx-platform/pull/36477#discussion_r2069105832
2025-05-01 15:01:03 -07:00
Tim McCormack
9ff24774e1 test: Allow locale path test to pass when repo dir name different (#36648)
This test assumes edx-platform is checked out in a directory of that name.
2025-05-01 14:04:41 -04:00
ihor-romaniuk
6366592dd0 fix: improve calculation for xblock action dropdown menu on unit page 2025-05-01 14:42:04 -03:00
Navin Karkera
c2d9e40be4 refactor: update sync model helper function docs and minor cleanup (#36599)
* refactor: update sync model helper function docs

Adds some comments to explain certain confusing sections

* refactor: sync library content method

* feat: use edited_on block field

* test: modified field in course block index

* fix: extract uncommon methods to child class from base
2025-04-30 13:40:52 -07:00
Rômulo Penido
174cd583e2 chore: upgrade openedx-learning to 0.26.0 (#36630) 2025-04-30 13:36:09 -07:00
Tim McCormack
c9ae3adc24 fix: Use correct default for unsafely param (#36638)
`unsafely` should be a boolean, not None. I believe this is what was
causing a 400 in remote codejail-service calls (during darklaunch) when
the `calculate_problem_responses_csv.v2` instructor task ran:
https://github.com/edx/edx-arch-experiments/issues/1028

There are also places in the code where this member appears to be a scalar
property instead of a method, or possibly that's just buggy code that
doesn't run. I decided not to touch that in this PR (we're probably going
to DEPR the entire unsafe mechanism anyhow) but if this PR doesn't work,
that's the next place to look -- because higher up in this file there's
a `can_execute_unsafe_code=None` that we could try changing.
2025-04-30 16:23:13 -04:00
ihor-romaniuk
389547cc2b fix: unit xblock adaptivity and small visual enhancements 2025-04-30 16:56:28 -03:00
Katrina Nguyen
4ea490feb5 Merge pull request #36637 from openedx/katrinan029/upgrade-edx-enterprise-58ab4c3
feat: Upgrade Python dependency edx-enterprise
2025-04-30 10:32:07 -07:00
katrinan029
b1f0f49584 feat: Upgrade Python dependency edx-enterprise
version bump

Commit generated by workflow `openedx/edx-platform/.github/workflows/upgrade-one-python-dependency.yml@refs/heads/master`
2025-04-30 16:56:40 +00:00
Katrina Nguyen
58ab4c3eee Merge pull request #36631 from openedx/katrinan029/upgrade-edx-enterprise-1d95a56
feat: Upgrade Python dependency edx-enterprise
2025-04-29 15:02:15 -07:00
katrinan029
da9d89f260 feat: Upgrade Python dependency edx-enterprise
version bump

Commit generated by workflow `openedx/edx-platform/.github/workflows/upgrade-one-python-dependency.yml@refs/heads/master`
2025-04-29 21:31:29 +00:00
jesperhodge
1d95a56dd8 feat: Upgrade Python dependency edx-enterprise.
Sync django state of enterprise_customer_user with db

Commit generated by workflow `openedx/edx-platform/.github/workflows/upgrade-one-python-dependency.yml@refs/heads/master`
2025-04-29 14:02:47 -04:00
Justin Hynes
919615635e feat: optionally emit course completion analytics when a learner enters the courseware (#36507)
This PR attempts to improve the ability to collect analytics about learner's progress
in their courses. Currently, the only place we regularly calculate course progress is
when a learner visits the "Progress" tab in the courseware.

Now, _optionally_, when a learner visits the home page of their course, we will enqueue
a Celery task that will calculate their progress and emit a tracking event.

This event is gated by use of the COURSE_HOME_SEND_COURSE_PROGRESS_ANALYTICS_FOR_STUDENT
waffle flag.
2025-04-29 13:46:09 -04:00
Muhammad Adeel Tajamul
cc4c2c35cf chore: added log in disable user policy (#36622) 2025-04-29 15:11:18 +05:00
Muhammad Adeel Tajamul
47a920d5b9 feat: added a policy to prevent sending ace messages to disabled users (#36584) 2025-04-29 11:29:33 +05:00
github-actions[bot]
725234815f feat: Upgrade Python dependency edx-enterprise (#36616)
* feat: Upgrade Python dependency edx-enterprise

fix: fixing enrollments bug in members endpoint

Commit generated by workflow `openedx/edx-platform/.github/workflows/upgrade-one-python-dependency.yml@refs/heads/master`

* fix: spelling fix to trigger tests

---------

Co-authored-by: kiram15 <31229189+kiram15@users.noreply.github.com>
Co-authored-by: Kira Miller <kira.miller15@yahoo.com>
2025-04-28 12:43:49 -06:00
Tim McCormack
ca335b3c3a feat: Fix character range for codejail darklaunch tmpdir normalization (#36615)
Python's tempfile naming also includes underscore:
https://github.com/python/cpython/blob/3.12/Lib/tempfile.py#L140

This omission would cause normalization to fail about 1/6 of the time.

Also expand test to exercise more of character range.
2025-04-28 12:35:41 -04:00
Raymond Zhou
f741786012 fix: toggle name typo (#36597) 2025-04-28 11:34:01 -04:00
Hassan Raza
1a28a2df3b fix: Get latest existing notification for grouping (#36614) 2025-04-28 20:10:00 +05:00
Maxim Beder
36bd075c9a feat: update certificate icon
Old certificates icon contained edX trademark logo, which was not
suitable for the open source repos. Replaced with the icon that contains
Open edX logo.
2025-04-25 11:57:14 -04:00
Kira Miller
b058845208 chore: version bump (#36592) 2025-04-25 09:09:59 -06:00
Farhaan Bukhsh
318c780c3d feat: freeze edx-sandbox requirements for teak
Signed-off-by: Farhaan Bukhsh <farhaan@opencraft.com>
2025-04-25 20:10:28 +05:30
Eemaan Amir
e5f7a027e4 feat: added a new field to canvas_entry_properties in enrollment email (#36603)
* feat: added a new field to canvas_entry_properties in enrollment email

* test: updated test files
2025-04-25 17:27:49 +05:00
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