| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| Parent folder | |||
| SHA256SUMS.pem | 2026-05-21 | 3.6 kB | |
| SHA256SUMS.sig | 2026-05-21 | 96 Bytes | |
| SHA256SUMS | 2026-05-21 | 109 Bytes | |
| openconstructionerp-4.2.2-py3-none-any.whl | 2026-05-21 | 13.7 MB | |
| README.md | 2026-05-21 | 2.2 kB | |
| v4.2.2 -- i18n + a11y + event flow + N+1 polish source code.tar.gz | 2026-05-21 | 248.6 MB | |
| v4.2.2 -- i18n + a11y + event flow + N+1 polish source code.zip | 2026-05-21 | 251.2 MB | |
| Totals: 7 Items | 513.4 MB | 0 | |
Round 2 of the post-v4.2.0 audit-driven polish releases. No DB migration; drop-in upgrade from v4.2.1.
Fixed
- i18n: 327 missing
admin.*keys backfilled across 23 locales — Permissions Matrix + Audit Log now render correctly everywhere (ar, bg, cs, da, es, fi, fr, hi, hr, id, it, ja, ko, mn, nl, no, pl, pt, ro, sv, th, tr, vi, zh). DE + RU already native; EN unchanged. 24 × 54 = 1,296 inserts. - a11y: focus management. New
useFocusTraphook capturesdocument.activeElement, traps Tab/Shift+Tab cycling within the container, restores focus on cleanup (Escape / backdrop click / explicit close). Wired into ConfirmDialog + WideModal. - Sidebar landmark. Now wrapped in
<nav role="navigation" aria-label="Main navigation">— screen readers can identify and skip-to it. - StatusDot color-only-meaning gap. Component now always renders a screen-reader-only span with variant name fallback when no visible
labelis supplied. Wrapper gotrole="status". - BOQ N+1 query loops.
_subtree_heightnow does a singlelist_all_for_boq+ in-memory parent→children index.apply_quantity_linksuses a new bulkPositionRepository.list_by_ids.
Added
- 3 previously-orphan event subscribers wired:
qms.ncr.mirrored_from_hse→ notifications dispatcherprocurement.supplier_rating_update→ procurement events log stub (until supplier-rating model lands)contracts.risk_register_update→ risk events subscriber (creates risk row withmetadata.source_incident_ididempotency, PostgreSQL-gated)- Detached-task error visibility. New
_log_failures()helper inapp.core.eventsattaches a done-callback that logs failures at WARNING with traceback. Wired intoprocurement._on_tender_awardedandschedule._on_field_report_submitted.
Removed
- Unused
FloatingChatButtonexport - Unused
react-isfrontend dep (still pulled transitively by recharts / ag-grid / testing-library) - v4.0 scratch artefacts:
_capture_v4_news.mjs,_capture_v4_v2.mjs,_verify_cards_layout.mjs,tmp/check_full.py,tmp/check_vi.py
Test summary
299 BOQ + 198 events / risk / procurement / qms / hse / notifications + 18 a11y + 14 admin-i18n — all green.