{% extends "base.html" %} {% from "_macros.html" import findings_badges, responsible_ai_badges, empty_state %} {% block title %}secfoo — Assessments{% endblock %} {% block content %} {% from "_page.html" import page_head %} {% call page_head("assessments", "Assessments", "Assessment register", "Every security review case file, across internal systems and third-party vendors.") %} New assessment {% endcall %}
All ({{ counts.all }}) Internal ({{ counts.internal }}) Third-Party ({{ counts.third_party }})
{% if bulk_updated is not none %}
{% if bulk_updated == 0 %}No assessments were selected, so nothing was changed. {% else %}Updated {{ bulk_updated }} assessment{{ '' if bulk_updated == 1 else 's' }} to {{ bulk_updated_to | assessment_status_label }}.{% endif %}
{% endif %} {% if assessments %}
{% for a in assessments %} {% endfor %}
ProjectTypeStatusFindingsResponsible AIReviewed
{{ a.project_display_name }} {% if a.application_id or a.sar_number %}
{{ a.application_id or '' }}{% if a.application_id and a.sar_number %} · {% endif %}{{ a.sar_number or '' }} {% endif %}
{{ a.assessment_type | assessment_type_label }} {{ a.status | assessment_status_label }}
{{ findings_badges(a) }}
{{ responsible_ai_badges(a) }}
{{ a.review_date or (a.updated_at | fmt_time) }}
{% elif counts.all == 0 %} {% call empty_state("No assessments yet", "/assessments/new", "New Assessment", "u-mt-6") %} An assessment groups the security checks for one application. Create one, then choose which checks to run on it. {% endcall %} {% else %}
No assessments match these filters. Clear filters
{% endif %} {% endblock %}