Commit Graph

25503 Commits

Author SHA1 Message Date
Mubbshar Anwar
052b930ef5 fix: fix script tag quot escaped (#37296) 2025-08-28 19:01:19 +05:00
Mubbshar Anwar
d2eba789ff fix: fix test_html_tags_removal (#37209) 2025-08-28 11:51:22 +05:00
ayesha waris
58d0839aff fix: added thread id in comment/response reported event (#37276)
Co-authored-by: Ayesha Waris <ayesha.waris@A006-01000.local>
2025-08-27 15:24:22 +05:00
Awais Qureshi
053abe33de fix: django52 tightened consistency around delete ordering and signal/delete() method invocation. (#37250) 2025-08-27 13:37:20 +05:00
kshitij.sobti
ba6026f999 feat: Allow adding custom LTI parameters via LTI_CUSTOM_PARAMS django setting
Adds a new Django setting called `LTI_CUSTOM_PARAMS` that allows extending the
list of optional LTI parameters processed by the platform. These parameters can
be used by plugins for deeper platform integration.
2025-08-26 01:53:07 +05:30
Paulo Viadanna
d132efa08d feat: add a POST endpoint for listing courses (#35586)
* feat: add a POST endpoint for listing courses
2025-08-21 23:26:18 +05:30
kshitij.sobti
0fbfc1cf54 feat: Use dropdown for units when more then 15
When dealing with subsections that have a lot of units, show a dropdown for
unit selection to simplify navigation.
2025-08-21 17:42:02 +05:30
Agrendalath
bbc0cc2baa fix: show correct icons in the sidebar for units with custom XBlocks
Currently, the sidebar relies only on the XBlock's `category` class attribute
(called `type` in the transformers). This behavior is inconsistent with the
legacy subsection navigation, which relies on the `XModuleMixin.get_icon_class`
method. This commit adds the `icon_class` to the fields collected by the
transformers and uses it to determine whether the "problem" or "video" icon
should be displayed for a unit in the sidebar.
2025-08-21 00:29:01 +05:30
Agrendalath
64190d1e13 fix: sidebar completion for completable XBlocks with children
It is possible to create a completable XBlock with children.
An example is the Library Content Block with the
`MARK_LIBRARY_CONTENT_BLOCK_COMPLETE_ON_VIEW` feature toggle.
The sidebar should use the same mechanism as the `BlockCompletionTransformer`
and the `edx-completion` library. It means that we should treat:
1. An aggregator XBlock as completed only when all its children are completed.
2. A completable XBlock as completed when it is directly marked as completed
   (without checking the completion of its children).
2025-08-20 17:52:35 +05:30
Ehtesham Alam
cb80118ebf fix: remove CSRF_TRUSTED_ORIGINS_WITH_SCHEME variable (#37195) 2025-08-20 11:12:44 +05:00
Muhammad Adeel Tajamul
0c47ddf354 feat: removed spaces check for spam urls (#37238) 2025-08-20 05:54:06 +05:00
Pandi Ganesh
bc76a865f4 fix: update role assignment conditions (#37188) 2025-08-18 16:12:02 +05:00
Serhiii Nanai
55a3757107 feat: Extend MFE Config API for frontend-app-catalog [FC-0086] (#37130)
* feat: return response merged from base config, mfe config and mfe overrides

* test: adjust existing tests

* test: add new test methods

* fix: add blank line

* fix: remove homepage_overlay_html

* fix: typo in a comment

* test: change dict merge order to follow the correct hierarchy

* fix: change response keys to uppercase

* fix: add enable_course_discovery

* fix: change COURSES_ARE_BROWSABLE to NON_BROWSABLE_COURSES

* fix: remove show_homepage_promo_video

* fix: use None as default for promo video youtube id

* docs: expand docstrings, rename method/variables

* fix: remove is_cosmetic_price_enabled field
2025-08-15 09:15:40 -04:00
Mubbshar Anwar
a41a413983 chore: Remove assertQuerysetEqual (#37182)
replace assertQuerysetEqual with assertEqual dut to deprecation in Django 5.2
2025-08-12 11:14:16 +05:00
Taylor Payne
325a0c116a fix: update mock config to include scheme for csrf domains (#37120)
Since the scheme must be included for the CSRF_TRUSTED_ORIGINS setting since
Django 4.0, this changes the values in the mock.yml configuration files to use
the scheme for the values under CSRF_TRUSTED_ORIGINS. We match the values
defined under CSRF_TRUSTED_ORIGINS_WITH_SCHEME key.

lms/envs/production.py pulls from CSRF_TRUSTED_ORIGINS_WITH_SCHEME in the YAML
config to set the CSRF_TRUSTED_ORIGINS setting , but cms/envs/production.py
pulls from CSRF_TRUSTED_ORIGINS in the YAML. So, this change fixes the CMS when
run with mock.yml.
2025-08-08 11:31:04 -04:00
Muhammad Farhan Khan
4a9fc77ecb test: Allow for Extracted Word Cloud Block | Fix Test Cases (#35983)
Run tests for both the built-in and extracted WordCloud block.
The tests are mostly compatible with both versions of the block,
except for a few places where the XBlock framework and the
built-in XModule system differ which we've had to handle using
conditionals.

This moves us closer to enabling the extracted WordCloud block
by default and eventually removing the built-in block.

Part of: https://github.com/openedx/edx-platform/issues/34840
2025-08-08 11:22:26 -04:00
Feanil Patel
f491b97b22 fix: Update naming for courseware section/subsection.
These used to be named chapter and section before but we want to update
the courseware index view to use the new names if it's gonna stick
around.
2025-08-07 15:35:04 -04:00
Feanil Patel
d24f45f3ee feat: Drop unused render_accordion function and template.
This was referenced by the legacy courseware page so we don't need it
anymore.
2025-08-07 15:35:04 -04:00
Feanil Patel
562df7386c feat: Make CoursewareIndex just a redirect.
We don't need to load the old UI and so don't need all the logic related
to it, just the logic that is expected to occur around other backend
functionality like masquerading.
2025-08-07 15:35:04 -04:00
Feanil Patel
2fc068220d style: Fix various linting issues. 2025-08-07 15:35:04 -04:00
Feanil Patel
3520b6b8e1 test: Drop testing for legacy courseware UI
This has all been replaced by the learning MFE and will be removed from
the platform in subsequent commits.

For masquerade testing, the page no longer renders content and so
shouldn't be a part of this test.  The render_xblock url is what is used
by the MFE so we're still testing that the course-wide content is being
loaded correctly for content served by the learning MFE.
2025-08-07 15:35:04 -04:00
Feanil Patel
0121a0ad9e test: Drop a legacy test.
This test tests whether or not we can load the legacy courseware page if
we have not met prerequisites.  We don't need this anymore because we
are in the process of removing those pages and the default is now to
load the MFE instead.

The underlying checks still happens as a part of the
`_has_access_course` function which calls
`lms/djangoapps/courseware/access.py:_can_view_courseware_with_prerequisites`
2025-08-07 15:35:04 -04:00
Feanil Patel
3334325ff9 fix: Drop _get_legacy_courseware_url and related usage.
We were running some tests using this function but it is not actually
used in the running application anymore so drop those tests and remove
the function in preparation for removing the legacy courseware itself.
2025-08-07 15:35:04 -04:00
Daniel Wong
7479beb29d fix: adjust storage class path to use SOFTWARE_SECURE settings 2025-08-06 13:25:10 -06:00
Daniel Wong
82f5955ae2 fix: handle errors in nested legacy settings in resolve_storage_backend 2025-08-06 13:25:10 -06:00
Daniel Wong
f114399e12 fix: update resolve_storage_backend function and fix tests 2025-08-06 13:25:10 -06:00
Daniel Wong
2b9fb55231 feat: deprecate get_storage_class 2025-08-06 13:25:10 -06:00
Hunzlah Malik
13944afc91 feat: reset_student_attempts_for_entrance_exam to DRF (#37069)
* feat: reset_student_attempts_for_entrance_exam to DRF

* fix: update imports sequence

---------

Co-authored-by: Awais Qureshi <awais.qureshi@arbisoft.com>
2025-08-06 16:29:54 +05:00
kshitij.sobti
96ace718f4 feat: Send an LTI launch event for LTI Launches 2025-08-06 16:25:13 +05:30
Taylor Payne
16d96565e3 refactor: move production defaults to common modules (#37045)
In the effort to simplify settings in edx-platform, as discussed in ADR 22 -
Settings Simplification, this PR brings some of the production defaults defined
in `lms/envs/production.py` and `cms/envs/production.py` up to
`openedx/envs/common.py` or `lms/envs/common.py` and `cms/envs/common.py` as
appropriate.

Bringing these defaults up from the `production.py` settings modules caused
changes in the rendered settings of the `test.py` modules, and so I have
settings to the `test.py` modules to bring the rendered settings back in line
with what is has been. I have not deeply looked at which settings are needed
for tests to pass or not, but just the differences between the rendered
settings between `master` and this branch.

ADR 22: https://github.com/openedx/edx-platform/blob/master/docs/decisions/0022-settings-simplification.rst
Fixes https://github.com/openedx/edx-platform/issues/36892.
2025-08-04 17:06:16 -04:00
Muhammad Adeel Tajamul
d59f5b39fe fix: fixed missing course in bulk delete (#37103) 2025-08-04 11:25:50 +05:00
Ahtisham Shahid
c2a86534e6 fix: updated captcha api to use enterprise assessment (#37079)
* fix: updated captcha api to use enterprise assessment
2025-08-03 21:27:12 +00:00
Hassan Raza
4793f883fc chore: Remove notification app waffle flags (#37086) 2025-08-01 14:59:40 +05:00
Muhammad Adeel Tajamul
b658470f8b feat: added configurable ratelimit feature in discussions (#37094) 2025-07-31 17:35:10 +05:00
Nathan Sprenkle
02c45c5325 refactor: load learning mfe ports from env (#37082) 2025-07-30 11:59:26 -04:00
Pandi Ganesh
0bf88d225f feat: add course url to course team management GET API response (#37087)
* feat: add course_url to course team management GET API response

* fix: update docstring in api views

* feat: Implement CMS course URL generation with HTTPS scheme detection
2025-07-30 16:34:28 +05:30
Muhammad Arslan
d8ea16f6ec fix: refresh-saml-metadata beat task path fixed (#37080)
This PR fixes the task path in the Celery beat settings for the
refresh-saml-metadata scheduled task.

We had previously added the fetch_saml_metadata task to the Celery beat
schedule to run periodically (default: every 24 hours). However, due to a typo
in the task path, Celery workers were throwing errors. This fix corrects the
task path so the schedule can run as intended.
2025-07-29 15:46:59 -04:00
Ali-Salman29
d29171c046 feat!: remove cs_comments_service support for forum's subscription APIs
- This will force the use of the new v2 forum's APIs for subscriptions.
2025-07-29 10:44:37 -04:00
Hunzlah Malik
cdf5083544 feat: upgrading students_update_enrollment api to DRF (#37074)
* feat: upgrading students_update_enrollment api to DRF
2025-07-29 10:36:52 -04:00
Eemaan Amir
4e1ba65183 fix: added captcha exception for limited staff (#37077) 2025-07-29 15:42:09 +05:00
Pandi Ganesh
b5bcb37c5a feat: API to manage course team roles across multiple courses (#36990)
* feat: API to fetch course-roles mapping by user and org

* fix: added docstring and resolve pylint issues

* feat: support bulk course team role updates via PUT API

* fix: refactor APIs based on user permissions

* chore: improve Swagger schema for course_team endpoints

* fix: refactor GET and PUT api code

* fix: apply pylint rules and optimize code

* fix: resolve test cases for supoort apis

* fix: change url path
2025-07-29 11:33:09 +05:30
Hunzlah Malik
96e5ce073f feat: override_problem_score to drf (#37006)
* feat: override_problem_score to drf
2025-07-28 11:03:04 -04:00
Eemaan Amir
24181468ec feat: showing captcha only for learners and not other roles (#37061)
* feat: showing captcha only for learners and not other roles

* test: added test cases

* fix: fixed pylint errors

* fix: fixed a bug with comment creation

* refactor: refactored code

* fix: fixed lint errors

* fix: fixed bug with utils

* test: added test case
2025-07-28 17:07:26 +05:00
Muhammad Adeel Tajamul
7af4b644d0 temp: added logs to debug issue in bulk delete count (#37073) 2025-07-28 14:33:48 +05:00
Muhammad Adeel Tajamul
4d76c5ded0 refactor: updated bulk delete api task (#37068) 2025-07-25 11:07:39 +05:00
Muhammad Sameer Amin
9f454f6010 Merge pull request #37054 from openedx/sameeramin/ENT-10688 2025-07-25 04:54:57 +05:00
Ahtisham Shahid
47d253a1fe chore: added logs to debug captcha issues (#37066) 2025-07-24 19:45:40 +00:00
Muhammad Sameer Amin
c660e065ea Merge branch 'master' into sameeramin/ENT-10688 2025-07-24 20:04:18 +05:00
andrey-canon
a7a7a5b6f0 fix: implement __repr__ method in order to avoid maximum recursion error 2025-07-23 13:49:29 -04:00
Muhammad Adeel Tajamul
082819cca2 chore: added tracker event for bulk delete posts api (#37060) 2025-07-23 12:21:43 +05:00