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 %}