Skip to content

Development: CQI Configuration#192

Merged
az108 merged 21 commits intomainfrom
feature/cqi-configuration
Mar 5, 2026
Merged

Development: CQI Configuration#192
az108 merged 21 commits intomainfrom
feature/cqi-configuration

Conversation

@Predixx
Copy link
Copy Markdown
Collaborator

@Predixx Predixx commented Feb 28, 2026

Description

Allow instructors to configure, add, remove, and weight CQI indicators per course.

Closes #191

@Predixx Predixx self-assigned this Feb 28, 2026
Allow instructors to configure CQI component weights (effort, LoC,
temporal spread, ownership) per exercise via REST API and UI panel.
Falls back to application.yml defaults when no custom config exists.

Backend: new entity, repository, service, REST endpoints
(GET/PUT/DELETE /api/exercises/{id}/cqi-weights).
Frontend: CqiWeightsPanel component integrated into Teams page.
@Predixx Predixx changed the title Feature: CQI Configuration Development: CQI Configuration Feb 28, 2026
@github-actions
Copy link
Copy Markdown
Contributor

🤖 OpenAPI spec and client code auto-updated and committed.

@github-actions
Copy link
Copy Markdown
Contributor

🤖 No OpenAPI or client changes needed.

@github-actions
Copy link
Copy Markdown
Contributor

🤖 No OpenAPI or client changes needed.

@Predixx Predixx force-pushed the feature/cqi-configuration branch from 949474e to 9f4b81c Compare February 28, 2026 18:57
@github-actions
Copy link
Copy Markdown
Contributor

🤖 OpenAPI spec and client code auto-updated and committed.

@github-actions
Copy link
Copy Markdown
Contributor

🤖 No OpenAPI or client changes needed.

1 similar comment
@github-actions
Copy link
Copy Markdown
Contributor

🤖 No OpenAPI or client changes needed.

@Predixx Predixx force-pushed the feature/cqi-configuration branch from ba9120f to 7a44890 Compare February 28, 2026 19:13
@github-actions
Copy link
Copy Markdown
Contributor

🤖 No OpenAPI or client changes needed.

Predixx and others added 2 commits March 1, 2026 16:05
…hema

- Return descriptive validation error messages from CqiWeightResource
- Display backend error messages in CqiWeightsPanel toasts
- Initialize timestamps in CqiWeightConfiguration constructor
- Use orElseGet with proper constructor for entity creation
- Move cqi_weight_configurations table into 001-initial-schema.xml
@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Mar 1, 2026

🤖 OpenAPI spec and client code auto-updated and committed.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Mar 1, 2026

🤖 No OpenAPI or client changes needed.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Mar 1, 2026

🤖 No OpenAPI or client changes needed.

Add unit tests for CqiWeightResource (9 tests), CqiWeightService (4 tests),
and CqiWeightsPanel (9 tests). Fix weak assertions in ContributionBalanceCalculatorTest
with exact computed values. Fix broken node_modules symlink in test webapp.
@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Mar 1, 2026

🤖 No OpenAPI or client changes needed.

@Predixx Predixx marked this pull request as ready for review March 1, 2026 16:00
Copy link
Copy Markdown
Collaborator

@Cathy0123456789 Cathy0123456789 left a comment

Choose a reason for hiding this comment

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

Thank you for adding this, I added a few comments on the code.

Also, when testing an error occurred when trying to save weights with this server log:
HttpMessageNotReadableException: JSON parse error: Cannot map null into type boolean (set DeserializationConfig.DeserializationFeature.FAIL_ON_NULL_FOR_PRIMITIVES to 'false' to allow)]

Can we also improve the toast message that occurs in such a case?
Image

Predixx added 4 commits March 5, 2026 00:12
buildRenormalizedWeightsWithoutEffort and renormalizeWithoutEffort now
resolve weights via CqiWeightService instead of reading cqiConfig
directly, so custom per-exercise weights are respected in SIMPLE mode.
Also fixes a stray duplicate Javadoc opener in CQICalculatorService.
- Remove unused `isValid()` from CqiWeightConfiguration
- Fix `isDefault` deserialization by changing boolean to Boolean in CqiWeightsDTO
- Replace raw fetch() with generated OpenAPI client in CqiWeightsPanel
- Improve error toast messages with fixed title and server error as description
- Update tests to mock API client instead of globalThis.fetch
Wrap the panel in a Collapsible so it starts closed and can be
expanded by clicking the header. Adds a chevron indicator for the
toggle state. Tests updated accordingly.
@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Mar 4, 2026

🤖 No OpenAPI or client changes needed.

Predixx added 2 commits March 5, 2026 00:56
…isted value

reconstructCqiDetails() was returning participation.getCqi() which was
computed at analysis time with whatever weights were active then. After
changing custom weights the CQI didn't update. Now recalculates the
weighted sum from persisted component scores and current weights.
The AI recompute and SIMPLE mode paths were building ClientResponseDTO
with the persisted/locally-calculated CQI instead of the recalculated
value from reconstructCqiDetails. Also fixed SIMPLE mode using default
weights (buildWeightsDTO() without exerciseId) instead of per-exercise
weights via renormalizeWithoutEffort.
@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Mar 5, 2026

🤖 No OpenAPI or client changes needed.

2 similar comments
@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Mar 5, 2026

🤖 No OpenAPI or client changes needed.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Mar 5, 2026

🤖 No OpenAPI or client changes needed.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Mar 5, 2026

🤖 No OpenAPI or client changes needed.

2 similar comments
@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Mar 5, 2026

🤖 No OpenAPI or client changes needed.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Mar 5, 2026

🤖 No OpenAPI or client changes needed.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Mar 5, 2026

🤖 No OpenAPI or client changes needed.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Mar 5, 2026

🤖 No OpenAPI or client changes needed.

@az108 az108 merged commit 0be8692 into main Mar 5, 2026
10 of 12 checks passed
@az108 az108 deleted the feature/cqi-configuration branch March 5, 2026 02:40
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.

CQI Configuration: allow instructors to configure, add, remove, and weight CQI indicators per course

3 participants