From: Andrew Donnellan Date: Tue, 19 Dec 2017 05:32:03 +0000 (+1100) Subject: models, templatetags: Make tag count column in patch list optional per tag X-Git-Tag: v2.1.0-rc1~95 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=662400d03222ae46b83d256c0ea7b125a2440752;p=thirdparty%2Fpatchwork.git models, templatetags: Make tag count column in patch list optional per tag 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 Closes: #142 ("Ability to add tags that don't also have a column in the UI") Signed-off-by: Andrew Donnellan Signed-off-by: Stephen Finucane --- diff --git a/patchwork/fixtures/default_tags.xml b/patchwork/fixtures/default_tags.xml index ca5ccfd5..baffd43c 100644 --- a/patchwork/fixtures/default_tags.xml +++ b/patchwork/fixtures/default_tags.xml @@ -4,15 +4,18 @@ Acked-by ^Acked-by: A + True Reviewed-by ^Reviewed-by: R + True Tested-by ^Tested-by: T + True - \ No newline at end of file + diff --git a/patchwork/migrations/0020_tag_show_column.py b/patchwork/migrations/0020_tag_show_column.py new file mode 100644 index 00000000..62fe80a3 --- /dev/null +++ b/patchwork/migrations/0020_tag_show_column.py @@ -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', '0019_userprofile_show_ids'), + ] + + 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"), + ), + ] diff --git a/patchwork/models.py b/patchwork/models.py index 7d413d93..b746588e 100644 --- a/patchwork/models.py +++ b/patchwork/models.py @@ -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): diff --git a/patchwork/templatetags/patch.py b/patchwork/templatetags/patch.py index c65bd5ea..4350e092 100644 --- a/patchwork/templatetags/patch.py +++ b/patchwork/templatetags/patch.py @@ -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: diff --git a/patchwork/templatetags/project.py b/patchwork/templatetags/project.py index 689b4860..32d8011b 100644 --- a/patchwork/templatetags/project.py +++ b/patchwork/templatetags/project.py @@ -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('%s' % ( - ' / '.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])))