{% extends "base.html" %} {% from "macros.html" import team_filter %} {% block title %}Certifications · Competence{% endblock %} {% block crumbs %}Certifications{% endblock %} {% block content %}
Yes/no qualifications with an expiry date. Missing = the person's role requires it (their role in their latest assessment) and they have never had it. Expiring soon = within {{ expiring_days }} days. Click a name to record or renew. Manage the list in Admin → Certifications.
{% if not t.certs %}No certifications yet. Add the first one.
{% else %}| Person | Certification | Status | Expires |
|---|---|---|---|
| {{ x.person.name }} | {{ x.cert.name }} | {{ status_labels[x.status] }} | {{ x.record.expires_on if x.record and x.record.expires_on else "–" }} |
Nothing missing, expired or expiring.
{% endif %}| Certification | Valid for | Required by | Valid | Expiring | Expired | Missing | Flag |
|---|---|---|---|---|---|---|---|
| {{ s.cert.name }}{{ s.cert.description }} | {{ "%d months"|format(s.cert.valid_months) if s.cert.valid_months else "no expiry" }} | {% for r in s.cert.required_by %}{{ roles[r] }}{% if not loop.last %}, {% endif %}{% else %}–{% endfor %} | {% for st in ("valid", "expiring", "expired", "missing") %}{{ s.counts[st] }} | {% endfor %}{% if s.nobody_holds_it %}Nobody holds it{% endif %} |
| Person | {% for s in t.certs %}{{ s.cert.name }} | {% endfor %}
|---|---|
| {{ p.name }} | {% for s in t.certs %}{% set status, rec = t.cells[(p.id, s.cert.id)] %}{%- if rec %}{{ ("expired " if status == "expired" else "until ") ~ rec.expires_on if rec.expires_on else "✓" }}{% elif status %}{{ status_labels[status] }}{% else %}–{% endif -%} | {% endfor %}
No active people.
{% endif %} {% endif %} {% endblock %}