62 Commits

Author SHA1 Message Date
Muhammad Anas
1599b80a74 fix: respect masqueraded learner permissions when computing subsection show_grades in Progress Tab API (#38025)
This PR fixes grade-visibility behavior in the Progress Tab API when staff
users are masquerading as learners.

Previously, subsection show_grades was computed using the real requester’s
staff access, which could expose grades that the masqueraded learner should not
see.

Now, show_grades respects the masqueraded user’s permissions so the API
response matches the learner view.

Co-authored-by: Peter Pinch <pdpinch@mit.edu>
2026-03-05 12:00:07 -05:00
asajjad2
616c966de7 fix: calculate last_grade_publish_date for all unreleased subsections
fix: don't update business logic

fix: comparison condition

fix: linting errors

fix: linting error

test: progress api test

test: add not-null scenario

fix: linting errors

test: fix assertion

refactor: tests
2026-02-24 18:52:14 +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
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
Serhiii Nanai
0c3d709d63 feat: add assignment color codes to Progress API (#37438)
* feat: change list of color codes

* fix: add missing color

* style: rename attribute for assignment color list

* docs: add explanation for current implementation
2025-12-02 13:52:36 -05:00
Muhammad Anas
4afff6ef5c feat: shift progress calculation to backend, add never_but_include_grade (#37399)
This commit migrates the data calculation logic for the GradeSummary
table, which was previously in the frontend-app-learning.

This commit also introduces a new visibility option for assignment
scores: “Never show individual assessment results, but show overall
assessment results after the due date.”

With this option, learners cannot see question-level correctness or
scores at any time. However, once the due date has passed, they can
view their overall score in the total grades section on the Progress
page.

These two changes are coupled with each other because it compromises
the integrity of this data to do the score hiding logic on the front
end.

The corresponding frontend PR is: openedx/frontend-app-learning#1797
2025-10-22 10:15:42 -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
Rafay Ghafoor
b14396bbfb feat: Adds disable_progress_graph attribute to the returned course_metadata response
Currently, https://github.com/openedx/frontend-app-course-authoring/issues/517 faces an issue when the
progress graph toggle is enabled/disabled but the settings are not respected, the disable_progress_graph
attribute will allow the frontend-app-learning repo to use this attribute to respect the settings authored
from frontend-app-course-authoring and ultimately fix https://github.com/openedx/frontend-app-course-authoring/issues/517.
2023-10-11 20:39:16 +05:30
Jansen Kantor
7b91f8579f fix: return a 403 instead of a redirect from course_home_api api methods (#32210)
* fix: return 403 on course access error rather than redirect
2023-05-24 16:09:34 +00:00
Pooja Kulkarni
a0d23b20f5 refactor: rename descriptor -> block within lms/djangoapps/course_api
Co-authored-by: Agrendalath <piotr@surowiec.it>
2023-04-26 17:10:53 +02:00
Arunmozhi
d417a7561f refactor: rename ItemFactory to BlockFactory 2023-01-23 14:47:47 +01:00
Sagirov Evgeniy
42adcaaf4d FC-0001: Remove Persistent Course Grades Flags (#30978)
* feat: revert Fix certificate generation without persistent grades

* feat: Remove Persistent Course Grades Flags

* test: update tests
2022-09-14 14:00:01 -04:00
Mubbshar Anwar
2980265764 Revert "feat: Pass segment properties (#30742)" (#30918)
This reverts commit b76d5c2a66.
2022-08-30 12:11:25 +05:00
Mubbshar Anwar
b76d5c2a66 feat: Pass segment properties (#30742)
- For enrollment email pass extra segment event properties.
VAN-999
2022-08-29 15:36:24 +05:00
connorhaugh
45c2858d61 Revert "feat: FC-0001 Remove Persistent Course Grades Flags (#30540)" (#30744)
This reverts commit 4a9243ef9f.
2022-07-19 13:45:31 -04:00
Sagirov Evgeniy
4a9243ef9f feat: FC-0001 Remove Persistent Course Grades Flags (#30540)
* feat: revert Fix certificate generation without persistent grades

* feat: Remove Persistent Course Grades Flags

* test: update tests
2022-07-19 11:30:37 -04:00
Muhammad Umar Khan
a389a9ff10 Revert "Revert "refactor: move xmodule folder to root"" 2022-06-20 18:20:06 +05:00
Muhammad Umar Khan
d890f06507 Revert "refactor: move xmodule folder to root" 2022-06-20 16:03:48 +05:00
M Umar Khan
a91df0c40f refactor: move xmodule folder to root
- Moving xmodule folder to root as we're dissolving sub-projects of common folder in edx-platform
    - More info: https://openedx.atlassian.net/browse/BOM-2579
- -e common/lib/xmodule has been removed from the requirements as xmodule has itself become the part of edx-platform and not being installed through requirements
- The test files common/lib/xmodule/test_files/ have been removed as they are not being used anymore
2022-06-20 14:33:45 +05:00
Michael Terry
a162140492 fix: have progress MFE API recalculate visible course grade
Previously, the course grade returned would be the stored grade,
which is calculated for all content, not just the visible grades.
(Some grades are not yet released to the learner.)

This fix recalculates the overall grade before sending to the MFE,
so that it doesn't have to recompute it itself (without all the
particular logic that the platform uses when grading).

AA-1217
2022-03-11 15:11:05 -05:00
Chris Deery
6d08aa23b4 fix: [AA-1076] add override info to progress API (#29585)
* fix: [AA-1076] add override info to progress API

- Indicate if a grade has been overridden in the progress tab.
2021-12-21 14:41:25 -05:00
Jawayria
846c9e95dc chore: Applied lint-amnesty on lms/djangoapps/{course_home_api, course_wiki} 2021-12-20 16:14:49 +05:00
Dillon Dumesnil
dafb70cc7c feat: AA-1020: Add Credit Information to Progress tab 2021-11-02 16:25:16 -04:00
Carla Duarte
fe435987b0 feat: add access_expiration to progress tab view (AA-877) 2021-09-01 15:12:45 -04:00
Michael Terry
2176dd7890 feat: allow unsubcribing from a course goal with just a token
* Add unsubscribe_token uuid field to CourseGoal model
* Add endpoint to unsubcribe from just a token (no login needed)
* Add admin page for the course_goals djangoapp
* Add get_course_overview_or_404 utility method
* Clean up URL handling in course_home_api

AA-907
2021-08-23 12:07:32 -04:00
Carla Duarte
bfd2d825f0 fix: progress tab serializer enforce float for num_total 2021-07-27 15:57:31 -04:00
Dillon Dumesnil
7dd4f2db99 fix: AA-912: Hide URL after due date if subsection is marked as hide after due
A bug was reported of a learner accessing content that should have been hidden
due to the hide after due setting in Studio by the course team by clicking on
the Progress tab. This takes into account that value and will now hide the URL
on the Progress tab in that scenario.
2021-07-21 17:53:23 -04:00
Carla Duarte
d754951cf8 feat: add problem scores to progress tab api (AA-875) 2021-07-14 12:33:23 -04:00
Matthew Piatetsky
6922f75a52 feat: add user id parameter to progress page 2021-07-01 15:50:13 -04:00
Carla Duarte
b08a9d61ef fix: make scores floats rather than ints in progress tab api 2021-06-23 11:34:19 -04:00
Michael Terry
c8a62bd4d2 feat: add learner_has_access field to progress tab data
In order to allow the learning MFE's progress tab to show a
different UX for FBE exceptions (where some exams can still be
completed by audit learners), this commit adds access information
to each exam.

AA-829
2021-06-22 09:10:12 -04:00
Sofia Yoon
e645d11bba feat: AA-797 switch course home flag to opt out by replacing it with a course home use legacy frontend flag 2021-06-16 10:04:49 -04:00
Carla Duarte
cecd37c45b feat: surface subsection block keys in progress api 2021-06-01 09:57:54 -04:00
Matthew Piatetsky
e6268470b8 feat: add stacked config model for disabling the frontend-app-learning progress page 2021-05-27 10:40:43 -04:00
Albert (AJ) St. Aubin
351228cee4 refactor: Updating cert availability messaging.
[MICROBA-678]

Added cert availability date to the API used to get certificate status
by the learning MFE to support updated messaging.

Updated the cert availability messaging in the Coruse Dashboard,
including a text color change.
2021-05-24 12:42:03 -04:00
Carla Duarte
d7a4948b8e feat: add total number of assignments to progress API (AA-816) 2021-05-18 17:18:25 -04:00
Carla Duarte
2f8572d540 fix: handle unenrolled users in course home APIs (AA-790) 2021-05-13 14:08:44 -04:00
Carla Duarte
b7081f4ecd fix: include VerifiedModeSerializerMixin in Progress Tab API [AA-723] 2021-05-03 12:50:31 -04:00
Matthew Piatetsky
8ff937c341 feat: Add new data to course home and progress endpoints to support the progress page certificate status component
AA-719
2021-04-26 09:43:25 -04:00
Carla Duarte
ae5733f176 feat: add letter grade to MFE Progress Tab API 2021-04-09 09:25:53 -04:00
Carla Duarte
4570d4e3d8 fix: surface assignment type short_label in Progress Tab MFE API 2021-03-25 17:52:15 -04:00
Carla Duarte
e8bfee28c5 AA-722: surface num_droppable assignments in MFE Progress Tab API 2021-03-24 13:55:56 -04:00
Carla Duarte
dbe31e3c48 AA-212: add masquerade test for progress tab 2021-03-15 16:35:30 -04:00
Carla Duarte
403358e09f AA-213: create progress tab mfe waffle flag 2021-03-12 10:08:34 -05:00
Carla Duarte
99f73312b8 Progress Tab 2021-03-11 15:43:58 -05:00
Jawayria
a383845b01 BOM-2352: Removed unused imports from lms/djangoapps/{course_blocks, course_goals, course_home_api, courseware} 2021-02-22 21:44:42 +05:00
usamasadiq
3d1f3cea64 Ran pyupgrade on lms/djangoapps/course_blocks
Ran pyupgrade on lms/djangoapps/course_goals
Ran pyugprade on lms/djangoapps/course_home_api
2021-02-19 16:29:52 +05:00
Aarif
d2a147bb47 replaced unittest assertions pytest assertions (#26542) 2021-02-18 19:14:41 +05:00
Simon Chen
00ad36839d MST-542 Roll out Accounts MFE IDV workflow (#25613)
* MST-542 remove the IDV redirect to Account MFE waffle flag to permanently redirect learners to new IDV workflow. This completes the rollout process on edx-platform
2020-12-01 09:08:12 -05:00