Commit Graph

25665 Commits

Author SHA1 Message Date
Brian Smith
fd15557435 refactor: remove deprecated sidebar toggles (#37983)
DEPR ticket: https://github.com/openedx/public-engineering/issues/316
2026-02-09 09:32:17 -05:00
KEVYN SUAREZ
fd644d4bf6 fix: Ensure problem response reports include all descendant problems regardless of nesting or randomization (#36677)
This PR ensures that the instructor "Problem Responses" report in Open edX includes all student responses to all problems under any selected block, including those that are nested or randomized (such as those from legacy library_content blocks). Previously, the report could miss responses to problems that were not directly visible to the instructor or admin user generating the report, especially in courses using randomized content blocks or deep nesting.

In courses that use randomized content (e.g., legacy library_content blocks) or have deeply nested structures, the instructor dashboard’s problem response report was incomplete. It only included responses to problems visible in the block tree for the user generating the report (typically the admin or instructor). As a result, responses to problems served randomly to students, or problems nested in containers, were omitted from the CSV export. This led to inaccurate reporting and made it difficult for instructors to audit all student answers.
2026-02-05 11:16:56 -05:00
Troy Sankey
e78223f091 chore: upgrade enterprise-integrated-channels to 0.1.38
Also bump SQL queries by +2 for the test_read_and_update() unit test
which triggers new synchronous signal handlers on grade change. See
https://github.com/openedx/enterprise-integrated-channels/pull/109

ENT-11229
2026-02-04 16:01:42 -08:00
David Ormsbee
9bf7a72a3a refactor: switch to use openedx_content app (#37924)
The openedx-learning repo was recently refactored to consolidate its
authoring apps into a single openedx_content app:

  https://github.com/openedx/openedx-platform/pull/37924

This commit makes the following changes to accommodate this:

- Bumps the openedx-learning version to 0.31.0 to get the changes.
- Creates new migrations in content_libraries, contentstore, and
  modulestore_migrator to foreign key references to authoring apps
  to point to the new openedx_content app. This is done without
  actually making database changes, since the openedx_content app
  models are taking over the existing tables that the authoring apps
  once pointed to.
- Creates new squashed migrations in these apps that create these
  foreign keys to reference openedx_content app models from the start.

The full rationale for how and why this was done is in the following
openedx-learning ADR:

  https://github.com/openedx/openedx-learning/blob/main/docs/decisions/0020-merge-authoring-apps-into-openedx-content.rst

These migrations should run fine from either a from-scratch scenario
(i.e. a new install or CI), or when upgrading from an Ulmo-or-later
database state. If you have a database state that comes from the middle
of the Ulmo development cycle (e.g. October 2025), you may encounter
migration errors in content_libraries, contentstore, or
modulestore_migrator, with an error message complaining about missing
tables. If you receive this message, run the following command:

  python manage.py lms migrate openedx_content 0001

Then try to run the migrations for the app that failed. Repeat if
necessary for multiple apps.
2026-02-04 12:41:13 -05:00
Feanil Patel
18113c63af test: update Jest snapshots for @edx/paragon 2.6.4 → 2.7.0
The caret version pinning change updated @edx/paragon from 2.6.4 to
2.7.0, which caused Icon component IDs to change from "Icon2" to
"Icon1" in snapshot tests.

This is a cosmetic change with no functional impact. The Icon
component generates unique IDs using a module-level counter in
src/utils/newId.js:

    let lastId = 0;
    const newId = (prefix = 'id') => {
      lastId += 1;
      return `${prefix}${lastId}`;
    };

The ID values depend on module import order, which changed slightly
between versions. The visual rendering and accessibility features
(screen reader text) are unaffected.

References:
- Paragon Icon component: https://github.com/edx/paragon/blob/v2.7.0/src/Icon/index.jsx
- Paragon newId utility: https://github.com/edx/paragon/blob/v2.7.0/src/utils/newId.js
- Version comparison: https://github.com/edx/paragon/compare/v2.6.4...v2.7.0

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-02 11:54:05 -05:00
Akanshu Aich
50da280144 fix: handle CourseOverview.DoesNotExist exception in optout creation (#77) (#37885)
User retirement failed when CourseOverview records were missing, causing CourseOverview.DoesNotExist exceptions
in bulk email signal handler. These records were missing when the course was deleted.

Solution:

Add exception handling in force_optout_all signal handler:
- Wrapped Optout.objects.get_or_create() in try/except block
- Log warning and skip enrollment when CourseOverview is missing.
2026-01-30 19:08:37 +00:00
wgu-jesse-stewart
6cb2ea3cf1 docs: add adr and schema for enrollment api (#37846) 2026-01-29 16:36:31 -07:00
Daniel Wong
abc0853e1b fix: add missing staff_ora_grading_url field to ORA list endpoint (#37937) 2026-01-29 10:36:38 -07:00
Deimer M
bf056af1c4 fix: remove unnecessary help urls tokens 2026-01-28 13:38:52 -05:00
Javier Ontiveros
12029c7c11 feat: add unit extensions list endpoint for instructor dashboard v2 api (#37783)
Add a new endpoint to get the unit extensions for a course. Update edx-when from 3.0.0 to 3.1.0 in order to get data necessary for response.

---------

Co-authored-by: Daniel Wong <danieleduardo.wongfa@wgu.edu>
2026-01-27 11:11:41 -07:00
Daniel Wong
0b14be613d fix: set correct final grade value for ORA summary endpoint 2026-01-22 10:40:23 -05:00
Irtaza Akram
5b1951228e refactor: Move score_render to lms/grades (#37884)
* fix: move score_render to lms
2026-01-21 17:13:33 +05:00
Daniel Wong
f65d423c77 feat: add Instructor Dashboard ORA summary API v2 (#37858) 2026-01-20 15:32:06 -05:00
Akanshu Aich
2d82d90279 refactor: migrated FEATURES dict settings to top-level in core files and fixed related test files. (#37389)
* refactor: moved remaining feature dicts settings into top-level settings.

* refactor: moved remaining feature dicts settings into top-level settings.

* fix: fixed the test files

* fix: fixed tehe pylint errors

* fix: fixation of the cms ci failure

* fix: fixed remaining feature settings for cms

* fix: added fix for requirements

* fix: added fix for lms tests

* fix: resolved the test views issue

* fix: configured views file and test_views

* fix: fixed lint errors and assertion issues

* fix: added fix for base url issue in test view

* fix: added fix for base_url and assertion issue

* fix: added configurations for base utl fix

* fix: handled none issue for mfe config

* fix: corrected override settings in test views

* fix: added getattr defensive technique for view settings

* fix: reverted views and test_views file

* fix: added settings in views file

* fix: added with patch within functions in test view

* fix: rearranged the features in default_legacy_config

* fix: fixing the tests  with clearing cache

* fix: reverted test views to verify the CI check

* fix: added cache clear in mfe config test

* fix: fixed the patch toggles to override settings

* fix: fixed the lint errors

* fix: changed patch toggle to override settings
2026-01-20 11:55:26 -05:00
Daniel Wong
761739020b feat: add Instructor Dashboard ORA list API v2 (#37853)
* feat: add Instructor Dashboard ORA list API v2
2026-01-20 09:27:04 -05:00
M. Tayyab Tahir Qureshi
a6c3c3236d chore: make the tests run for both BuiltIn and Extracted LTI Blocks (#36020) 2026-01-19 16:07:06 +05:00
Taylor Payne
97f95fd441 refactor: hoist annotations for common settings (#37888) 2026-01-15 10:30:19 -07:00
Ahtisham Shahid
d71d46e313 Revert "refactor: hoist annotations for common settings with differing values…" (#37883)
This reverts commit d49de134d5.
2026-01-14 15:08:04 +00:00
jawad khan
99e7492b5e Removed DEFAULT_HASHING_ALGORITHM from lms (#37820)
* chore: Removed DEFAULT_HASHING_ALGORITHM from lms

* fix: removed session_hash_verified from session verification
2026-01-13 18:13:52 +05:00
salmannawaz
af55715eba chore: convert mako template into django template 2026-01-12 11:57:34 +05:00
Taylor Payne
d49de134d5 refactor: hoist annotations for common settings with differing values (#37800) 2026-01-09 13:07:12 -07:00
Awais Qureshi
54c10bc728 chore: all apis converted to DRF so require_post_params (#37091)
* chore: all apis converted to DRF so `require_post_params` is not required.
2026-01-09 12:30:39 -05:00
Nathan Sprenkle
e45ae329e7 feat: add toggle for unifying site & translation language (#37854) 2026-01-09 11:59:03 -05:00
Taylor Payne
7111e8b18c refactor: bring common settings into common module (#37746) 2026-01-09 09:20:59 -07:00
Daniel Wong
7f1f8767a8 docs: instructor ORA api spec (#37775)
* docs: instructor ORA api spec
2026-01-08 16:30:26 -07:00
Daniel Wong
cd6faeb966 Follow-up to PR 36789 (#37751)
* refactor(certificates): replace direct model imports with data classes and APIs

* fix: use Certificates API to create certificates

* docs: update docstring for get_certificate_for_user

* fix: remove trailing whitespace

---------

Co-authored-by: coder1918 <ram.chandra@wgu.edu>
Co-authored-by: Deborah Kaplan <deborahgu@users.noreply.github.com>
2026-01-08 13:03:46 -05:00
Irtaza Akram
474dc71f0d chore: remove legacy problem studio view (#37795)
* fix: remove legacy problem studio view and resource templates
2026-01-08 13:07:15 +05:00
Muhammad Farhan Khan
0b628353ef refactor: move editor_saved to VideoConfigService (#37829)
refactor: move editor_saved to VideoConfigService (#37829)
* This moves edx-platform-specific logic out of the VideoBlock,
in preparation for the VideoBlock extraction
2026-01-08 11:50:08 +05:00
Irtaza Akram
d29b0473f4 fix: align pylint fixes in edx-platform Problem XBlock with extracted xblocks-contrib/problem (#37758)
* fix: pylint issues for problem xblock
2026-01-07 16:39:11 +05:00
Irtaza Akram
33cc1a94ba chore: upstream ProblemBlock exceptions and shared utilities to XBlock (#37806)
* fix: add support for xblock 5.3.0
2026-01-07 13:30:53 +05:00
Muhammad Arslan
e548e924cd fix: remove text from base query_params (#37835) 2026-01-02 20:05:21 +05:00
Ahtisham Shahid
85fc7207be feat: added buffer to immediate email notification (#37741) 2026-01-02 17:48:01 +05:00
salmannawaz
2aeac45994 Convert discussion block sass variable into css variables (#37742)
* chore: convert discussion sass variable into css variables
2025-12-30 23:13:47 +05:00
Muhammad Farhan Khan
360a97fdd3 refactor: Move available_translations into VideoConfigService (#37808)
This moves edx-platform-specific logic out of the VideoBlock,
in preparation for the VideoBlock extraction:
openedx#36282
2025-12-26 18:56:57 +05:00
Feanil Patel
00f72bb41e Merge pull request #37504 from Pearson-Advance/felipeb/learning-microfrontend-url-site-aware
feat: make LEARNING_MICROFRONTEND_URL site aware.
2025-12-23 10:58:34 -05:00
Muhammad Farhan Khan
277481f741 chore: remove unused/legacy translation method from video block
Remove unused/legacy translation method from video block
2025-12-22 17:57:52 +05:00
wgu-jesse-stewart
2c53232c5d docs: add instructor api v2 ADR/OpenAPI spec for course info and grading (#37743) 2025-12-17 13:19:55 -07:00
farhan
1208d6c1f6 chore: remove unused/legacy translation method from video block 2025-12-17 14:06:32 +05:00
Feanil Patel
18c541e848 Merge pull request #37721 from WGU-Open-edX/feature/37713-instructor-dashboard-course-info-api
FEAT: Instructor Dashboard - Course Info - API - Add missing content
2025-12-16 11:54:59 -05:00
Brian Buck
11fd2225e6 fix: Fix OpenAPI schema generation
Fix OpenAPI schema generation for GET /api/instructor/v2/courses/{course_id} to properly show documentation.
2025-12-16 09:20:45 -07:00
Brian Buck
88f2856c82 feat: Adds the bulk_email tab for staff level users in CourseInformationSerializer v2 serializer.
Rename v2 InstructorTaskSerializer to InstructorTaskSerializerV2

Rename v2 CourseInformationSerializer to CourseInformationSerializerV2
2025-12-16 09:20:45 -07:00
Brian Buck
baaa666435 fix: Fixes a bug in OpenAPI schema generation
Fixes a bug in OpenAPI schema generation that would fail due to overlapping namespaces between v1 and v2 APIs
2025-12-16 09:20:45 -07:00
Brian Buck
81bdfdd8d2 feat: Adds course_run field to CourseInformationSerializer v2
Adds sort_order field to tabs JSON in the tabs list in CourseInformationSerializer v2 serializer

Move course_run below course_number and also move the serializer method.

Auto-format removing extraneous white space.

Add trailing commas to the instructor course tabs list to improve the diff going forward.

Add comment about sort order
2025-12-16 09:20:28 -07:00
Javier Ontiveros
6c8a3af6b9 feat: instructor dashboard - added graded subsections endpoint (#37708)
* feat: added extensions v2 endpoint

* chore: move new api related things to new v2 files

* chore: cleanup

* chore:  codestyle fixes

* chore: manual codestyle fix

* chore: better class naming

* chore: fixed trailing new lins

* chore: better response for bad learner id

* chore: fixed comments

* chore: fixed linting issues

* chore: commit fixes

* feat: add GET graded subsections endpoint

* chore: fixed lint issue

* chore: pylint fixes

* chore: lint fix

* chore: lint fixes

* chore: lint fix

* chore: lint fix

* chore: updated JsonResponse to Response for consitency

* chore: syntax fix after rebase

* chore: re-added url after master rebase
2025-12-15 12:26:35 -05:00
Leonardo Beroes
70ea641c99 feat: Improve robust score rendering with event-based architecture
This commit implements a comprehensive solution for test score integration in the
enhancement system along with improvements to the score rendering mechanism. Key
changes include:

- Add event handler for rendering blocks with edx-submissions scores
- Implement event-based mechanism to render XBlocks with scoring data
- Create signal handlers in handlers.py to process external grader scores
- Develop specialized XBlock loader for rendering without HTTP requests
- Add queue_key propagation across the submission pipeline
- Register submission URLs in LMS routing configuration
- Add complete docstrings to score render module for better code maintainability
- Add ADR for XBlock rendering with external grader integration
- Add openedx-events fork branch as a dependency in testing.in
- Upgrade edx submission dependency

These changes support the migration from traditional XQueue callback HTTP requests
to a more robust event-based architecture, improving performance and reliability
when processing submission scores. The included ADR documents the architectural
decision and implementation approach for this significant improvement to the
external grading workflow.
2025-12-15 09:01:40 -05:00
Usama Sadiq
e1747f3844 build: add support for Python 3.12 (#37160)
* build: add support for Python 3.12
2025-12-15 12:12:29 +05:00
Emad Rad
6a046ebe50 chore: fixed typos 2025-12-11 11:46:44 -05:00
Irtaza Akram
99c6e901d9 Convert Problem Block Mako Templates to Django Templates (#37570)
* fix: convert mako to django templates for problem block

* fix: pylint issues
2025-12-09 19:29:06 +05:00
Ahtisham Shahid
cda62c22db feat: added unfollow behaviour in discussion notification (#37690) 2025-12-08 12:14:00 +05:00
Taylor Payne
d592784b35 refactor: lift shared test settings up to common module (#37714) 2025-12-04 16:50:12 -07:00