Compliance Readiness Score
0%
of Practices Met
Trauma-Informed Practice Audit
School: N/A | Teacher: N/A | Date: N/A
Missing Critical Policy/Safety Items
All critical items met.
Audit Summary
Total Practices: 0 | Critical Practices: 0
Report Metadata
All critical items met!
'; } else { missingCritEl.innerHTML = missingCrit.map(txt => `— ${txt}
`).join('');
}
// Update Chart
if(titpcChart) {
titpcChart.data.datasets[0].data = [percent, 100 - percent];
titpcChart.update();
}
}
// --- Chart Logic ---
function titpcInitChart() {
const ctx = document.getElementById('titpc-chart').getContext('2d');
titpcChart = new Chart(ctx, {
type: 'doughnut',
data: {
labels: ['Met', 'Missing'],
datasets: [{
data: [0, 100],
backgroundColor: ['#3498db', '#e9ecef'],
borderWidth: 0,
cutout: '75%'
}]
},
options: {
circumference: 180,
rotation: -90,
cutout: '75%',
responsive: true,
maintainAspectRatio: false,
plugins: { legend: { display: false }, tooltip: { enabled: false } },
aspectRatio: 1.5
}
});
}
// --- PDF Export ---
window.titpcDownloadPDF = function() {
const element = document.getElementById('titpc-export-area');
// Prepare styles for print
const pdfHeader = element.querySelector('.titpc-pdf-header');
pdfHeader.style.display = 'block';
// Temporarily clone and re-structure the full audit list into the target
const fullListHTML = document.getElementById('titpc-full-audit-summary').innerHTML;
const tempDiv = document.createElement('div');
tempDiv.innerHTML = fullListHTML;
// Append the header and the full list to a temporary wrapper for clean printing
const wrapper = document.createElement('div');
wrapper.appendChild(pdfHeader.cloneNode(true));
wrapper.appendChild(tempDiv);
// Add the missing list summary
const missingListClone = document.getElementById('titpc-missing-critical-list').cloneNode(true);
wrapper.appendChild(missingListClone);
const opt = {
margin: 0.5,
filename: 'Trauma_Informed_Audit.pdf',
image: { type: 'jpeg', quality: 0.98 },
html2canvas: { scale: 2 },
jsPDF: { unit: 'in', format: 'letter', orientation: 'portrait' }
};
html2pdf().set(opt).from(wrapper).save().then(() => {
pdfHeader.style.display = 'none'; // Restore visibility
});
};
})();
