Skip to content

#6586 - Batch reassessment outcome - #6742

Merged
weskubo-cgi merged 11 commits into
mainfrom
feature/#6586-batch-reassessment-detail
Oct 16, 2026
Merged

weskubo-cgi merged 11 commits into
mainfrom
feature/#6586-batch-reassessment-detail

Conversation

@weskubo-cgi

@weskubo-cgi weskubo-cgi commented Oct 9, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

Web

  • Added pending count and View navigation to existing BatchReassessment.vue screen.
  • Added new BatchReassessmentOutcome.vue screen to view application level details

API

  • Updates to add pending count to history.
  • Added new controller/service methods to retrieve applications via paginated query.
  • Added new E2E tests.

Screenshots

Ministry -> Batch Reassessment

image

Ministry -> Batch Reassessment Outcome

image image

Navigation to application after edit

image

E2E tests

BatchReassessmentAESTController(e2e)-getBatchReassessmentApplications

image

BatchReassessmentAESTController(e2e)-getBatchReassessments

image

@weskubo-cgi weskubo-cgi self-assigned this Oct 9, 2026
Copilot AI balanced review requested due to automatic review settings October 9, 2026 23:56
@weskubo-cgi
weskubo-cgi marked this pull request as draft October 9, 2026 23:56

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🟡 Changes recommended

Concurrent requests can display stale results, and the failure-reason contracts exclude emitted null values.

4 open findings
What changed in this PR

Adds detailed, paginated batch reassessment results for ministry users, including filtering, statuses, and navigation to application assessments.

Changes:

  • Adds the batch reassessment detail API, DTOs, filtering, pagination, and e2e coverage.
  • Adds the results view, status chips, history actions, and navigation.
  • Adds pending counts and application-level outcomes.
File Description
sources/​packages/​web/​src/​views/​aest/​student/​applicationDetails/​AssessmentsSummary.vue Supports custom back navigation.
sources/​packages/​web/​src/​views/​aest/​BatchReassessmentDetail.vue Adds the detailed results page.
sources/​packages/​web/​src/​views/​aest/​BatchReassessment.vue Updates the input label.
sources/​packages/​web/​src/​types/​contracts/​DataTableContract.ts Adds pending/action and detail table headers.
sources/​packages/​web/​src/​types/​contracts/​BatchReassessment.ts Defines application result statuses.
sources/​packages/​web/​src/​types/​AppRoutes.ts Defines the detail route path.
sources/​packages/​web/​src/​services/​http/​dto/​BatchReassessment.dto.ts Adds pending counts and result DTO.
sources/​packages/​web/​src/​services/​http/​BatchReassessmentApi.ts Adds the paginated detail request.
sources/​packages/​web/​src/​services/​BatchReassessmentService.ts Exposes detail retrieval to views.
sources/​packages/​web/​src/​router/​AESTRoutes.ts Registers detail and back-navigation routes.
sources/​packages/​web/​src/​constants/​routes/​RouteConstants.ts Adds the detail route identifier.
sources/​packages/​web/​src/​components/​generic/​StatusChipBatchReassessmentApplicationResult.vue Renders result status chips.
sources/​packages/​web/​src/​components/​aest/​BatchReassessmentHistory.vue Adds pending counts and detail navigation.
sources/​packages/​backend/​apps/​api/​src/​utilities/​datatable-config.ts Defines detail pagination options.
sources/​packages/​backend/​apps/​api/​src/​services/​batch-reassessment/​batch-reassessment.service.ts Queries and classifies application outcomes.
sources/​packages/​backend/​apps/​api/​src/​services/​batch-reassessment/​batch-reassessment.service.models.ts Defines detail service models.
sources/​packages/​backend/​apps/​api/​src/​route-controllers/​models/​pagination.dto.ts Validates result filtering and sorting.
sources/​packages/​backend/​apps/​api/​src/​route-controllers/​batch-reassessment/​models/​batch-reassessment.dto.ts Defines API output DTOs.
sources/​packages/​backend/​apps/​api/​src/​route-controllers/​batch-reassessment/​batch-reassessment.aest.controller.ts Adds the detail endpoint.
sources/​packages/​backend/​apps/​api/​src/​route-controllers/​batch-reassessment/​_tests_/​e2e/​batch-reassessment.aest.controller.getBatchReassessments.e2e-spec.ts Covers pending summary counts.
sources/​packages/​backend/​apps/​api/​src/​route-controllers/​batch-reassessment/​_tests_/​e2e/​batch-reassessment.aest.controller.getBatchReassessmentApplications.e2e-spec.ts Covers detail retrieval, filtering, validation, and authorization.

🧠 Review effort: Balanced


💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread sources/packages/web/src/services/http/dto/BatchReassessment.dto.ts Outdated
Comment thread sources/packages/web/src/views/aest/BatchReassessmentOutcome.vue
@weskubo-cgi
weskubo-cgi marked this pull request as ready for review October 14, 2026 22:12
Comment on lines +176 to +180
query
.orderBy(
"batchApplication.applicationNumber",
paginationOptions.sortOrder ?? FieldSortOrder.ASC,
)

@weskubo-cgi weskubo-cgi Oct 14, 2026 •

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

Search logic is kept simple as the only supported sortField (which is also the default) is applicationNumber.

@weskubo-cgi weskubo-cgi changed the title #6586 - Batch reassessment detail #6586 - Batch reassessment outcome Oct 14, 2026
@dheepak-aot
dheepak-aot self-requested a review October 15, 2026 16:44
@tiago-graf
tiago-graf self-requested a review October 15, 2026 16:50
Comment on lines +41 to +42
* applications were successfully reassessed, how many failed, and how many
* are still pending.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

👍

Comment thread sources/packages/web/src/services/http/BatchReassessmentApi.ts Outdated
Comment thread sources/packages/web/src/services/BatchReassessmentService.ts Outdated
Comment thread sources/packages/web/src/views/aest/BatchReassessmentOutcome.vue
Comment thread sources/packages/web/src/views/aest/BatchReassessmentOutcome.vue Outdated
@dheepak-aot

Copy link
Copy Markdown
Collaborator

Great work. Please take a look at the comments.

searchCriteria: searchCriteria.value,
};
if (selectedFilter.value !== ResultFilter.All) {
criteria.result = selectedFilter.value;

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

👍

});
if (paginationOptions.searchCriteria) {
query.andWhere("batchApplication.applicationNumber ILIKE :search", {
search: `%${paginationOptions.searchCriteria.trim()}%`,

@tiago-graf tiago-graf Oct 16, 2026 •

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Just a thought but if the searchCriteria is a whitespace " " wouldn't the trim make the search ILIKE '%%' ?

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

Good catch. I'll update the service.

const BATCH_REASSESSMENT_NUMBER_SEQUENCE_NAME = "BATCH_REASSESSMENT_NUMBER";
const BATCH_REASSESSMENT_CHUNK_SIZE = 1000;
/**
* Assessment statuses indicating the application was successfully reassessed, including cancellations in progress..

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

double period

:toggled="!paginatedApplications.count && !loading"
message="No applications found."
>
<v-data-table-server

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Please check there if loadApplications is being call twice on mount. In theory the data table @update:options should trigger on mount (as well as the component onMount)

@weskubo-cgi weskubo-cgi Oct 16, 2026 •

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

This is a known issue with lazily loaded data tables as captured in ZenHub #5457. I have put in a small fix that may be the solution moving forward.

@sonarqubecloud

Copy link
Copy Markdown

@github-actions

Copy link
Copy Markdown

Backend Unit Tests Coverage Report

Totals Coverage
Statements: 20.28% ( 5121 / 25246 )
Methods: 9.86% ( 302 / 3064 )
Lines: 24.58% ( 4334 / 17629 )
Branches: 10.65% ( 485 / 4553 )

@github-actions

Copy link
Copy Markdown

E2E Workflow Workers Coverage Report

Totals Coverage
Statements: 48.51% ( 2987 / 6158 )
Methods: 38.5% ( 313 / 813 )
Lines: 55.29% ( 2254 / 4077 )
Branches: 33.12% ( 420 / 1268 )

@github-actions

Copy link
Copy Markdown

E2E Queue Consumers Coverage Report

Totals Coverage
Statements: 81.23% ( 10173 / 12523 )
Methods: 81% ( 1330 / 1642 )
Lines: 84.59% ( 7586 / 8968 )
Branches: 65.71% ( 1257 / 1913 )

const application = batchApplication.studentAssessment?.application;
// The versions join is filtered to the current application only.
const [currentApplication] =
application?.parentApplication.versions ?? [];

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Versions must not be null or empty and hence fallback is not required.

@weskubo-cgi weskubo-cgi Oct 16, 2026 •

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

On closer analysis, the fallback isn't for versions but for application since not all reassessments have an application. And the destructuring will fail without it.

@github-actions

Copy link
Copy Markdown

E2E SIMS API Coverage Report

Totals Coverage
Statements: 71.37% ( 15786 / 22118 )
Methods: 68.93% ( 1877 / 2723 )
Lines: 74.26% ( 11176 / 15049 )
Branches: 62.89% ( 2733 / 4346 )

@dheepak-aot dheepak-aot left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Thanks for making the changes. Looks good 👍Left a minor comment.

@weskubo-cgi
weskubo-cgi added this pull request to the merge queue Oct 16, 2026
Merged via the queue into main with commit e43d919 Oct 16, 2026
25 of 27 checks passed
@weskubo-cgi
weskubo-cgi deleted the feature/#6586-batch-reassessment-detail branch October 16, 2026 22:45

This branch was successfully deployed

1 active deployment
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants