@@ -4,15 +4,18 @@
<field type="CharField" name="name">Acked-by</field>
<field type="CharField" name="pattern">^Acked-by:</field>
<field type="CharField" name="abbrev">A</field>
+ <field type="BooleanField" name="show_column">True</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>
+ <field type="BooleanField" name="show_column">True</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>
+ <field type="BooleanField" name="show_column">True</field>
</object>
-</django-objects>
\ No newline at end of file
+</django-objects>
new file mode 100644
@@ -0,0 +1,20 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.11.8 on 2017-12-19 04:03
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('patchwork', '0020_auto_20171219_0333'),
+ ]
+
+ operations = [
+ migrations.AddField(
+ model_name='tag',
+ name='show_column',
+ field=models.BooleanField(default=True, help_text=b"Show a column displaying this tag's count in the patch list view"),
+ ),
+ ]
@@ -230,6 +230,9 @@ class Tag(models.Model):
abbrev = models.CharField(
max_length=2, unique=True, help_text='Short (one-or-two letter)'
' abbreviation for the tag, used in table column headers')
+ show_column = models.BooleanField(help_text='Show a column displaying this '
+ 'tag\'s count in the patch list view',
+ default=True)
@property
def attr_name(self):
@@ -34,7 +34,7 @@ register = template.Library()
def patch_tags(patch):
counts = []
titles = []
- for tag in patch.project.tags:
+ for tag in [t for t in patch.project.tags if t.show_column]:
count = getattr(patch, tag.attr_name)
titles.append('%d %s' % (count, tag.name))
if count == 0:
@@ -28,6 +28,7 @@ register = template.Library()
@register.simple_tag(takes_context=True)
def project_tags(context):
+ tags = [t for t in context['project'].tags if t.show_column]
return mark_safe('<span title="%s">%s</span>' % (
- ' / '.join([tag.name for tag in context['project'].tags]),
- '/'.join([tag.abbrev for tag in context['project'].tags])))
+ ' / '.join([tag.name for tag in tags]),
+ '/'.join([tag.abbrev for tag in tags])))
Add a field, show_column, to the Tag model to determine whether the tag gets a tag count column in the patch list view. This allows the creation of tags that will be collated when generating mboxes but won't take up space in the patch list. show_column will default to True to maintain the current behaviour by default. Suggested-by: Michael Ellerman <mpe@ellerman.id.au> Closes: #142 ("Ability to add tags that don't also have a column in the UI") Signed-off-by: Andrew Donnellan <andrew.donnellan@au1.ibm.com> --- patchwork/fixtures/default_tags.xml | 5 ++++- patchwork/migrations/0021_tag_show_column.py | 20 ++++++++++++++++++++ patchwork/models.py | 3 +++ patchwork/templatetags/patch.py | 2 +- patchwork/templatetags/project.py | 5 +++-- 5 files changed, 31 insertions(+), 4 deletions(-) create mode 100644 patchwork/migrations/0021_tag_show_column.py