From 5da8fa6ce1ae04302fca2efb3aa99c8e18f291fa Mon Sep 17 00:00:00 2001 From: Jelle van der Waa Date: Sat, 23 May 2020 01:23:55 +0200 Subject: Add PGP key to the Release model Add a pgp_key field to the Release model so we can display the PGP fingerprint of the used PGP key on the download page. Closes: #282 --- releng/migrations/0003_release_pgp_key.py | 19 +++++++++++++++++++ releng/models.py | 3 +++ templates/public/download.html | 2 ++ templates/releng/release_detail.html | 2 ++ 4 files changed, 26 insertions(+) create mode 100644 releng/migrations/0003_release_pgp_key.py diff --git a/releng/migrations/0003_release_pgp_key.py b/releng/migrations/0003_release_pgp_key.py new file mode 100644 index 00000000..a211a798 --- /dev/null +++ b/releng/migrations/0003_release_pgp_key.py @@ -0,0 +1,19 @@ +# Generated by Django 3.0.6 on 2020-05-22 22:14 + +import devel.fields +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('releng', '0002_auto_20181216_1605'), + ] + + operations = [ + migrations.AddField( + model_name='release', + name='pgp_key', + field=devel.fields.PGPKeyField(blank=True, help_text='consists of 40 hex digits; use `gpg --fingerprint`', max_length=40, null=True, verbose_name='PGP key fingerprint'), + ), + ] diff --git a/releng/models.py b/releng/models.py index 60a70edc..aad75f11 100644 --- a/releng/models.py +++ b/releng/models.py @@ -11,6 +11,7 @@ from django.db.models.signals import pre_save from django.utils.safestring import mark_safe from main.utils import set_created_field, parse_markdown +from devel.fields import PGPKeyField class Release(models.Model): @@ -19,6 +20,8 @@ class Release(models.Model): kernel_version = models.CharField(max_length=50, blank=True) md5_sum = models.CharField('MD5 digest', max_length=32, blank=True) sha1_sum = models.CharField('SHA1 digest', max_length=40, blank=True) + pgp_key = PGPKeyField(max_length=40, verbose_name="PGP key fingerprint", null=True, blank=True, + help_text="consists of 40 hex digits; use `gpg --fingerprint`") created = models.DateTimeField(editable=False) last_modified = models.DateTimeField(editable=False) available = models.BooleanField(default=True) diff --git a/templates/public/download.html b/templates/public/download.html index 944fe96d..15c31a90 100644 --- a/templates/public/download.html +++ b/templates/public/download.html @@ -2,6 +2,7 @@ {% load cache %} {% load static %} {% load flags %} +{% load pgp %} {% block title %}Arch Linux - Downloads{% endblock %} @@ -98,6 +99,7 @@ diff --git a/templates/releng/release_detail.html b/templates/releng/release_detail.html index 11155c0c..2f81f416 100644 --- a/templates/releng/release_detail.html +++ b/templates/releng/release_detail.html @@ -1,5 +1,6 @@ {% extends "base.html" %} {% load static %} +{% load pgp %} {% block title %}Arch Linux - Release: {{ release.version }}{% endblock %} @@ -21,6 +22,7 @@ {% endif %} {% if release.md5_sum %}
  • MD5: {{ release.md5_sum }}
  • {% endif %} {% if release.sha1_sum %}
  • SHA1: {{ release.sha1_sum }}
  • {% endif %} + {% if release.pgp_key %}
  • PGP fingerprint: {% pgp_key_link release.pgp_key %}
  • {% endif %} {% if release.info %} -- cgit v1.2.3-55-g3dc8