feat: add Certifications & Training section to candidate detail page

This commit is contained in:
root
2026-07-17 09:12:57 +00:00
parent 32c3b073a0
commit 49117cf2e5
4 changed files with 14 additions and 3 deletions

View File

@@ -6,6 +6,6 @@
"originalName": "master_cv_template.docx",
"path": "/root/workspace/cv-app/renderer/carbone-templates/433a0593-d3cf-414e-8763-ab5f87cbc75c.docx",
"uploadedAt": "2026-07-16T09:03:29.601Z",
"updatedAt": "2026-07-17T09:04:41.170Z"
"updatedAt": "2026-07-17T09:07:36.233Z"
}
]

View File

@@ -150,6 +150,17 @@ async function viewCandidate(id) {
</div>
`).join('') || '<p class="text-muted">No education extracted</p>'}
</div>
<div class="card">
<h3 style="margin-bottom:12px">Certifications & Training (${data.certifications ? data.certifications.length : 0})</h3>
${(data.certifications || []).map(c => `
<div style="margin-bottom:12px">
<strong>${c.name || ''}</strong>
${c.issuer ? '<div class="text-muted text-sm">' + c.issuer + '</div>' : ''}
${c.issue_date ? '<div class="text-muted text-sm">Issued: ' + formatDate(c.issue_date) + '</div>' : ''}
${c.credential_id ? '<div class="text-muted text-sm">ID: ' + c.credential_id + '</div>' : ''}
</div>
`).join('') || '<p class="text-muted">No certifications extracted</p>'}
</div>
<div class="card">
<h3 style="margin-bottom:12px">Raw CV Text</h3>
<div style="max-height:400px;overflow-y:auto;background:var(--bg-input);padding:12px;border-radius:6px;white-space:pre-wrap;font-size:13px">${c.raw_cv_text || 'No raw text available'}</div>
@@ -192,7 +203,7 @@ async function uploadFile(file) {
status.innerHTML = `<div class="toast success" style="position:relative;bottom:0;right:0">
<strong>Parsed successfully!</strong><br>
Name: ${data.parsed_data.first_name || ''} ${data.parsed_data.last_name || ''}<br>
Skills: ${data.parsed_data.skills?.length || 0} | Experience: ${data.parsed_data.experience?.length || 0} | Education: ${data.parsed_data.education?.length || 0}
Skills: ${data.parsed_data.skills?.length || 0} | Experience: ${data.parsed_data.experience?.length || 0} | Education: ${data.parsed_data.education?.length || 0} | Certs: ${data.parsed_data.certifications?.length || 0}
</div>`;
toast('CV uploaded and parsed successfully');
} else {

View File

@@ -139,7 +139,7 @@
<!-- Modals -->
<div class="modal-overlay" id="modal-overlay"></div>
<script src="/static/app.js?v=14"></script>
<script src="/static/app.js?v=15"></script>
<script src="/static/carbone.js?v=14"></script>
</body>
</html>