summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Donnellan <andrew.donnellan@au1.ibm.com>2017-12-19 16:32:03 +1100
committerStephen Finucane <stephen@that.guru>2018-01-04 13:31:28 +0000
commit662400d03222ae46b83d256c0ea7b125a2440752 (patch)
treefa7d9a8338a76b1b36a61552e64151450a120ca5
parent79934782a4ca00f193fe2a7340aba6281bed359d (diff)
downloadpatchwork-662400d03222ae46b83d256c0ea7b125a2440752.tar
patchwork-662400d03222ae46b83d256c0ea7b125a2440752.tar.gz
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 <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> Signed-off-by: Stephen Finucane <stephen@that.guru>
-rw-r--r--patchwork/fixtures/default_tags.xml5
-rw-r--r--patchwork/migrations/0020_tag_show_column.py20
-rw-r--r--patchwork/models.py3
-rw-r--r--patchwork/templatetags/patch.py2
-rw-r--r--patchwork/templatetags/project.py5
5 files changed, 31 insertions, 4 deletions
diff --git a/patchwork/fixtures/default_tags.xml b/patchwork/fixtures/default_tags.xml
index ca5ccfd..baffd43 100644
--- a/patchwork/fixtures/default_tags.xml
+++ b/patchwork/fixtures/default_tags.xml
@@ -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>
diff --git a/patchwork/migrations/0020_tag_show_column.py b/patchwork/migrations/0020_tag_show_column.py
new file mode 100644
index 0000000..62fe80a
--- /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 7d413d9..b746588 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 c65bd5e..4350e09 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 689b486..32d8011 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('<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])))