path: root/patchwork/fixtures
diff options
authorJeremy Kerr <>2015-05-27 09:56:36 +0800
committerJeremy Kerr <>2015-05-28 09:05:45 +0800
commit3b8a61c68fa61eadebf7b19329e8d3bffde9e6b4 (patch)
tree88f53364498523371c2bd1fc33b2e0dbbbb41372 /patchwork/fixtures
parentdaa3ae42eee5e569881070bcc2958b361743f70a (diff)
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 <>
Diffstat (limited to 'patchwork/fixtures')
1 files changed, 18 insertions, 0 deletions
diff --git a/patchwork/fixtures/default_tags.xml b/patchwork/fixtures/default_tags.xml
new file mode 100644
index 0000000..ca5ccfd
--- /dev/null
+++ b/patchwork/fixtures/default_tags.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="utf-8"?>
+<django-objects version="1.0">
+ <object pk="1" model="patchwork.tag">
+ <field type="CharField" name="name">Acked-by</field>
+ <field type="CharField" name="pattern">^Acked-by:</field>
+ <field type="CharField" name="abbrev">A</field>
+ </object>
+ <object pk="2" model="patchwork.tag">
+ <field type="CharField" name="name">Reviewed-by</field>
+ <field type="CharField" name="pattern">^Reviewed-by:</field>
+ <field type="CharField" name="abbrev">R</field>
+ </object>
+ <object pk="3" model="patchwork.tag">
+ <field type="CharField" name="name">Tested-by</field>
+ <field type="CharField" name="pattern">^Tested-by:</field>
+ <field type="CharField" name="abbrev">T</field>
+ </object>
+</django-objects> \ No newline at end of file