Coverage for core/tables/columns.py: 57%
21 statements
« prev ^ index » next coverage.py v7.15.2, created at 2026-10-10 18:35 +0000
« prev ^ index » next coverage.py v7.15.2, created at 2026-10-10 18:35 +0000
1import django_tables2 as tables
2from django.utils.safestring import mark_safe
4from netbox.registry import registry
6__all__ = (
7 'BackendTypeColumn',
8 'BadgeColumn',
9)
12class BackendTypeColumn(tables.Column):
13 """
14 Display a data backend type.
15 """
16 def render(self, value):
17 if backend := registry['data_backends'].get(value):
18 return backend.label
19 return value
21 def value(self, value):
22 return value
25class BadgeColumn(tables.Column):
26 """
27 Render a colored badge for a value.
29 Args:
30 badges: A dictionary mapping of values to core.constants.Badge instances.
31 """
32 def __init__(self, badges, *args, **kwargs):
33 super().__init__(*args, **kwargs)
34 self.badges = badges
36 def render(self, value):
37 badge = self.badges.get(value)
38 return mark_safe(f'<span class="badge text-bg-{badge.color}">{badge.label}</span>')
40 def value(self, value):
41 badge = self.badges.get(value)
42 return badge.label