Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
74 commits
Select commit Hold shift + click to select a range
0e64cec
fix: Update workflows to work on the release-ulmo branch. (#1)
dianakhuang Oct 9, 2025
5523072
feat: Upgrade Python dependency edx-enterprise
iloveagent57 Oct 10, 2025
5f94efc
chore: bump edxval to 3.1.0 (#37490)
nsprenkle Oct 16, 2025
46cb4e3
Merge pull request #4 from edx/nsprenkle/val_3.1.0
nsprenkle Oct 16, 2025
3736ac4
feat: future proof artifact uploads (#37464)
rayzhou-bit Oct 14, 2025
cc6208d
Merge pull request #6 from edx/rzhou/unit-test-fix
rayzhou-bit Oct 17, 2025
3b9f120
fix: pasting a component with image isn't working
Oct 23, 2025
df7fccf
fix: copy paste component from one course to another
Oct 23, 2025
ec3639e
Merge pull request #8 from edx/fix/copy_paste_component_with_image_in…
Faraz32123 Oct 23, 2025
0c25295
Merge pull request #10 from edx/fix/copy_paste_component_with_image_f…
papphelix Oct 23, 2025
7123793
feat: allows a reversion of the retirement partner report reset togg…
deborahgu Oct 24, 2025
c576585
Merge pull request #12 from edx/dkaplan1/APER-4177_prod-retirement-pa…
deborahgu Oct 27, 2025
65979bc
feat: display the reset toggles for a report (#37556)
deborahgu Oct 27, 2025
9a1fddb
Merge pull request #14 from edx/dkaplan1/APER-4177_prod-retirement-pa…
deborahgu Oct 27, 2025
d618021
fix: Improve SAML configuration checks and update warning messages (#…
ktyagiapphelix2u Oct 29, 2025
43f31d8
Merge pull request #37510 from openedx/feanil/fix_branding_redirect_l…
ktyagiapphelix2u Oct 29, 2025
45b72a0
feat: add a default audio codec for the HLS video player (#37525)
nsprenkle Oct 29, 2025
6a43bcc
fix: incorrect LTI exam due dates for self-paced courses
michaelroytman Oct 30, 2025
68322bc
feat: add a default audio codec for the HLS video player (#37525)
nsprenkle Oct 30, 2025
942437f
Merge pull request #20 from edx/michaelroytman/COSMO2-729-exam-due-da…
michaelroytman Oct 30, 2025
bf4c7f6
fix: move default audio codec setting earlier to init correctly (#21)
nsprenkle Oct 30, 2025
fb38622
fix: video default audio codec fix (attempt 3) (#22)
nsprenkle Oct 30, 2025
9a3e288
fix: accessibility issue on video transcripts
Oct 31, 2025
c523a5d
Merge pull request #23 from edx/fix/accessibility_issue_on_video_tran…
Faraz32123 Oct 31, 2025
031eabb
fix: add text alternative for external link icon in LTI components
naincy128 Nov 1, 2025
ac02b33
Merge pull request #24 from edx/cosmos2-719
naincy128 Nov 4, 2025
c69d893
fix: do not autogenerate username if coming through SSO (#37522)
sameenfatima78 Oct 23, 2025
da54a14
feat: Upgrade Python dependency enterprise-integrated-channels
sameeramin Nov 5, 2025
2eac785
Merge pull request #30 from edx/sameeramin/upgrade-enterprise-integra…
sameeramin Nov 5, 2025
a753e82
Merge pull request #29 from edx/sameen/release-ENT-10906
sameenfatima78 Nov 5, 2025
c2d2341
feat: update new learner display and logic for improved visibility (#13)
naincy128 Nov 5, 2025
90c6650
fix: AI moderation fields in accessible_fields (#26)
jcapphelix Nov 5, 2025
527d1db
chore: Upgrade Django to 4.2.26 (security release) (#31)
timmc-edx Nov 5, 2025
0d79ecb
feat: use new MFE editor for game xblock
Nov 12, 2025
3289e55
feat: look up remote_id by remote_id_field_name (#37228)
sameenfatima78 Nov 13, 2025
0b4a21f
feat: make game xblock in default component
viv-helix Nov 17, 2025
5c7bd3a
fix: team posts now visible by handling standalone context properly (…
naincy128 Nov 18, 2025
e72fc59
fix: point to new models in channel_migrations app
Nov 19, 2025
1b854ba
Merge pull request #41 from edx/sameen/ENT-11127-fix-edx
sameenfatima78 Nov 20, 2025
6b49594
feat: add games xblock icon
Nov 21, 2025
7246583
feat: add waffle flag to toggle on/off for games xblock
Nov 21, 2025
cf34d5c
fix: tests by adding try-catch
Nov 21, 2025
136d080
Merge pull request #32 from edx/feat/use_MFE_editor_for_games_xblock
Faraz32123 Nov 25, 2025
cb0c6c1
feat: Upgrade Python dependency edx-enterprise
sameeramin Nov 25, 2025
b78617e
feat: Upgrade Python dependency enterprise-integrated-channels
sameeramin Nov 25, 2025
7aee26e
Merge pull request #48 from edx/sameeramin/upgrade-edx-enterprise-1b8…
sameeramin Nov 25, 2025
99ad592
Merge pull request #49 from edx/sameeramin/upgrade-enterprise-integra…
sameeramin Nov 25, 2025
5906837
Merge pull request #33 from edx/sameen/edx-ENT-10804
sameenfatima78 Nov 26, 2025
cdbfe0a
feat: Upgrade Python dependency edx-enterprise
sameeramin Nov 28, 2025
f95c01c
feat: Upgrade Python dependency enterprise-integrated-channels
sameeramin Nov 28, 2025
47992f0
Merge pull request #53 from edx/sameeramin/upgrade-enterprise-integra…
sameeramin Nov 28, 2025
5f0dbc7
Merge pull request #52 from edx/sameeramin/upgrade-edx-enterprise-590…
sameeramin Nov 28, 2025
201009d
fix: reorder showanswer checks to restore expected behavior in previe…
djoseph-apphelix Dec 1, 2025
47ab960
feat: audit preview of verified content in course outline (#42)
nsprenkle Dec 1, 2025
d97e943
fix: restrict rendering PDFs from other origins (#51)
Faraz32123 Dec 4, 2025
0a400fb
fix: upgrade hls.js to version 1.6.15 and update related imports in v…
papphelix Dec 8, 2025
7033092
fix: update geolite workflow (#40)
ktyagiapphelix2u Dec 9, 2025
f348776
Revert "fix: upgrade hls.js to version 1.6.15 and update related impo…
papphelix Dec 11, 2025
34bd659
Revert "Revert "fix: upgrade hls.js to version 1.6.15 and update rela…
papphelix Dec 11, 2025
b25d1bc
fix: improving geolite workflow (#63)
ktyagiapphelix2u Dec 13, 2025
f987e8e
fix: CourseLimitedStaffRole should not be able to access studio. (#65)
robrap Dec 17, 2025
4094b3a
fix: added logs and record exception for datadog monitoring (#68)
Akanshu-2u Dec 19, 2025
30f0dab
feat: extend beta component types and improve editor behavior (#67)
viv-helix Dec 19, 2025
1e8714f
feat: soft delete (#37)
jcapphelix Jan 6, 2026
5af58a5
feat: shift progress calculation to backend (openedx#37399) (#69)
nsprenkle Jan 6, 2026
e434680
Revert "feat: soft delete (#37)" (#78)
jcapphelix Jan 7, 2026
a013346
fix: improve logging for user retirement errors with exception detail…
Akanshu-2u Jan 7, 2026
597a2a0
fix: improve beta label contrast in gamesxblock (#80)
djoseph-apphelix Jan 8, 2026
f2e024c
feat: Upgrade Python dependency edx-enterprise
jajjibhai008 Jan 9, 2026
c71aca8
feat: add new API to retrieve all components in a unit (#70)
viv-helix Jan 9, 2026
40783b7
Merge pull request #82 from edx/jajjibhai008/upgrade-edx-enterprise-5…
jajjibhai008 Jan 9, 2026
afd869c
feat: add toggle for unifying site & translation language (#81)
nsprenkle Jan 9, 2026
1c1e08f
fix: handle CourseOverview.DoesNotExist exception in optout creation …
Akanshu-2u Jan 12, 2026
daea192
chore: updated version for enterprise-integrated-channels
irfanuddinahmad Jan 13, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 0 additions & 19 deletions .github/workflows/add-depr-ticket-to-depr-board.yml

This file was deleted.

20 changes: 0 additions & 20 deletions .github/workflows/add-remove-label-on-comment.yml

This file was deleted.

2 changes: 1 addition & 1 deletion .github/workflows/js-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ on:
pull_request:
push:
branches:
- master
- release-ulmo

jobs:
run_tests:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/lint-imports.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ on:
pull_request:
push:
branches:
- master
- release-ulmo

jobs:
lint-imports:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/lockfileversion-check.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ name: Lockfile Version check
on:
push:
branches:
- master
- release-ulmo
pull_request:

jobs:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/migrations-check.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ on:
pull_request:
push:
branches:
- master
- release-ulmo

jobs:
check_migrations:
Expand Down
3 changes: 1 addition & 2 deletions .github/workflows/quality-checks.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,7 @@ on:
pull_request:
push:
branches:
- master
- open-release/lilac.master
- release-ulmo

jobs:
run_tests:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/semgrep.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ on:
pull_request:
push:
branches:
- master
- release-ulmo

jobs:
run_semgrep:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/shellcheck.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ on:
pull_request:
push:
branches:
- master
- release-ulmo

permissions:
contents: read
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/static-assets-check.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ on:
pull_request:
push:
branches:
- master
- release-ulmo

jobs:
static_assets_check:
Expand Down
12 changes: 6 additions & 6 deletions .github/workflows/unit-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ on:
pull_request:
push:
branches:
- master
- release-ulmo

concurrency:
# We only need to be running tests for the latest commit on each PR
Expand Down Expand Up @@ -124,26 +124,26 @@ jobs:
shell: bash
run: |
cd test_root/log
mv pytest_warnings.json pytest_warnings_${{ matrix.shard_name }}.json
mv pytest_warnings.json pytest_warnings_${{ matrix.shard_name }}_${{ matrix.python-version }}_${{ matrix.django-version }}_${{ matrix.mongo-version }}_${{ matrix.os-version }}.json

- name: save pytest warnings json file
if: success()
uses: actions/upload-artifact@v4
with:
name: pytest-warnings-json-${{ matrix.shard_name }}
name: pytest-warnings-json-${{ matrix.shard_name }}-${{ matrix.python-version }}-${{ matrix.django-version }}-${{ matrix.mongo-version }}-${{ matrix.os-version }}
path: |
test_root/log/pytest_warnings*.json
overwrite: true

- name: Renaming coverage data file
run: |
mv reports/.coverage reports/${{ matrix.shard_name }}.coverage
mv reports/.coverage reports/${{ matrix.shard_name }}_${{ matrix.python-version }}_${{ matrix.django-version }}_${{ matrix.mongo-version }}_${{ matrix.os-version }}.coverage

- name: Upload coverage
uses: actions/upload-artifact@v4
with:
name: coverage-${{ matrix.shard_name }}
path: reports/${{ matrix.shard_name }}.coverage
name: coverage-${{ matrix.shard_name }}-${{ matrix.python-version }}-${{ matrix.django-version }}-${{ matrix.mongo-version }}-${{ matrix.os-version }}
path: reports/${{ matrix.shard_name }}_${{ matrix.python-version }}_${{ matrix.django-version }}_${{ matrix.mongo-version }}_${{ matrix.os-version }}.coverage
overwrite: true

collect-and-verify:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ on:
pull_request:
push:
branches:
- master
- release-ulmo

jobs:
test:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/units-test-scripts-user-retirement.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ on:
pull_request:
push:
branches:
- master
- release-ulmo

jobs:
test:
Expand Down
10 changes: 5 additions & 5 deletions .github/workflows/update-geolite-database.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ on:
branch:
description: "Target branch against which to create PR"
required: false
default: "master"
default: "release-ulmo"

env:
MAXMIND_URL: "https://download.maxmind.com/app/geoip_download?edition_id=GeoLite2-Country&license_key=${{ secrets.MAXMIND_LICENSE_KEY }}&suffix=tar.gz"
Expand Down Expand Up @@ -69,7 +69,7 @@ jobs:
- name: Create a branch, commit the code and make a PR
id: create-pr
run: |
BRANCH="${{ github.actor }}/geoip2-bot-update-country-database-$(echo "${{ github.sha }}" | cut -c 1-7)"
BRANCH="${{ github.actor }}/geoip2-bot-update-country-database-${{ github.run_id }}"
git checkout -b $BRANCH
git add .
git status
Expand All @@ -79,13 +79,13 @@ jobs:
--title "Update GeoLite Database" \
--body "PR generated by workflow `${{ github.workflow }}` on behalf of @${{ github.actor }}." \
--head $BRANCH \
--base 'master' \
--reviewer 'feanil' \
--base 'release-ulmo' \
--reviewer 'edx/orbi-bom' \
| grep -o 'https://github.com/.*/pull/[0-9]*')
echo "PR Created: ${PR_URL}"
echo "pull-request-url=$PR_URL" >> $GITHUB_OUTPUT
env:
GH_TOKEN: ${{ github.token }}
GH_TOKEN: ${{ secrets.GH_PAT_WITH_ORG }}

- name: Job summary
run: |
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/upgrade-one-python-dependency.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ on:
branch:
description: "Target branch to create requirements PR against"
required: true
default: "master"
default: "release-ulmo"
type: string
package:
description: "Name of package to upgrade"
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/upgrade-python-requirements.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ on:
branch:
description: "Target branch to create requirements PR against"
required: true
default: "master"
default: "release-ulmo"
jobs:
call-upgrade-python-requirements-workflow:
# Don't run the weekly upgrade job on forks -- it will send a weekly failure email.
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/verify-dunder-init.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ name: Verify Dunder __init__.py Files
on:
pull_request:
branches:
- master
- release-ulmo

jobs:
verify_dunder_init:
Expand Down
10 changes: 5 additions & 5 deletions cms/djangoapps/contentstore/exams.py
Original file line number Diff line number Diff line change
Expand Up @@ -74,13 +74,13 @@ def register_exams(course_key):
# Exams in courses not using an LTI based proctoring provider should use the original definition of due_date
# from contentstore/proctoring.py. These exams are powered by the edx-proctoring plugin and not the edx-exams
# microservice.
is_instructor_paced = not course.self_paced
if course.proctoring_provider == 'lti_external':
due_date = (
timed_exam.due.isoformat() if timed_exam.due
else (course.end.isoformat() if course.end else None)
)
due_date_source = timed_exam.due if is_instructor_paced else course.end
else:
due_date = timed_exam.due if not course.self_paced else None
due_date_source = timed_exam.due if is_instructor_paced else None

due_date = due_date_source.isoformat() if due_date_source else None

exams_list.append({
'course_id': str(course_key),
Expand Down
6 changes: 3 additions & 3 deletions cms/djangoapps/contentstore/helpers.py
Original file line number Diff line number Diff line change
Expand Up @@ -745,10 +745,10 @@ def _import_file_into_course(
if thumbnail_content is not None:
content.thumbnail_location = thumbnail_location
contentstore().save(content)
return True, {clipboard_file_path: f"static/{import_path}"}
return True, {clipboard_file_path: filename if not import_path else f"static/{import_path}"}
elif current_file.content_digest == file_data_obj.md5_hash:
# The file already exists and matches exactly, so no action is needed except substitutions
return None, {clipboard_file_path: f"static/{import_path}"}
# The file already exists and matches exactly, so no action is needed
return None, {}
else:
# There is a conflict with some other file that has the same name.
return False, {}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ class CourseWaffleFlagsSerializer(serializers.Serializer):
"""
Serializer for course waffle flags
"""

use_new_home_page = serializers.SerializerMethodField()
use_new_custom_pages = serializers.SerializerMethodField()
use_new_schedule_details_page = serializers.SerializerMethodField()
Expand All @@ -31,6 +32,7 @@ class CourseWaffleFlagsSerializer(serializers.Serializer):
use_react_markdown_editor = serializers.SerializerMethodField()
use_video_gallery_flow = serializers.SerializerMethodField()
enable_course_optimizer_check_prev_run_links = serializers.SerializerMethodField()
enable_unit_expanded_view = serializers.SerializerMethodField()

def get_course_key(self):
"""
Expand Down Expand Up @@ -175,3 +177,10 @@ def get_enable_course_optimizer_check_prev_run_links(self, obj):
"""
course_key = self.get_course_key()
return toggles.enable_course_optimizer_check_prev_run_links(course_key)

def get_enable_unit_expanded_view(self, obj):
"""
Method to get the enable_unit_expanded_view waffle flag
"""
course_key = self.get_course_key()
return toggles.enable_unit_expanded_view(course_key)
6 changes: 6 additions & 0 deletions cms/djangoapps/contentstore/rest_api/v1/urls.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
HomePageView,
ProctoredExamSettingsView,
ProctoringErrorsView,
UnitComponentsView,
VideoDownloadView,
VideoUsageView,
vertical_container_children_redirect_view,
Expand Down Expand Up @@ -144,6 +145,11 @@
CourseWaffleFlagsView.as_view(),
name="course_waffle_flags"
),
re_path(
fr'^unit_handler/{settings.USAGE_KEY_PATTERN}$',
UnitComponentsView.as_view(),
name="unit_components"
),

# Authoring API
# Do not use under v1 yet (Nov. 23). The Authoring API is still experimental and the v0 versions should be used
Expand Down
7 changes: 2 additions & 5 deletions cms/djangoapps/contentstore/rest_api/v1/views/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,6 @@
from .proctoring import ProctoredExamSettingsView, ProctoringErrorsView
from .settings import CourseSettingsView
from .textbooks import CourseTextbooksView
from .unit_handler import UnitComponentsView
from .vertical_block import ContainerHandlerView, vertical_container_children_redirect_view
from .videos import (
CourseVideosView,
VideoDownloadView,
VideoUsageView,
)
from .videos import CourseVideosView, VideoDownloadView, VideoUsageView
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ class CourseWaffleFlagsViewTest(CourseTestCase):
"use_react_markdown_editor": False,
"use_video_gallery_flow": False,
"enable_course_optimizer_check_prev_run_links": False,
"enable_unit_expanded_view": False,
}

def setUp(self):
Expand Down
Loading