Commit Graph

14362 Commits

Author SHA1 Message Date
kshitij.sobti
0bed7d7127 feat: Add support for using LTI data to populate user profile
Currently the LTI provider implementation auto-creates a random user when
logging in, however, the LTI launch can include relevant user details such as
their email, full name and even a username. This change makes the LTI code
use the provided details if the "Use lti pii" setting is set in the Django
admin.
2025-09-01 09:36:48 +05:30
Shafqat Farhan
728a325781 feat: Added pluggable override on financial_assistance (#37303) 2025-08-29 11:56:33 +05:00
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
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
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
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
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
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
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
Ahtisham Shahid
47d253a1fe chore: added logs to debug captcha issues (#37066) 2025-07-24 19:45:40 +00: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
Muhammad Adeel Tajamul
01beca4ebb chore: added waffle for allowing only verified users to create post (#37051) 2025-07-22 14:59:54 +05:00
Muhammad Adeel Tajamul
ef6dbd9e03 chore: added email verified in course view api (#37046) 2025-07-21 16:32:28 +05:00
Muhammad Adeel Tajamul
989ecfe5a0 feat: added endpoint for priviledged roles to delete threads of a user (#37030)
* feat: added endpoint for priviledged roles to delete threads of a user

* chore: moved forum calls to django comment common app

* fix: fixed nits
2025-07-21 09:43:55 +05:00
Bryann Valderrama
a807d0e280 chore: add missing inline code annotations in events (#36473) 2025-07-18 17:55:54 +02:00
Bryann Valderrama
2a1d1debad chore: add missing inline code annotations in filters (#36474) 2025-07-18 17:53:51 +02:00
Muhammad Faraz Maqsood
5879a52b72 feat: add data report for enrolled & inactive user
Add new data report for learners who are enrolled in a course and have not activated their account
2025-07-18 12:09:36 +05:00