From 7d8580b4b151f1357632a26739287b9e4e99fc06 Mon Sep 17 00:00:00 2001 From: Dan McGee Date: Wed, 21 Mar 2012 15:52:40 -0500 Subject: Add number of keys signed to master keys page This really just makes me look bad, but an interesting fact none the less for people to look at. Signed-off-by: Dan McGee --- devel/models.py | 6 ++---- public/views.py | 15 ++++++++++++--- templates/public/keys.html | 4 +++- 3 files changed, 17 insertions(+), 8 deletions(-) diff --git a/devel/models.py b/devel/models.py index a9a2efc..2fc6106 100644 --- a/devel/models.py +++ b/devel/models.py @@ -24,10 +24,8 @@ class MasterKey(models.Model): class PGPSignature(models.Model): - signer = PGPKeyField(max_length=40, verbose_name="Signer key fingerprint", - help_text="consists of 40 hex digits; use `gpg --fingerprint`") - signee = PGPKeyField(max_length=40, verbose_name="Signee key fingerprint", - help_text="consists of 40 hex digits; use `gpg --fingerprint`") + signer = PGPKeyField(max_length=40, verbose_name="Signer key fingerprint") + signee = PGPKeyField(max_length=40, verbose_name="Signee key fingerprint") created = models.DateField() expires = models.DateField(null=True, blank=True) valid = models.BooleanField(default=True) diff --git a/public/views.py b/public/views.py index 1f7006a..1e1ffc6 100644 --- a/public/views.py +++ b/public/views.py @@ -1,11 +1,12 @@ from django.conf import settings from django.contrib.auth.models import User +from django.db.models import Count from django.http import Http404 from django.views.decorators.cache import cache_control from django.views.generic import list_detail from django.views.generic.simple import direct_to_template -from devel.models import MasterKey +from devel.models import MasterKey, PGPSignature from main.models import Arch, Repo, Donor from mirrors.models import MirrorUrl from news.models import News @@ -87,9 +88,17 @@ def feeds(request): @cache_control(max_age=300) def keys(request): + master_keys = MasterKey.objects.select_related('owner', 'revoker', + 'owner__userprofile', 'revoker__userprofile').filter( + revoked__isnull=True) + sig_counts = PGPSignature.objects.filter(valid=True, + expires__isnull=True).values_list('signer').annotate( + Count('signer')) + sig_counts = dict((key_id[-16:], ct) for key_id, ct in sig_counts) + for key in master_keys: + key.signature_count = sig_counts.get(key.pgp_key[-16:], 0) context = { - 'keys': MasterKey.objects.select_related('owner', 'revoker', - 'owner__userprofile', 'revoker__userprofile').all(), + 'keys': master_keys, } return direct_to_template(request, 'public/keys.html', context) diff --git a/templates/public/keys.html b/templates/public/keys.html index 2e7fceb..6b06cc3 100644 --- a/templates/public/keys.html +++ b/templates/public/keys.html @@ -34,13 +34,14 @@ Owner's Signing Key Revoker Revoker's Signing Key + Developer/TU Keys Signed {% for key in keys %} {% pgp_key_link key.pgp_key %} - {{ key.pgp_key|pgp_fingerprint }} + {{ key.pgp_key|pgp_fingerprint }} {% with key.owner.userprofile as owner_profile %} {{ key.owner.get_full_name }} {% pgp_key_link owner_profile.pgp_key %} @@ -49,6 +50,7 @@ {{ key.revoker.get_full_name }} {% pgp_key_link revoker_profile.pgp_key %} {% endwith %} + {{ key.signature_count }} {% endfor %} -- cgit v1.2.3-24-g4f1b