Просмотр исходного кода

Closes #8517: Render boolean custom fields as icons in object tables

jeremystretch 4 лет назад
Родитель
Сommit
db3f478598
2 измененных файлов с 12 добавлено и 1 удалено
  1. 1 0
      docs/release-notes/version-3.1.md
  2. 11 1
      netbox/utilities/tables.py

+ 1 - 0
docs/release-notes/version-3.1.md

@@ -12,6 +12,7 @@
 * [#8462](https://github.com/netbox-community/netbox/issues/8462) - Linkify manufacturer column in device type table
 * [#8476](https://github.com/netbox-community/netbox/issues/8476) - Bring the ASN Web UI up to the standard set by other objects
 * [#8494](https://github.com/netbox-community/netbox/issues/8494) - Include locations count under tenant view
+* [#8517](https://github.com/netbox-community/netbox/issues/8517) - Render boolean custom fields as icons in object tables
 
 ### Bug Fixes
 

+ 11 - 1
netbox/utilities/tables.py

@@ -414,13 +414,23 @@ class CustomFieldColumn(tables.Column):
     def render(self, value):
         if isinstance(value, list):
             return ', '.join(v for v in value)
+        elif self.customfield.type == CustomFieldTypeChoices.TYPE_BOOLEAN and value is True:
+            return mark_safe('<i class="mdi mdi-check-bold text-success"></i>')
+        elif self.customfield.type == CustomFieldTypeChoices.TYPE_BOOLEAN and value is False:
+            return mark_safe('<i class="mdi mdi-close-thick text-danger"></i>')
         elif self.customfield.type == CustomFieldTypeChoices.TYPE_URL:
-            # Linkify custom URLs
             return mark_safe(f'<a href="{value}">{value}</a>')
         if value is not None:
             return value
         return self.default
 
+    def value(self, value):
+        if isinstance(value, list):
+            return ','.join(v for v in value)
+        if value is not None:
+            return value
+        return self.default
+
 
 class CustomLinkColumn(tables.Column):
     """