mirror of
https://github.com/netbox-community/netbox.git
synced 2025-08-25 08:46:10 -06:00
Introduce ArrayColumn for choice lists
This commit is contained in:
parent
9aff7e7103
commit
1f5b583425
@ -5,7 +5,7 @@ from django.conf import settings
|
|||||||
from django.utils.translation import gettext as _
|
from django.utils.translation import gettext as _
|
||||||
|
|
||||||
from extras.models import *
|
from extras.models import *
|
||||||
from netbox.tables import NetBoxTable, columns
|
from netbox.tables import ArrayColumn, NetBoxTable, columns
|
||||||
from .template_code import *
|
from .template_code import *
|
||||||
|
|
||||||
__all__ = (
|
__all__ = (
|
||||||
@ -66,6 +66,10 @@ class CustomFieldTable(NetBoxTable):
|
|||||||
required = columns.BooleanColumn()
|
required = columns.BooleanColumn()
|
||||||
ui_visibility = columns.ChoiceFieldColumn(verbose_name="UI visibility")
|
ui_visibility = columns.ChoiceFieldColumn(verbose_name="UI visibility")
|
||||||
description = columns.MarkdownColumn()
|
description = columns.MarkdownColumn()
|
||||||
|
choices = ArrayColumn(
|
||||||
|
orderable=False,
|
||||||
|
verbose_name=_('Choices')
|
||||||
|
)
|
||||||
is_cloneable = columns.BooleanColumn()
|
is_cloneable = columns.BooleanColumn()
|
||||||
|
|
||||||
class Meta(NetBoxTable.Meta):
|
class Meta(NetBoxTable.Meta):
|
||||||
@ -82,9 +86,8 @@ class CustomFieldChoiceSetTable(NetBoxTable):
|
|||||||
name = tables.Column(
|
name = tables.Column(
|
||||||
linkify=True
|
linkify=True
|
||||||
)
|
)
|
||||||
choices = tables.TemplateColumn(
|
choices = ArrayColumn(
|
||||||
accessor=tables.A('extra_choices'),
|
accessor=tables.A('extra_choices'),
|
||||||
template_code='{{ value|join:", " }}',
|
|
||||||
orderable=False,
|
orderable=False,
|
||||||
verbose_name=_('Choices')
|
verbose_name=_('Choices')
|
||||||
)
|
)
|
||||||
@ -94,12 +97,13 @@ class CustomFieldChoiceSetTable(NetBoxTable):
|
|||||||
orderable=False,
|
orderable=False,
|
||||||
verbose_name=_('Count')
|
verbose_name=_('Count')
|
||||||
)
|
)
|
||||||
|
order_alphabetically = columns.BooleanColumn()
|
||||||
|
|
||||||
class Meta(NetBoxTable.Meta):
|
class Meta(NetBoxTable.Meta):
|
||||||
model = CustomFieldChoiceSet
|
model = CustomFieldChoiceSet
|
||||||
fields = (
|
fields = (
|
||||||
'pk', 'id', 'name', 'description', 'choice_count', 'choices', 'extra_choices', 'order_alphabetically',
|
'pk', 'id', 'name', 'description', 'choice_count', 'choices', 'order_alphabetically', 'created',
|
||||||
'created', 'last_updated',
|
'last_updated',
|
||||||
)
|
)
|
||||||
default_columns = ('pk', 'name', 'choice_count', 'description')
|
default_columns = ('pk', 'name', 'choice_count', 'description')
|
||||||
|
|
||||||
|
@ -21,6 +21,7 @@ from utilities.utils import content_type_identifier, content_type_name, get_view
|
|||||||
|
|
||||||
__all__ = (
|
__all__ = (
|
||||||
'ActionsColumn',
|
'ActionsColumn',
|
||||||
|
'ArrayColumn',
|
||||||
'BooleanColumn',
|
'BooleanColumn',
|
||||||
'ChoiceFieldColumn',
|
'ChoiceFieldColumn',
|
||||||
'ColorColumn',
|
'ColorColumn',
|
||||||
@ -591,3 +592,11 @@ class MarkdownColumn(tables.TemplateColumn):
|
|||||||
|
|
||||||
def value(self, value):
|
def value(self, value):
|
||||||
return value
|
return value
|
||||||
|
|
||||||
|
|
||||||
|
class ArrayColumn(tables.Column):
|
||||||
|
"""
|
||||||
|
List array items as a comma-separated list.
|
||||||
|
"""
|
||||||
|
def render(self, value):
|
||||||
|
return ', '.join(value)
|
||||||
|
Loading…
Reference in New Issue
Block a user