' + esc(state.model.resources[item.source.type]?.title || properCase(item.source.type)) + '' + esc(timingText(item)) + '
Due ' + esc(item.dueOn) + '.
' + (item.blockingReason ? '' + esc(item.blockingReason) + '
' : '') + '';
+}
+
function obligationCard(item, collapsed = false) {
const type = item.actionItemId ? "action-item" : item.occurrenceId ? "obligation-occurrence" : "obligation";
const id = item.actionItemId || item.occurrenceId || item.obligationId;
@@ -3279,7 +3291,7 @@ function renderAuditPacket(main, params = new URLSearchParams()) {
["Engagement", selected ? selected.title : "No audit record", "#/resources/audit", selected ? "good" : "warn"],
["filegrc Evidence", filegrcRecords.length + " operating " + pluralize("record", filegrcRecords.length), "#/stage/run", "neutral"],
["Evidence Artifacts", evidence.length + " " + pluralize("record", evidence.length), "#/resources/evidence", evidence.length ? "good" : "neutral"],
- ["Policy work", state.obligations.counts.overdue ? state.obligations.counts.overdue + " overdue" : state.obligations.counts.blocked ? state.obligations.counts.blocked + " blocked" : state.obligations.counts.due ? state.obligations.counts.due + " due" : state.obligations.counts.proposed ? state.obligations.counts.proposed + " proposals" : "No work due", "#/stage/run", state.obligations.counts.overdue || state.obligations.counts.blocked ? "bad" : state.obligations.counts.due ? "warn" : state.obligations.counts.proposed ? "neutral" : "good"]
+ ["Policy work", queueState().counts.overdue ? queueState().counts.overdue + " overdue" : queueState().counts.blocked ? queueState().counts.blocked + " blocked" : queueState().counts.due ? queueState().counts.due + " due" : queueState().counts.proposed ? queueState().counts.proposed + " proposals" : "No work due", "#/stage/run", queueState().counts.overdue || queueState().counts.blocked ? "bad" : queueState().counts.due ? "warn" : queueState().counts.proposed ? "neutral" : "good"]
];
const evidencePaths = '