Flesh out device layout
Some checks are pending
CI / build (20.x, 3.12) (push) Waiting to run
CI / build (20.x, 3.13) (push) Waiting to run

This commit is contained in:
Jeremy Stretch
2025-11-05 16:56:53 -05:00
parent 1d2aef71b2
commit e9777d3193
4 changed files with 101 additions and 3 deletions

View File

@@ -2439,6 +2439,44 @@ class DeviceListView(generic.ObjectListView):
@register_model_view(Device)
class DeviceView(generic.ObjectView):
queryset = Device.objects.all()
layout = layout.SimpleLayout(
left_panels=[
panels.DevicePanel(),
panels.VirtualChassisMembersPanel(),
CustomFieldsPanel(),
TagsPanel(),
CommentsPanel(),
ObjectsTablePanel(
model='dcim.VirtualDeviceContext',
filters={'device_id': lambda ctx: ctx['object'].pk},
actions=[
actions.AddObject('dcim.VirtualDeviceContext', url_params={'device': lambda ctx: ctx['object'].pk}),
],
),
],
right_panels=[
panels.DeviceManagementPanel(),
# TODO: Power utilization
ObjectsTablePanel(
model='ipam.Service',
title=_('Application Services'),
filters={'device_id': lambda ctx: ctx['object'].pk},
actions=[
actions.AddObject(
'ipam.Service',
url_params={
'parent_object_type': lambda ctx: ContentType.objects.get_for_model(ctx['object']).pk,
'parent': lambda ctx: ctx['object'].pk
}
),
],
),
ImageAttachmentsPanel(),
panels.DeviceDimensionsPanel(title=_('Dimensions')),
# TODO: Rack elevations
# TemplatePanel('dcim/panels/rack_elevations.html'),
],
)
def get_extra_context(self, request, instance):
# VirtualChassis members