[PATCH] Make the submitter name link to a query for that submitter

Michael Ellerman mpe at ellerman.id.au
Mon Mar 23 17:56:22 AEDT 2015

Currently the submitter name is rendered as a mailto: link. This is
possibly useful in some circumstances, but in my experience is not
usually what I want. Although it opens a mail to the submitter, it
doesn't include any of the patch context, so is not very helpful.

Instead the submitter link can be a link to a query for patches by that
submitter. In my experience that is more useful, ie. when looking at a
single patch for a submitter you can then quickly get the list of all
patches by them.

So do that conversion.

In order to do it we need to know the current project, so that becomes a
parameter to personify. I believe the url reversal is correct, though
it's not pretty, and pulling SubmitterFilter.param out feels a little
wrong, but is the best solution I could come up with.

Signed-off-by: Michael Ellerman <mpe at ellerman.id.au>
 apps/patchwork/templatetags/person.py | 9 ++++++---
 templates/patchwork/patch-list.html   | 2 +-
 templates/patchwork/patch.html        | 4 ++--
 3 files changed, 9 insertions(+), 6 deletions(-)

diff --git a/apps/patchwork/templatetags/person.py b/apps/patchwork/templatetags/person.py
index 07c356a9633d..c337c7442de7 100644
--- a/apps/patchwork/templatetags/person.py
+++ b/apps/patchwork/templatetags/person.py
@@ -20,20 +20,23 @@
 from django import template
 from django.utils.html import escape
 from django.utils.safestring import mark_safe
+from django.core.urlresolvers import reverse
+from patchwork.filters import SubmitterFilter
 import re
 register = template.Library()
-def personify(person):
+def personify(person, project):
     if person.name:
         linktext = escape(person.name)
         linktext = escape(person.email)
-    str = '<a href="mailto:%s">%s</a>' % \
-                (escape(person.email), linktext)
+    url = reverse('patchwork.views.patch.list', kwargs = {'project_id' : project.linkname})
+    str = '<a href="%s?%s=%s">%s</a>' % \
+                (url, SubmitterFilter.param, escape(person.id), linktext)
     return mark_safe(str)
diff --git a/templates/patchwork/patch-list.html b/templates/patchwork/patch-list.html
index 59adbe301721..f8049f7bcabb 100644
--- a/templates/patchwork/patch-list.html
+++ b/templates/patchwork/patch-list.html
@@ -146,7 +146,7 @@
    <td><a href="{% url 'patchwork.views.patch.patch' patch_id=patch.id %}"
      >{{ patch.name|default:"[no subject]" }}</a></td>
    <td>{{ patch.date|date:"Y-m-d" }}</td>
-   <td>{{ patch.submitter|personify }}</td>
+   <td>{{ patch.submitter|personify:project }}</td>
    <td>{{ patch.delegate.username }}</td>
    <td>{{ patch.state }}</td>
diff --git a/templates/patchwork/patch.html b/templates/patchwork/patch.html
index c04e32b4dda2..be831e9c31f5 100644
--- a/templates/patchwork/patch.html
+++ b/templates/patchwork/patch.html
@@ -30,7 +30,7 @@ function toggle_headers(link_id, headers_id)
 <table class="patchmeta">
-  <td>{{ patch.submitter|personify }}</td>
+  <td>{{ patch.submitter|personify:project }}</td>
@@ -179,7 +179,7 @@ function toggle_headers(link_id, headers_id)
 {% for comment in patch.comments %}
 <div class="comment">
-<div class="meta">{{ comment.submitter|personify }} - {{comment.date}}</div>
+<div class="meta">{{ comment.submitter|personify:project }} - {{comment.date}}</div>
 <pre class="content">
 {{ comment|commentsyntax }}

More information about the Patchwork mailing list