[PATCH 2/6] models: Add list archive lookup
Andrew Donnellan
ajd at linux.ibm.com
Thu Aug 8 12:40:11 AEST 2019
Add a list_archive_lookup_prefix field to Project, which will contain the
address of a Message-ID redirector, e.g. "https://lore.kernel.org/r/".
Add a list_archive_url property to Submission and Comment, to generate an
archive lookup URL based on the Message-ID.
We will use this to display links to mailing list archives.
Suggested-by: Takashi Iwai <tiwai at suse.de>
Signed-off-by: Andrew Donnellan <ajd at linux.ibm.com>
---
...0035_project_list_archive_lookup_prefix.py | 20 ++++++++++++++++
patchwork/models.py | 23 +++++++++++++++++++
2 files changed, 43 insertions(+)
create mode 100644 patchwork/migrations/0035_project_list_archive_lookup_prefix.py
diff --git a/patchwork/migrations/0035_project_list_archive_lookup_prefix.py b/patchwork/migrations/0035_project_list_archive_lookup_prefix.py
new file mode 100644
index 000000000000..7d5f94a462a5
--- /dev/null
+++ b/patchwork/migrations/0035_project_list_archive_lookup_prefix.py
@@ -0,0 +1,20 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.11.21 on 2019-07-01 12:57
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('patchwork', '0034_project_list_archive_url'),
+ ]
+
+ operations = [
+ migrations.AddField(
+ model_name='project',
+ name='list_archive_lookup_prefix',
+ field=models.CharField(blank=True, help_text=b"URL prefix for the list archive's Message-ID redirector. To generate the list archive link for a patch, the Message-ID is appended to the end of this prefix.", max_length=2000),
+ ),
+ ]
diff --git a/patchwork/models.py b/patchwork/models.py
index e43b062b6f89..04d87a459e3a 100644
--- a/patchwork/models.py
+++ b/patchwork/models.py
@@ -78,6 +78,11 @@ class Project(models.Model):
scm_url = models.CharField(max_length=2000, blank=True)
webscm_url = models.CharField(max_length=2000, blank=True)
list_archive_url = models.CharField(max_length=2000, blank=True)
+ list_archive_lookup_prefix = models.CharField(
+ max_length=2000, blank=True,
+ help_text="URL prefix for the list archive's Message-ID redirector. "
+ "To generate the list archive link for a patch, the Message-ID is "
+ "appended to the end of this prefix.")
# configuration options
@@ -358,6 +363,15 @@ class Submission(FilenameMixin, EmailMixin, models.Model):
name = models.CharField(max_length=255)
+ @property
+ def list_archive_url(self):
+ if not self.project.list_archive_lookup_prefix:
+ return None
+ if not self.msgid:
+ return None
+ return self.project.list_archive_lookup_prefix + \
+ self.msgid.strip('<>')
+
# patchwork metadata
def is_editable(self, user):
@@ -591,6 +605,15 @@ class Comment(EmailMixin, models.Model):
related_query_name='comment',
on_delete=models.CASCADE)
+ @property
+ def list_archive_url(self):
+ if not self.submission.project.list_archive_lookup_prefix:
+ return None
+ if not self.msgid:
+ return None
+ return self.project.list_archive_lookup_prefix + \
+ self.msgid.strip('<>')
+
def get_absolute_url(self):
return reverse('comment-redirect', kwargs={'comment_id': self.id})
--
2.20.1
More information about the Patchwork
mailing list