Skip to content

Distinguish unsubmitted tests in the coach learner panel and label pre-test results - #15600

Open
rtibblesbot wants to merge 4 commits into
learningequality:developfrom
rtibblesbot:issue-15593-3e41a0
Open

rtibblesbot wants to merge 4 commits into
learningequality:developfrom
rtibblesbot:issue-15593-3e41a0

Conversation

@rtibblesbot

@rtibblesbot rtibblesbot commented Oct 16, 2026 •

Copy link
Copy Markdown
Contributor

Summary

  • Unit report lists learners who started a test but did not submit.
  • Learner panel shows "The learner hasn't submitted the test yet" for them, not "No progress yet".
  • Learners tab adds a padded "{title} (Pre-test results)" heading once the active pre-test ends.
  • Opening or ending a test updates the page live.

References

Closes #15593.

Reviewer guidance

Suggested review: Full code review, then manual QA once the reviewer sets Needs QA.

  • User-visible files changed: kolibri/plugins/coach/frontend/utils/index.js, kolibri/plugins/coach/frontend/views/courses/CourseSummaryPage.vue, kolibri/plugins/coach/frontend/views/courses/LearnerSidePanel.vue, kolibri/plugins/coach/frontend/views/courses/LearnerUnitReport.vue, packages/kolibri-common/strings/coursesStrings.js.
  • Settle the product calls: a closed test the learner opened but never submitted reads "The learner hasn't submitted the test yet", and the active unit's heading repeats its title as "{title} (Pre-test results)".
  • Confirm a refetch on every unitPhase change can replace develop's refetch on switching to the Learning Objectives tab, which the branch removes.
  • In the running app, check the panel's three states (not started, opened, submitted), the heading's padding against the table, and that starting or ending a test updates both without a reload.

Developer check: unitreports/ lists a learner under pre_test.started only until they submit; blank submits score {}.

Question: should a test closed before submission read "No progress yet"?

QA steps

QA team: the coach learner panel now separates an unsubmitted test from no progress. Regressions are most probable when a test ends.

All items use Kolibri QA Channel > Courses > Hummingbird Biology. Assign it to a class with learners A and B.

  1. Started but not submitted

    1. As the coach, start the pre-test for "Unit 1: Anatomy & Physiology".
    2. As learner A, open the pre-test. Do not submit it.
    3. As the coach, open A and B on the Learners tab.

    Learner A shows "The learner hasn't submitted the test yet". Learner B shows "No progress yet".

  2. Submitted with answers, and blank

    1. As learner A, answer two questions and submit.
    2. As learner B, submit with no answers.

    Learner A shows scores. Learner B shows every objective at "0 of 1".

  3. End tests without a reload

    1. On the Units tab, click End pre-test. Open the Learners tab.
    2. Start and end the post-test the same way.
    3. Switch to Arabic.

    While a test is open, no results heading shows. After the end, "Unit 1: Anatomy & Physiology (Pre-test results)" shows, aligned with the unit title. After the post-test, it reads "(Post-test results)". In Arabic, it aligns on the right. Is the repeated title clear?

Look out for:

  • Open a learner panel URL in a new tab. Look out for content unlike a clicked panel.

Evidence

Learner submits with answers, and blank

Step Screenshot
After: blank submit shows every objective at 0 of 1 After: blank submit shows every objective at 0 of 1
Learner sees "Pre-test completed!" after submitting Learner sees "Pre-test completed!" after submitting

Opened but not submitted vs never opened

s1-learner-panels.webm

Ending the pre-test in place

s3-end-pretest-in-place.webm

Post-test opened, then ended

Step Screenshot
Unsubmitted post-test reads the not-submitted text Unsubmitted post-test reads the not-submitted text
s4-end-post-test.webm

Later unit active, RTL, deep link

Step Screenshot
Arabic: Unit 1 results heading aligns with the active unit title Arabic: Unit 1 results heading aligns with the active unit title
More captures (15)
Step Screenshot
Opened learner reads "The learner hasn't submitted the test yet" Opened learner reads "The learner hasn't submitted the test yet"
Learner opens the pre-test Learner opens the pre-test
Learners tab, pre-test open Learners tab, pre-test open
Never-opened learner: "hasn't started any units" Never-opened learner: "hasn't started any units"
End pre-test dialog End pre-test dialog
Pre-test open: no results heading Pre-test open: no results heading
Pre-test ended: "(Pre-test results)" heading Pre-test ended: "(Pre-test results)" heading
Post-test open Post-test open
Post-test ended: "(Post-test results)" heading Post-test ended: "(Post-test results)" heading
Panel after the post-test ended Panel after the post-test ended
Unit 2 active, English Unit 2 active, English
Unit 2 pre-test open: no heading Unit 2 pre-test open: no heading
Unit 2 pre-test ended: heading Unit 2 pre-test ended: heading
Deep-linked panel Deep-linked panel
Panel opened by a click Panel opened by a click

AI usage

Used Claude Code to plan, implement and test the changes. Verified with the pytest and Jest suites for the changed files and prek.

🤖 Generated with Claude Code


Written by rtibblesbot, an LLM-based coding agent.

@rtibblesbot

🟡 Held for manual QA (🧪 Needs QA)

Last updated: 2026-10-30 07:25 UTC

@github-actions github-actions Bot added DEV: backend Python, databases, networking, filesystem... APP: Coach Re: Coach App (lessons, quizzes, groups, reports, etc.) DEV: frontend SIZE: medium labels Oct 16, 2026
@github-actions

github-actions Bot commented Oct 16, 2026 •

Copy link
Copy Markdown
Contributor

@rtibblesbot
rtibblesbot marked this pull request as ready for review October 18, 2026 05:33
@rtibblesbot
rtibblesbot requested review from a team and leq-bot October 18, 2026 05:33
rtibblesbot and others added 4 commits October 18, 2026 05:25
Each test gains `started`: learners with a mastery log but no complete
one, so the coach UI can tell "in progress" from "not started".

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A started but unsubmitted test reads "The learner hasn't submitted the
test yet" instead of "No progress yet".

The panel's "hasn't started any units" empty state now counts started
or submitted work on either test of a unit, not only the active one.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The results heading now also shows for the active unit once its test
closes, so pre-test results are labelled.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Each test's status lives in the reports, so an ended test kept showing as open until something else reloaded them. This replaces the refetch on switching to the Learning objectives tab.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@rtibbles rtibbles added this to the Kolibri 0.20 milestone Oct 20, 2026

@rtibbles rtibbles left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code changes make sense to me, and from the screenshots and screencasts, the behaviour looks broadly sensible, but I'd like QA confirmation here.

@rtibbles rtibbles self-assigned this Oct 26, 2026
@rtibblesbot

Copy link
Copy Markdown
Contributor Author

Holding off on changes while this PR is in 🧪 Needs QA — the branch will not move while it is being tested. Questions still get answered.

Change the board status when QA is done and I'll pick up any outstanding review feedback, CI failures and conflicts on the next cycle.


Written by rtibblesbot, an LLM-based coding agent.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

APP: Coach Re: Coach App (lessons, quizzes, groups, reports, etc.) DEV: backend Python, databases, networking, filesystem... DEV: frontend SIZE: medium

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Follow up progress UI issues

2 participants