Commit Graph

14301 Commits

Author SHA1 Message Date
KEVYN SUAREZ
a0bb77a6d8 fix: commerce and enrollment error handling and ux (#36612)
Returns HTTP 400 for disallowed enrollments instead of HTTP 500.
Prevents infinite loading spinners on the enrollment page.
Displays clear error messages to users before redirection.
Ensures consistent and meaningful responses from enrollment API endpoints.

* fix: commerce and enrollment apis return 403 when enrollment not allowed

* fix: now both apis send the right message and http code when enrollment fails

* fix: InvalidEnrollmentAtribute as final exception to catch and HTTP 400 returned

* style: the message is displayed as a popup instead of creating a div at the end

* fix:  import not used removed for pylint checks

* style: popup now use utility classes

* refactor: use const instead of let for existing const

* refactor: textContent const structure changed due check failed

* refactor: SetTimeout settled as arrow function

* feat: button incorporated to bring users enough time to read the message

* refactor: ErrorStatuses defined at the top of the file to use it in conditionals

* style: typo fixed

Co-authored-by: Diana Olarte <dcoa@live.com>

* refactor: double validation of redirectUrl eliminated and better styling of the message

Co-authored-by: Diana Olarte <dcoa@live.com>

* refactor: redirectUrl param eliminated in showmessage function, close button redirects to dashboard always

* docs: remove unused redirectUrl param from JSDoc and explain hardcoded URL

* style: endline added

* feat: enrollmentNotAllowed exception added in views and the js

* docs: comment added to especify exception

* style: endline added

* refactor: error statuses velidation changed to one single validation instead of two

* refactor: function added to handle enrollment errors

* feat: enrollmentNotAllowed exception added for API coherence and consistency

* style: empty line added

* style: pylint check line too long disabled

---------

Co-authored-by: Diana Olarte <dcoa@live.com>
2025-07-03 12:36:14 +02:00
Talha Rizwan
7b739ea2f5 feat: rescore entrance exam to drf (#36574)
* feat: rescore entrance exam to drf.
2025-07-01 12:09:54 -04:00
Talha Rizwan
97b91bdfc8 feat: export ora2 submission files to DRF (#36557)
* feat: export ora2 submission files to DRF
2025-06-30 09:32:32 -04:00
Hassan Raza
a60b8f8d2c chore: Track 'notify all learners' option in event data (#36962)
* chore: Track 'notify all learners' option in event data

* fix: unit test
2025-06-30 14:54:11 +05:00
Hassan Raza
8fac3bc060 feat: Add notify all learners option for discussion post (#36922)
* feat: Add notify all learners option for discussion post

* fix: Remove waffle flag from default notification dict
2025-06-27 15:25:22 +05:00
Ali-Salman29
e0fbb96ee7 feat!: remove cs_comments_service support for forum's search APIs
This will force the use of the new v2 forum's APIs for searching.
2025-06-26 13:18:56 -04:00
Andrii
8ca0e17d62 refactor: get rid of env variable for ENABLE_CATALOG_MICROFRONTEND & simplify use_catalog_mfe() 2025-06-25 09:16:06 -04:00
Andrii
94ce8fa147 refactor: remove per-page waffle flag in favour of global one 2025-06-25 09:16:06 -04:00
Andrii
256511e196 refactor: set toggle_target_removal_date 2025-06-25 09:16:06 -04:00
andrii-hantkovskyi
19014463b1 feat: [AXM-2056] add catalog MFE enabled waffle flag (#2639)
* feat: [AXM-2056] add catalog MFE enabled waffle flag

* test: cover waffle with test

* refactor: fix pylint error

* refactor: redesign waffleflag & add new MFE toggle to FEATURES

* test: update tests to new functionality

* refactor: add toggle_use_cases to annotation

* refactor: redesign again to use new approach

* refactor: rename waffle flag variable & update description

---------

Co-authored-by: Andrii <andrii.hantkovskyi@raccoongang.com>
2025-06-25 09:16:06 -04:00
jawad khan
3cb9c00de2 Add organization logo field in mobile apis (#36940)
* feat: Add org_logo field in mobile apis

* fix: fixed quality checks
2025-06-24 19:42:36 +05:00
Maxwell Frank
47fbf58456 feat!: change learner home to use SEND_ACTIVATIION_EMAIl_URL (#36807) 2025-06-20 10:43:30 -04:00
sundasnoreen12
cc86662ef6 fix: fixed quality check 2025-06-19 13:02:06 +05:00
sundasnoreen12
8e1f06aa59 feat: added goal reminder new UI 2025-06-19 12:05:17 +05:00
Tim McCormack
447fd0b6cb feat: Upgrade to codejail 4.0.0 (#36916)
This brings an important security improvement -- codejail won't default to
running in unsafe mode, which can happen if certain configuration errors
are present.

Properly configured installations shouldn't be affected. We just need to
adjust some unit tests to opt into unsafe mode.

Changes:

- Update `edx-codejail` dependency to [version 4.0.0](https://github.com/openedx/codejail/blob/master/CHANGELOG.rst#400---2025-06-13)
- Define a `use_unsafe_codejail` decorator that allows running a unit test (or entire TestCase class) in unsafe mode
- Use that decorator as needed, based on which tests started failing
2025-06-17 09:33:52 -04:00
Talha Rizwan
4cea2ab041 feat: export ora2 summary to DRF (#36555)
* feat: export ora2 summary to DRF.
2025-06-12 12:36:56 -04:00
Arslan Ashraf
d6dbc4075c fix: generate IDV URL only if ACCOUNT_MICROFRONTEND_URL is available (#36898)
The api/courseware/course fails for all the verified enrollments if you
are not using Account MFE, which means that you probably won't set
ACCOUNT_MICROFRONTEND_URL in your settings/configurations.
So this PR adds a check safely try to do rstrip.

Fixes a bug in https://github.com/openedx/edx-platform/pull/36870
2025-06-12 12:13:37 -04:00
Muhammad Soban Javed
bcb3f6b996 Merge pull request #36823 from openedx/iamsobanjaved/fix-csmh-index-migration
[DO NOT MERGE – Needs Staging Verification] fix!: Update the migration to have one Index on student_module_id
2025-06-10 16:00:11 +05:00
Javier Ontiveros
89e3d189ca fix: strip end slash if any when using a subpath (#36870)
While trying to be enrolled on a verified course, the upgrade process
gets to an error screen due to a double slash on the URL that it's added
while doing the redirection to the account microfrontend

Will be backported to Teak.
Part of https://github.com/openedx/wg-build-test-release/issues/468
2025-06-09 15:12:08 +00:00
Talha Rizwan
b6cec3c67e Export ora2 data to drf (#36556)
* feat: export ora2 data to DRF
2025-06-05 10:37:55 -04:00
jawad khan
98e39aa03d fix: Removed unwanted param to course blocks api
* fix: removed unwanted param to course blocks api
2025-06-03 16:43:54 +05:00
Feanil Patel
a798f93ba6 Merge pull request #36570 from Talha-Rizwan/calculate_grades_csv-to-drf
feat: calculate grades csv to DRF
2025-06-02 12:09:28 -04:00
Javier Ontiveros
800b8b69ed feat: add completion tracking switch to toggles sidebar api (#36795)
Currently when the ENABLE_COMPLETION_TRACKING_SWITCH waffle switch is disabled
the frontend doesn't take it into account and still displays completion for
anything that was already completed.

This PR adds the ENABLE_COMPLETION_TRACKING_SWITCH to sidebar toggles api so
the frontend can leverage it.
2025-06-02 11:14:47 -04:00
KEVYN SUAREZ
ba3e635410 fix: use MFE-aware URL instead of legacy when generating block URL (#36526) 2025-05-30 17:33:42 +02:00
Muhammad Soban Javed
97a847d943 fix!: Update the migration to have one Index on student_module_id
This updates the migration to have one index on student_module_id. Previously we had one index on stage and production of edx.org but two indexes on other envs. This change is to make sure we have one index on every env. But this change drops the index and create a new index, so if you have set ENABLE_CSMH_EXTENDED to True and have coursewarehistoryextended_studentmodulehistoryextended in a separate db and you want to avoid rebuilding the index, you can fake this migration.
2025-05-30 19:44:41 +05:00
Ali-Salman29
c82490393d feat!: remove cs_comments_service support for forum's vote APIs
This will force the use of the new v2 forum's APIs for voting/unvoting.
2025-05-27 10:42:05 -04:00
Feanil Patel
0721460edd Merge pull request #36735 from wgu-ram-chandra/issue-35271-unpin-markdown
chore: update markdown dependency to allow newer versions
2025-05-27 09:25:29 -04:00
Daniel Wong
58a1784db2 feat: advertised_start field added to CourseRunSerializer (#36726) 2025-05-23 15:50:51 -04:00
Ali-Salman29
6f522f3992 feat!: remove cs_comments_service support for forum's flag APIs
This will force the use of the new v2 forum's APIs for flaging/unflaging.
2025-05-22 10:24:52 -04:00
ayesha waris
610906218a fix: stoped group TA to see the posts of other cohorts (#36765)
* fix: stoped group TA to see the posts of other cohorts

* test: updated test cases

---------

Co-authored-by: Ayesha Waris <ayesha.waris@192.168.10.31>
2025-05-22 18:55:22 +05:00
Ram Chandra Bhavirisetty
6c29b7934a Merge branch 'master' into issue-35271-unpin-markdown 2025-05-21 09:48:27 -06:00
Muhammad Adeel Tajamul
bfdba3c914 chore: added email_content in content reported notification (#36758)
* chore: added email_content in content reported notification

* fix: fixed test cases
2025-05-20 17:15:02 +05:00
Ram Chandra Bhavirisetty
f39075cf3b Merge branch 'master' into issue-35271-unpin-markdown 2025-05-17 00:27:53 -06:00
Ram Chandra Bhavirisetty
0b1fc08012 chore: update markdown dependency to allow newer versions 2025-05-17 05:42:01 +00:00
Daniel Wong
a80523b936 fix: refactor index_together to indexes for Django 5.2 support 2025-05-15 08:52:15 -06:00
Usama Sadiq
cf372c20ae fix: refactor index_together to indexes for Django 5.2 support (IV) (#36716)
* fix: refactor index_together to indexes for Django 5.2 support

* fix: fix quality issues
2025-05-15 09:41:55 +05:00
Feanil Patel
88c7cd7bf3 feat!: Remove Legacy Preview Functionality (#36460)
* feat!: Remove all trivial mentions of PREVIEW_LMS_BASE

There are a few more mentions but these are all the ones that don't need
major further followup.

BREAKING CHANGE: The learning MFE now supports preview functionality
natively and it is no longer necessary to use a different domain on the
LMS to render a preview of course content.

See https://github.com/openedx/frontend-app-learning/issues/1455 for
more details.

* feat: Drop the `in_preview_mode` function.

Since we're no longer using a separate domain, that check always
returned false.  Remove it and update any places/tests where it is used.

* feat: Drop courseware_mfe_is_active function.

With the removal of the preview check this function is also a no-op now
so drop calls to it and update the places where it is called to not
change other behavior.

* feat!: Drop redirect to preview from the legacy courseware index.

The CoursewareIndex view is going to be removed eventually but for now
we're focusing on removing the PREVIEW_LMS_BASE setting.  With this
change, if someone tries to load the legacy courseware URL from the
preview domain it will no longer redirect them to the MFE preview.

This is not a problem that will occur for users coming from existing
studio links because those links have already been updated to go
directly to the new urls.

The only way this path could execute is if someone goes directly to the
old Preview URL that they saved off platform somewhere.  eg. If they
bookmarked it for some reason.

BREAKING CHANGE: Saved links (including bookmarks) to the legacy preview
URLs will no longer redirect to the MFE preview URLs.

* test: Drop the set_preview_mode test helper.

This test helper was setting the preview mode for tests by changing the
hostname that was set while tests were running.  This was mostly not
being used to test preview but to run a bunch of legacy courseware tests
while defaulting to the new learning MFE for the courseware.

This commit updates various tests in the `courseware` app to not rely on
the fact that we're in preview to test legacy courseware behavior and
instead directly patches either the `_redirect_to_learning_mfe` function
or uses the `_get_legacy_courseware_url` or both to be able to have the
tests continue to test the legacy coursewary.

This will hopefully make the tests more accuarte even though hopefully
we'll just be removing many of them soon as a part of the legacy
courseware cleanup.

We're just doing the preview removal separately to reduce the number of
things that are changing at once.

* test: Drop the `_get_urls_function`

With the other recent cleanup, this function is no longer being
referenced by anything so we can just drop it.

* test: Test student access to unpublihsed content.

Ensure that students can't get access to unpublished content.
2025-05-14 08:59:11 -04:00
Usama Sadiq
db49b2d0a3 fix: refactor index_together to indexes for Django 5.2 support (#36708) 2025-05-14 09:16:23 +05:00
Usama Sadiq
af5faf4965 fix: refactor index_together to indexes for Django 5.2 support (#36702) 2025-05-13 11:06:34 +05:00
Justin Hynes
f509bceac2 fix: setup context for emitting event to segment if desired (#36692)
If we wish this event to be sent to Segment through the event-tracking lib, we must ensure that the context includes at least the `user_id` field in the context dict.
2025-05-09 10:54:37 -04:00
Eemaan Amir
841efcc9fb feat: update user segment attribute is_disabled when user is disabled/enabled (#36681) 2025-05-09 19:35:16 +05:00
Taimoor Ahmed
1bed70b73e feat!: remove cs_comments_service support for forums pin API
This will force the use of the new v2 forums API for pinning/unpinning.
2025-05-07 10:41:37 -04:00
Justin Hynes
46c9b3a193 fix: add error handling for potential issues calculating course progress (#36660)
* fix: add error handling for potential issues calculating course progress

Realized there is potential in a few places for exceptions to be thrown. I'm adding some more error handling in the course progress task and function to handle potential issues.
2025-05-05 14:00:12 -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
47a920d5b9 feat: added a policy to prevent sending ace messages to disabled users (#36584) 2025-04-29 11:29:33 +05:00
Talha
27f13baccc refactor: fix code quality issue 2025-04-29 10:30:46 +05:00
Talha
dc61c87a2d feat: calculate grades csv to DRF 2025-04-28 13:56:01 +05:00
Awais Qureshi
1b15ae0cd9 feat!: upgrading api to DRF. 2025-04-24 13:00:04 +05:00
Awais Qureshi
04aa93c213 feat!: upgrading api to DRF. 2025-04-24 11:29:34 +05:00
Edward Zarecor
49a69f5042 feat: allow return dates for not started courses for mobile, PR #36297
feat: allow return dates for not started courses for mobile
2025-04-22 13:28:38 -04:00