From 82c6fb6e19e271282031735363262e49c8e2a885 Mon Sep 17 00:00:00 2001 From: Jeremy Stretch Date: Fri, 16 Oct 2020 16:00:25 -0400 Subject: [PATCH] Convert device inventory items list to table --- netbox/dcim/tables/devices.py | 21 ++++++++++ netbox/dcim/views.py | 5 ++- netbox/templates/dcim/device.html | 26 ++----------- netbox/templates/dcim/inc/inventoryitem.html | 40 -------------------- 4 files changed, 28 insertions(+), 64 deletions(-) delete mode 100644 netbox/templates/dcim/inc/inventoryitem.html diff --git a/netbox/dcim/tables/devices.py b/netbox/dcim/tables/devices.py index fed8041bb..e318babb0 100644 --- a/netbox/dcim/tables/devices.py +++ b/netbox/dcim/tables/devices.py @@ -26,6 +26,7 @@ __all__ = ( 'DeviceFrontPortTable', 'DeviceImportTable', 'DeviceInterfaceTable', + 'DeviceInventoryItemTable', 'DevicePowerPortTable', 'DevicePowerOutletTable', 'DeviceRearPortTable', @@ -566,6 +567,26 @@ class InventoryItemTable(DeviceComponentTable): default_columns = ('pk', 'device', 'name', 'label', 'manufacturer', 'part_id', 'serial', 'asset_tag') +class DeviceInventoryItemTable(DeviceBayTable): + name = tables.TemplateColumn( + template_code='' + '{{ value }}' + ) + actions = ButtonsColumn( + model=InventoryItem, + buttons=('edit', 'delete') + ) + + class Meta(DeviceComponentTable.Meta): + model = InventoryItem + fields = ( + 'pk', 'name', 'label', 'manufacturer', 'part_id', 'serial', 'asset_tag', 'description', 'tags', 'actions', + ) + default_columns = ( + 'pk', 'name', 'label', 'manufacturer', 'part_id', 'serial', 'asset_tag', 'description', 'actions', + ) + + # # Virtual chassis # diff --git a/netbox/dcim/views.py b/netbox/dcim/views.py index 54c29e836..fe652576b 100644 --- a/netbox/dcim/views.py +++ b/netbox/dcim/views.py @@ -1086,6 +1086,9 @@ class DeviceView(ObjectView): inventoryitems = InventoryItem.objects.restrict(request.user, 'view').filter( device=device ).prefetch_related('manufacturer') + inventoryitem_table = tables.DeviceInventoryItemTable(inventoryitems, orderable=False) + if request.user.has_perm('dcim.change_inventoryitem') or request.user.has_perm('dcim.delete_inventoryitem'): + devicebay_table.columns.show('pk') # Services services = Service.objects.restrict(request.user, 'view').filter(device=device) @@ -1112,7 +1115,7 @@ class DeviceView(ObjectView): 'frontport_table': frontport_table, 'rearport_table': rearport_table, 'devicebay_table': devicebay_table, - 'inventoryitems': inventoryitems, + 'inventoryitem_table': inventoryitem_table, 'services': services, 'secrets': secrets, 'vc_members': vc_members, diff --git a/netbox/templates/dcim/device.html b/netbox/templates/dcim/device.html index ae8636be1..d7b35d3d7 100644 --- a/netbox/templates/dcim/device.html +++ b/netbox/templates/dcim/device.html @@ -146,7 +146,7 @@ Device Bays {% badge devicebay_table.rows|length %}
  • - Inventory {% badge inventoryitems|length %} + Inventory {% badge inventoryitem_table.rows|length %}
  • @@ -785,28 +785,7 @@
    Inventory Items
    - - - - {% if perms.dcim.change_inventoryitem or perms.dcim.delete_inventoryitem %} - - {% endif %} - - - - - - - - - - - - {% for item in inventoryitems %} - {% include 'dcim/inc/inventoryitem.html' %} - {% endfor %} - -
    NameManufacturerPart IDSerial NumberAsset TagDiscoveredDescription
    + {% include 'responsive_table.html' with table=inventoryitem_table %} {% endif %} +
    diff --git a/netbox/templates/dcim/inc/inventoryitem.html b/netbox/templates/dcim/inc/inventoryitem.html deleted file mode 100644 index f7309fa59..000000000 --- a/netbox/templates/dcim/inc/inventoryitem.html +++ /dev/null @@ -1,40 +0,0 @@ -{% load helpers %} - - - {# Checkbox #} - {% if perms.dcim.change_inventoryitem or perms.dcim.delete_inventoryitem %} - - - - {% endif %} - - - {{ item }} - - - {% if item.manufacturer %} - {{ item.manufacturer }} - {% else %} - - {% endif %} - - {{ item.part_id|placeholder }} - {{ item.serial|placeholder }} - {{ item.asset_tag|placeholder }} - - {% if item.discovered %} - - {% else %} - - {% endif %} - - {{ item.description|placeholder }} - - {% if perms.dcim.change_inventoryitem %} - - {% endif %} - {% if perms.dcim.delete_inventoryitem %} - - {% endif %} - -