atr/templates/committee-view.html (100 lines of code) (raw):
{% extends "layouts/base.html" %}
{% block title %}
Committee ~ ATR
{% endblock title %}
{% block description %}
Information regarding an Apache Committee.
{% endblock description %}
{% block content %}
<h1>{{ committee.display_name }}</h1>
<div class="card mb-4">
<div class="card-header bg-light">
<h3 class="mb-2">Members</h3>
</div>
<div class="card-body">
<div class="d-flex flex-wrap gap-3 small mb-1">
<span>Committee members: {{ committee.committee_members|length }}</span>
<span class="d-flex align-items-center">
<span>Committers: {{ committee.committers|length }}</span>
</span>
</div>
</div>
</div>
<div class="card mb-4">
<div class="card-header bg-light">
<h3 class="mb-0">Projects</h3>
</div>
<div class="card-body">
<ul>
{% for project in committee.projects %}
<li>
<a href="{{ as_url(routes.projects.view, name=project.name) }}">{{ project.display_name }}</a>
</li>
{% endfor %}
</ul>
</div>
</div>
<div class="card mb-4">
<div class="card-header bg-light">
<h3 class="mb-2">Signing keys</h3>
</div>
<div class="card-body">
<div class="row row-cols-1 g-4">
{% for key in committee.public_signing_keys %}
<div class="col">
<div class="card h-100 border">
<div class="card-body">
<table class="table mb-0">
<tbody>
<tr>
<th class="border-0">Fingerprint</th>
<td class="text-break border-0">{{ key.fingerprint }}</td>
</tr>
<tr>
<th class="border-0">Key Type</th>
<td class="text-break border-0">{{ algorithms[key.algorithm] }} ({{ key.length }} bits)</td>
</tr>
<tr>
<th class="border-0">Created</th>
<td class="text-break border-0">{{ key.created.strftime("%Y-%m-%d %H:%M:%S") }}</td>
</tr>
<tr>
<th class="border-0">Expires</th>
<td class="text-break border-0">
{% if key.expires %}
{% set days_until_expiry = (key.expires - now).days %}
{% if days_until_expiry < 0 %}
<span class="text-danger fw-bold">
{{ key.expires.strftime("%Y-%m-%d %H:%M:%S") }}
<span class="badge bg-danger text-white ms-2">Expired</span>
</span>
{% elif days_until_expiry <= 30 %}
<span class="text-warning fw-bold">
{{ key.expires.strftime("%Y-%m-%d %H:%M:%S") }}
<span class="badge bg-warning text-dark ms-2">Expires in {{ days_until_expiry }} days</span>
</span>
{% else %}
{{ key.expires.strftime("%Y-%m-%d %H:%M:%S") }}
{% endif %}
{% else %}
Never
{% endif %}
</td>
</tr>
<tr>
<th class="border-0">User ID</th>
<td class="text-break border-0">{{ key.declared_uid or 'Not specified' }}</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
{% endfor %}
</div>
</div>
</div>
{% endblock content %}
{% block javascripts %}
{{ super() }}
{% endblock javascripts %}