From 3b8a61c68fa61eadebf7b19329e8d3bffde9e6b4 Mon Sep 17 00:00:00 2001 From: Jeremy Kerr Date: Wed, 27 May 2015 09:56:36 +0800 Subject: Add patch tag infrastructure This change add patch 'tags', eg 'Acked-by' / 'Reviewed-by', etc., to patchwork. Tag parsing is implemented in the patch parser's extract_tags function, which returns a Counter object of the tags in a comment. These are stored in the PatchTag (keyed to Tag) objects associated with each patch. We need to ensure that the main patch lists do not cause per-patch queries on the Patch.tags ManyToManyField (this would result in ~500 queries per page), so we introduce a new QuerySet (and Manager) for Patch, adding a with_tag_counts() method to populate the tag counts in a single query. As users may be migrating from previous patchwork versions (ie, with no tag counts in the database), we add a 'retag' management command. Signed-off-by: Jeremy Kerr --- patchwork/templates/patchwork/patch-list.html | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'patchwork/templates/patchwork') diff --git a/patchwork/templates/patchwork/patch-list.html b/patchwork/templates/patchwork/patch-list.html index 675f67f..718949e 100644 --- a/patchwork/templates/patchwork/patch-list.html +++ b/patchwork/templates/patchwork/patch-list.html @@ -1,5 +1,6 @@ {% load person %} {% load listurl %} +{% load patch %} {% load static %} {% include "patchwork/pagination.html" %} @@ -68,6 +69,12 @@ {% endifequal %} + + {% for tag in project.tags %}{{tag.abbrev}}{% if not forloop.last %}/{% endif %}{% endfor %} + + {% ifequal order.name "date" %} {{ patch.name|default:"[no subject]" }} + {{ patch|patch_tags }} {{ patch.date|date:"Y-m-d" }} {{ patch.submitter|personify:project }} {{ patch.delegate.username }} @@ -259,7 +267,7 @@ {% else %} - No patches to display + No patches to display {% endif %} -- cgit v1.2.3