feat(dashboard+ai): school-management widgets + KPI cards + AI chat companion - #65
Merged
Merged
Conversation
Contributor
Quality Report — ConductionNL/scholiq @
|
| Check | PHP | Vue | Security | License | Tests |
|---|---|---|---|---|---|
| lint | ✅ | ||||
| phpcs | ✅ | ||||
| phpmd | ✅ | ||||
| psalm | ✅ | ||||
| phpstan | ✅ | ||||
| phpmetrics | ✅ | ||||
| eslint | ✅ | ||||
| stylelint | ✅ | ||||
| composer | ✅ | ✅ 100/100 | |||
| npm | ✅ | ✅ 429/429 | |||
| PHPUnit | ❌ | ||||
| Newman | ❌ | ||||
| Playwright | ⏭️ |
Quality workflow — 2026-05-12 17:09 UTC
Download the full PDF report from the workflow artifacts.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
GET /apps/openregister/api/objects/scholiq/<schema>?_limit=1and renders viaCnStatsBlock(horizontal layout). ShowsNcLoadingIconwhile fetching; falls back to0on error.ManageListWidget.vuefetches top-6 objects and provides a "+ New" link to the index route.mandatory=true,lifecycle__in=pending,active, sorted by dueDate; each row has a "Start" link to the lesson player.CnAiCompanionis auto-mounted byCnAppRoot(no manual wiring required per the component docs).ScholiqToolProviderwas already registered inApplication.php(PR feat(mcp-tools): ScholiqToolProvider — AI companion MCP tools #39). AddedAssistantnav menu entry (icon-comment, section=settings) and atype: "chat"manifest page at/assistantso the companion has a full-page surface.type:"dashboard"totype:"custom"with dedicated Vue wrapper components (ScholiqDashboard,ScholiqCompliance,ScholiqLearnerHome,ScholiqAdminHealth). This is required becauseCnDashboardPage's#widget-{id}scoped slots must be provided directly by the parent component — they cannot pass throughCnPageRenderer's slot forwarding mechanism.Gate results
node tests/validate-manifest.js: PASS (0 Ajv errors)node tests/validate-json-strict.js: PASSnode tests/validate-register.js: PASS./vendor/bin/phpcs lib/: 44/44 clean./vendor/bin/phpstan analyse lib/: No errorsnpm run lint: 0 errors (6 pre-existing warnings in untouched files)npm run stylelint: clean (deprecation notices only)npm run build: compiled with 4 pre-existing warnings (nc-vue library warnings + size warnings)Test plan
/) — verify 5 KPI tiles and 3 manage-list widgets render/compliance) — verify Regulations + Attestations KPI tiles and "View in MyDash" button/learner) — verify mandatory training list renders/admin/health) — verify health-stats + kpi-schemas widgets/assistant) — verify chat page renders🤖 Generated with Claude Code