Skip to content

[GSoC 2026] M2.16: Fix part of #24717: Wired certificate assessment start and submission flow - #2

Closed
mosin74 wants to merge 15 commits into
learner-assessment-m2.13from
learner-assessment-m2.16
Closed

mosin74 wants to merge 15 commits into
learner-assessment-m2.13from
learner-assessment-m2.16

Conversation

@mosin74

@mosin74 mosin74 commented Aug 12, 2026

Copy link
Copy Markdown
Owner

Overview

  1. This PR fixes part of [Feature Request]: Learner certificates oppia/oppia#24717.
  2. This PR does the following:
    • Auth guard: CertificateAssessmentPlayerPageAuthGuard now redirects to the 404 page both when the EnableCertificateAssessment feature flag is disabled and when the user is logged out, preventing logged-out users from reaching the player
    • Backend integration: Added API service methods startCertificateAssessmentAttemptAsync, submitCertificateAssessmentAttemptAsync, and getCertificateAssessmentQuestionAsync (plus new handler URL constants) and the CertificateAssessmentAttemptData model with typed backend.
    • Player root component: Fetches the real certificate offering on load and redirects to 404 when the certificate is unavailable; resolves the classroom URL fragment for banner exit buttons; manages intro/instructions/questions stages; handles start/submit failures gracefully (warning alerts).
    • Player page component: Replaced hardcoded mock questions with questions loaded from real question state; tracks answers per question id; derives correct answers from rule inputs (choice index for multiple-choice, content ids for multi-select); submits answers with question_id/is_correct/selected_answer.
    • Instruction panel / intro card: Updated to consume real offering data (title, description, time limit, total questions).
    • Spec updates: Full coverage for the auth guard, root component, player page component, instruction panel, intro card, backend API service, and model.

Essential Checklist

Please follow the instructions for making a code change.

  • I have linked the issue that this PR fixes in the "Development" section of the sidebar.
  • I have checked the "Files Changed" tab and confirmed that the changes are what I want to make.
  • I have written tests for my code.
  • The PR title starts with "Fix #bugnum: " or "Fix part of #bugnum: ...", followed by a short, clear summary of the changes.
  • I have assigned the correct reviewers to this PR (or will leave a comment with the phrase "@{{reviewer_username}} PTAL" if I can't assign them directly).

Proof that changes are correct

Screencast.from.2026-08-12.14-07-15.webm

PR Pointers

mosin74 and others added 8 commits August 12, 2026 03:17
…e tests (oppia#26901)

* added acceptance tests for creator-side

* added the file in acceptance.json

* fixed changes

* fixed lint checks

* changed the feature flag to test stage

* fixed feature flag

* fixed node_1 crash

* remove unnecessary tests

* fixed failing tests

* added tests

* finalised the spec files

* fixed frontend tetss

* removed screenshots

* addressed comments

* added screenshots

* added screenshots

* updated screenshots

* addressed comments

* fixed tests

* moved flag from prod to test

* updated screenshots

* fixed flaky failure

* removed extra comments

* fixed tiemout flakes

* Updated the tests to use translation admin instead of curriculum admin

* fixed failure

* updated screenshot

* updated screenshots

* updated snapshot

* updated waitForNetworkIdle

* reverted clearAllTextFrom to keyboard approach

* fixed flaky story adventure tests

* updated story editor adventure screenshots

* updated snapshot

* updated snapshot

* Added scrollToTopOfPage

* Updated dev and prod screenshots

* fixed acceptance tests

* Updated code  to fix acceptance tests

* fixed comment

* added todo comment

* updated screenshots
…laywright acceptance tests (oppia#27058)

* Added linter for duplicate function

* Added runtime check

* Fixed duplicate functions

* Correcting the runtime check

* Extracted curriculum-admin to topic-manager

* Removed one function from navigation-utils.ts
…essment player to logged-in learners and show 404 for unavailable certificates
…sessment Attempt Retrieval Services (oppia#27068)

* Add certificate assessment attempt retrieval service and handlers

* Fixed mypy check added coverage

* Add test for missing certificate offering in result handler

* Add topic-level breakdown and time taken to certificate assessment result handler

---------

Co-authored-by: mosin74 <mosin74@gmail.com>
@mosin74

mosin74 commented Aug 12, 2026

Copy link
Copy Markdown
Owner Author

@brianrodri Just a heads-up I've created the PR. I'll do one more pass and finalize the description, then I'll assign it to you. Thanks!

NITISH084 and others added 7 commits August 12, 2026 19:46
…ppia#27004 (oppia#27090)

* flake fixes

* updated few more troublesome tests

* updated few more troublesome tests
…ate-blog-post-and-get-blocked.spec.ts (oppia#27097)

* testing

* updated dev snap
…TML templates removing inconsistency of next 20 files (part-8) (oppia#27074)

Fix part of 25941:Clean up legacy embedded <style> tags from HTML templates (part-8)

Co-authored-by: Mohak51234 <143473709+Mohak51234@users.noreply.github.com>
… to support MatBottomSheet (oppia#26914)

* Fix part of oppia#26597: Migrate Group 1 base and confirmation modals to support MatBottomSheet

* Add bottom-sheet coverage tests for Group 1 modals

* Add save and cancel coverage tests for rte-helper bottom-sheet mode

* Add math-path save coverage test for rte-helper bottom-sheet mode

* Add math-path save coverage tests for rte-helper bottom-sheet mode

* Trigger CI

* Re-trigger CI

---------

Co-authored-by: NITISH KUMAR <imnitishkumar04@gmail.com>
Co-authored-by: Mohak51234 <143473709+Mohak51234@users.noreply.github.com>
…age. (oppia#27116)

* Fix volunteer page CTA buttons to redirect to the Oppia Idealist page

Update the volunteer page CTA buttons to redirect to the Oppia Idealist
page instead of the volunteer form, which has been deactivated. Change
the button text to 'Explore Volunteer Openings', update the footer text,
and remove the volunteer form link constant and its unused test
constants. Rename the e2e selectors to match the new button behavior,
and delete the outdated volunteer page screenshots.

* Updated snapshots

* Update volunteer acceptance test description to reflect Idealist navigation

* Rename volunteer link fields to be destination-specific

---------

Co-authored-by: mosin74 <mosin74@gmail.com>
@mosin74 mosin74 changed the title Wired Certificate assessment Start and Submission flow [GSoC 2026] M2.16: Fix part of #24717: Wired certificate assessment start and submission flow Aug 15, 2026
@mosin74 mosin74 closed this Aug 15, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants