295 lines
8.4 KiB
HTML
295 lines
8.4 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<title>Document Compliance Report</title>
|
|
<style>
|
|
body {
|
|
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
|
|
line-height: 1.6;
|
|
color: #333;
|
|
max-width: 1200px;
|
|
margin: 0 auto;
|
|
padding: 20px;
|
|
}
|
|
.header {
|
|
background-color: #f8f9fa;
|
|
padding: 20px;
|
|
border-radius: 5px;
|
|
margin-bottom: 20px;
|
|
border-left: 5px solid #007bff;
|
|
}
|
|
.document-info {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: center;
|
|
margin-bottom: 20px;
|
|
}
|
|
.document-info-left {
|
|
flex: 3;
|
|
}
|
|
.document-info-right {
|
|
flex: 1;
|
|
text-align: right;
|
|
}
|
|
.score-container {
|
|
font-size: 24px;
|
|
font-weight: bold;
|
|
color: #28a745;
|
|
}
|
|
.summary {
|
|
background-color: #e9f7ef;
|
|
padding: 20px;
|
|
border-radius: 5px;
|
|
margin-bottom: 30px;
|
|
border-left: 5px solid #27ae60;
|
|
}
|
|
|
|
.applied-standards {
|
|
margin-top: 1.5rem;
|
|
padding: 1rem;
|
|
background-color: #f8f9fa;
|
|
border-radius: 5px;
|
|
border-left: 3px solid #3498db;
|
|
}
|
|
|
|
.applied-standards h3 {
|
|
margin-top: 0;
|
|
font-size: 1.2rem;
|
|
color: #495057;
|
|
}
|
|
|
|
.standards-list {
|
|
margin: 0.5rem 0 0 1.5rem;
|
|
padding: 0;
|
|
}
|
|
|
|
.standards-list li {
|
|
margin-bottom: 0.25rem;
|
|
}
|
|
.issues-container {
|
|
margin-bottom: 30px;
|
|
}
|
|
.issue {
|
|
margin-bottom: 15px;
|
|
padding: 15px;
|
|
border-radius: 5px;
|
|
background-color: #f8f9fa;
|
|
border-left: 4px solid #6c757d;
|
|
}
|
|
.issue.critical {
|
|
background-color: #fdedec;
|
|
border-left-color: #e74c3c;
|
|
}
|
|
.issue.major {
|
|
background-color: #fef9e7;
|
|
border-left-color: #f39c12;
|
|
}
|
|
.issue.minor {
|
|
background-color: #eafaf1;
|
|
border-left-color: #2ecc71;
|
|
}
|
|
.issue.info {
|
|
background-color: #ebf5fb;
|
|
border-left-color: #3498db;
|
|
}
|
|
.issue-header {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: center;
|
|
margin-bottom: 10px;
|
|
}
|
|
.issue-section {
|
|
font-weight: bold;
|
|
font-size: 18px;
|
|
}
|
|
.badge {
|
|
display: inline-block;
|
|
padding: 5px 10px;
|
|
border-radius: 3px;
|
|
font-size: 12px;
|
|
font-weight: bold;
|
|
text-transform: uppercase;
|
|
color: white;
|
|
}
|
|
.badge.critical {
|
|
background-color: #e74c3c;
|
|
}
|
|
.badge.major {
|
|
background-color: #f39c12;
|
|
}
|
|
.badge.minor {
|
|
background-color: #2ecc71;
|
|
}
|
|
.badge.info {
|
|
background-color: #3498db;
|
|
}
|
|
.issue-description {
|
|
margin-bottom: 10px;
|
|
}
|
|
.issue-recommendation {
|
|
background-color: #f8f9fa;
|
|
padding: 10px;
|
|
border-radius: 3px;
|
|
margin-top: 10px;
|
|
}
|
|
|
|
.issue-reasoning {
|
|
margin-top: 10px;
|
|
padding: 10px;
|
|
background-color: #ebf5fb;
|
|
border-radius: 3px;
|
|
}
|
|
|
|
.issue-references {
|
|
margin-top: 10px;
|
|
}
|
|
|
|
.reference-list {
|
|
margin-top: 5px;
|
|
margin-left: 20px;
|
|
font-size: 0.9rem;
|
|
}
|
|
.stats {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
margin-bottom: 20px;
|
|
flex-wrap: wrap;
|
|
}
|
|
.stat-box {
|
|
flex: 1;
|
|
min-width: 200px;
|
|
background-color: #f8f9fa;
|
|
padding: 15px;
|
|
border-radius: 5px;
|
|
margin: 5px;
|
|
text-align: center;
|
|
}
|
|
.stat-value {
|
|
font-size: 24px;
|
|
font-weight: bold;
|
|
margin-bottom: 5px;
|
|
}
|
|
.stat-label {
|
|
color: #6c757d;
|
|
font-size: 14px;
|
|
}
|
|
.footer {
|
|
margin-top: 30px;
|
|
text-align: center;
|
|
color: #6c757d;
|
|
font-size: 14px;
|
|
padding-top: 20px;
|
|
border-top: 1px solid #dee2e6;
|
|
}
|
|
@media print {
|
|
body {
|
|
padding: 0;
|
|
font-size: 12px;
|
|
}
|
|
.issue {
|
|
break-inside: avoid;
|
|
}
|
|
.header, .summary {
|
|
break-inside: avoid;
|
|
}
|
|
}
|
|
</style>
|
|
</head>
|
|
<body>
|
|
<div class="header">
|
|
<h1>Document Compliance Report</h1>
|
|
<div class="document-info">
|
|
<div class="document-info-left">
|
|
<p><strong>Document:</strong> {{ document_name }}</p>
|
|
<p><strong>Generated:</strong> {{ timestamp }}</p>
|
|
</div>
|
|
<div class="document-info-right">
|
|
<div class="score-container">
|
|
{{ compliance_score * 100 | round(1) }}%
|
|
</div>
|
|
<div>Compliance Score</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="summary">
|
|
<h2>Summary</h2>
|
|
<p>{{ summary }}</p>
|
|
|
|
{% if applied_standards and applied_standards|length > 0 %}
|
|
<div class="applied-standards">
|
|
<h3>Applied Standards</h3>
|
|
<ul class="standards-list">
|
|
{% for standard in applied_standards %}
|
|
<li>{{ standard }}</li>
|
|
{% endfor %}
|
|
</ul>
|
|
</div>
|
|
{% endif %}
|
|
</div>
|
|
|
|
<div class="stats">
|
|
<div class="stat-box">
|
|
<div class="stat-value" style="color: #e74c3c;">{{ critical_count }}</div>
|
|
<div class="stat-label">Critical Issues</div>
|
|
</div>
|
|
<div class="stat-box">
|
|
<div class="stat-value" style="color: #f39c12;">{{ major_count }}</div>
|
|
<div class="stat-label">Major Issues</div>
|
|
</div>
|
|
<div class="stat-box">
|
|
<div class="stat-value" style="color: #2ecc71;">{{ minor_count }}</div>
|
|
<div class="stat-label">Minor Issues</div>
|
|
</div>
|
|
<div class="stat-box">
|
|
<div class="stat-value" style="color: #3498db;">{{ info_count }}</div>
|
|
<div class="stat-label">Info Issues</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="issues-container">
|
|
<h2>Compliance Issues</h2>
|
|
|
|
{% if issues %}
|
|
{% for issue in issues %}
|
|
<div class="issue {{ issue.level }}">
|
|
<div class="issue-header">
|
|
<div class="issue-section">{{ issue.section }}</div>
|
|
<span class="badge {{ issue.level }}">{{ issue.level }}</span>
|
|
</div>
|
|
<div class="issue-description">
|
|
{{ issue.description }}
|
|
</div>
|
|
{% if issue.reasoning %}
|
|
<div class="issue-reasoning">
|
|
<strong>Reasoning:</strong> {{ issue.reasoning }}
|
|
</div>
|
|
{% endif %}
|
|
{% if issue.standard_references and issue.standard_references|length > 0 %}
|
|
<div class="issue-references">
|
|
<strong>Standard References:</strong>
|
|
<ul class="reference-list">
|
|
{% for reference in issue.standard_references %}
|
|
<li>{{ reference }}</li>
|
|
{% endfor %}
|
|
</ul>
|
|
</div>
|
|
{% endif %}
|
|
<div class="issue-recommendation">
|
|
<strong>Recommendation:</strong> {{ issue.recommendation }}
|
|
</div>
|
|
</div>
|
|
{% endfor %}
|
|
{% else %}
|
|
<p>No compliance issues found. Great job!</p>
|
|
{% endif %}
|
|
</div>
|
|
|
|
<div class="footer">
|
|
<p>Generated by Mini SpecsComply Pro</p>
|
|
<p>This report is for informational purposes only and should be reviewed by a qualified professional.</p>
|
|
</div>
|
|
</body>
|
|
</html> |