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@ellerman.id.au>
Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
from django import template
from django.utils.html import escape
from django.utils.safestring import mark_safe
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()
@register.filter
import re
register = template.Library()
@register.filter
+def personify(person, project):
if person.name:
linktext = escape(person.name)
else:
linktext = escape(person.email)
if person.name:
linktext = escape(person.name)
else:
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)
<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><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>
</tr>
<td>{{ patch.delegate.username }}</td>
<td>{{ patch.state }}</td>
</tr>
<table class="patchmeta">
<tr>
<th>Submitter</th>
<table class="patchmeta">
<tr>
<th>Submitter</th>
- <td>{{ patch.submitter|personify }}</td>
+ <td>{{ patch.submitter|personify:project }}</td>
<h2>Comments</h2>
{% for comment in patch.comments %}
<div class="comment">
<h2>Comments</h2>
{% 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 }}
</pre>
<pre class="content">
{{ comment|commentsyntax }}
</pre>