c568a34dc0
Ops templates: show '-' when the acting user is null
...
Six ops list and detail pages dereferenced a nullable user to print their name,
which renders an empty cell when the field is unset. Guard each one so the cell
reads "-" instead.
Screens: batch detail, CoA review detail, document list, EUDR detail, and the two
QC verification pages.
2026-09-16 16:39:07 +00:00
08096e168f
P99C: compliance automation - CoA auto-generation and EUDR due diligence
...
- Versioned product specification table (Unrefined Shea Butter v1.0 seed) with
spec-based QC evaluation replacing hard-coded thresholds
- Structured QC results with test methods and four-eyes verification
(submitter cannot self-approve)
- reportlab IXG Quality Summary PDF auto-generated on quality approval,
SHA-256 hashed; original independent lab PDF kept authoritative
- CertificateOfAnalysis version/status/hash/approval/supersede lifecycle;
commercial release publishes to buyers and triggers notification
- EUDR evidence workflow: Facility, OriginZone, CollectorGroup, HarvestIntake,
IntakeBatchLineage, DueDiligenceCase, EUDREvidence, RiskAssessment,
MitigationAction, DueDiligenceStatementReference with rule-based
completeness check and risk assessment (no AI legal conclusions)
- Ops portal: QC Approvals, CoA Reviews, EUDR Compliance screens
- Buyer portal: /portal/compliance page
- 22 automated tests covering four-eyes, CAPA, PDF+hash, publish/notify,
EUDR blocks and buyer isolation
2026-08-05 13:58:39 +00:00