Add "View Networks": front-facing subnet browse + detail with attached devices
Some checks failed
CI / backend (push) Successful in 1m38s
CI / naming (push) Successful in 1s
CI / frontend (push) Successful in 7s
CI / migrations-mysql (push) Failing after 7s

Subnets previously lived only under Settings, easily confused with the Network
Devices asset list. Add a front-facing browse + detail:

- Nav: rename "Network" -> "Network Devices"; add "View Networks" (subnets), both
  under Assets (network plugin get_navigation_items; frontend fallback matched).
- /networks (SubnetsBrowse): all subnets with name / CIDR / type / VLAN / notes,
  searchable, row-click to detail.
- /networks/:id (SubnetDetail): the subnet (CIDR, network address, type, VLAN,
  gateway, notes) plus the network devices whose primary IP falls inside its
  CIDR - get_subnet now computes that membership in Python (a device's IP lives
  in a Communication row, so it is not a plain SQL join).

Verified on the import DB: 37 networks list (real WJ subnets), detail renders.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
cproudlock
2026-07-13 14:06:47 -04:00
parent 5f51aa2383
commit dd541fba0a
6 changed files with 219 additions and 4 deletions

View File

@@ -208,11 +208,17 @@ class NetworkPlugin(BasePlugin):
"""Return navigation menu items."""
return [
{
'name': 'Network',
'name': 'Network Devices',
'icon': 'network-wired',
'route': '/network',
'position': 18,
},
{
'name': 'View Networks',
'icon': 'globe',
'route': '/networks',
'position': 19,
},
]
def get_permissions(self) -> List: