diff --git a/netbox/dcim/api/serializers.py b/netbox/dcim/api/serializers.py index 4f458fbc5..452ebb15d 100644 --- a/netbox/dcim/api/serializers.py +++ b/netbox/dcim/api/serializers.py @@ -226,7 +226,7 @@ class DeviceTypeSerializer(TaggitSerializer, CustomFieldModelSerializer): model = DeviceType fields = [ 'id', 'manufacturer', 'model', 'slug', 'part_number', 'u_height', 'is_full_depth', 'interface_ordering', - 'is_console_server', 'is_pdu', 'is_network_device', 'is_patch_panel', 'subdevice_role', 'comments', 'tags', + 'is_console_server', 'is_pdu', 'is_network_device', 'subdevice_role', 'comments', 'tags', 'custom_fields', 'created', 'last_updated', 'instance_count', ] diff --git a/netbox/dcim/forms.py b/netbox/dcim/forms.py index b0d5f95f2..e74551c2e 100644 --- a/netbox/dcim/forms.py +++ b/netbox/dcim/forms.py @@ -532,7 +532,7 @@ class DeviceTypeForm(BootstrapMixin, CustomFieldForm): model = DeviceType fields = [ 'manufacturer', 'model', 'slug', 'part_number', 'u_height', 'is_full_depth', 'is_console_server', 'is_pdu', - 'is_network_device', 'is_patch_panel', 'subdevice_role', 'interface_ordering', 'comments', 'tags', + 'is_network_device', 'subdevice_role', 'interface_ordering', 'comments', 'tags', ] labels = { 'interface_ordering': 'Order interfaces by', @@ -582,9 +582,6 @@ class DeviceTypeBulkEditForm(BootstrapMixin, AddRemoveTagsForm, CustomFieldBulkE is_network_device = forms.NullBooleanField( required=False, widget=BulkEditNullBooleanSelect, label='Is a network device' ) - is_patch_panel = forms.NullBooleanField( - required=False, widget=BulkEditNullBooleanSelect, label='Is a patch panel' - ) class Meta: nullable_fields = [] @@ -605,9 +602,6 @@ class DeviceTypeFilterForm(BootstrapMixin, CustomFieldFilterForm): is_network_device = forms.BooleanField( required=False, label='Is a network device', widget=forms.CheckboxInput(attrs={'value': 'True'}) ) - is_patch_panel = forms.BooleanField( - required=False, label='Is a patch panel', widget=forms.CheckboxInput(attrs={'value': 'True'}) - ) subdevice_role = forms.NullBooleanField( required=False, label='Subdevice role', widget=forms.Select(choices=( ('', '---------'), diff --git a/netbox/dcim/migrations/0065_front_rear_ports.py b/netbox/dcim/migrations/0065_front_rear_ports.py index 6cc4340f2..e3f2f290a 100644 --- a/netbox/dcim/migrations/0065_front_rear_ports.py +++ b/netbox/dcim/migrations/0065_front_rear_ports.py @@ -65,11 +65,6 @@ class Migration(migrations.Migration): 'ordering': ['device_type', 'name'], }, ), - migrations.AddField( - model_name='devicetype', - name='is_patch_panel', - field=models.BooleanField(default=False), - ), migrations.AddField( model_name='rearporttemplate', name='device_type', diff --git a/netbox/dcim/models.py b/netbox/dcim/models.py index 2e042caf5..75ab9dbe8 100644 --- a/netbox/dcim/models.py +++ b/netbox/dcim/models.py @@ -770,11 +770,6 @@ class DeviceType(ChangeLoggedModel, CustomFieldModel): verbose_name='Is a network device', help_text='This type of device has network interfaces' ) - is_patch_panel = models.BooleanField( - default=False, - verbose_name='Is a patch panel', - help_text='This type of device has patch panel ports' - ) subdevice_role = models.NullBooleanField( default=None, verbose_name='Parent/child status', @@ -794,8 +789,8 @@ class DeviceType(ChangeLoggedModel, CustomFieldModel): tags = TaggableManager() csv_headers = [ - 'manufacturer', 'model', 'slug', 'part_number', 'u_height', 'is_full_depth', 'is_console_server', - 'is_pdu', 'is_network_device', 'is_patch_panel', 'subdevice_role', 'interface_ordering', 'comments', + 'manufacturer', 'model', 'slug', 'part_number', 'u_height', 'is_full_depth', 'is_console_server', 'is_pdu', + 'is_network_device', 'subdevice_role', 'interface_ordering', 'comments', ] class Meta: @@ -828,7 +823,6 @@ class DeviceType(ChangeLoggedModel, CustomFieldModel): self.is_console_server, self.is_pdu, self.is_network_device, - self.is_patch_panel, self.get_subdevice_role_display() if self.subdevice_role else None, self.get_interface_ordering_display(), self.comments, @@ -868,14 +862,6 @@ class DeviceType(ChangeLoggedModel, CustomFieldModel): "device before declassifying it as a network device." }) - if not self.is_patch_panel and ( - self.front_port_templates.exists() or self.rear_port_templates.exists() - ): - raise ValidationError({ - 'is_patch_panel': "Must delete all patch panel port templates associated with this device before " - "declassifying it as a network device." - }) - if self.subdevice_role != SUBDEVICE_ROLE_PARENT and self.device_bay_templates.count(): raise ValidationError({ 'subdevice_role': "Must delete all device bay templates associated with this device before " diff --git a/netbox/dcim/tables.py b/netbox/dcim/tables.py index 92c74e8d3..0a79560f8 100644 --- a/netbox/dcim/tables.py +++ b/netbox/dcim/tables.py @@ -348,7 +348,6 @@ class DeviceTypeTable(BaseTable): is_console_server = BooleanColumn(verbose_name='CS') is_pdu = BooleanColumn(verbose_name='PDU') is_network_device = BooleanColumn(verbose_name='Net') - is_patch_panel = BooleanColumn(verbose_name='PP') subdevice_role = tables.TemplateColumn( template_code=SUBDEVICE_ROLE_TEMPLATE, verbose_name='Subdevice Role' @@ -362,7 +361,7 @@ class DeviceTypeTable(BaseTable): model = DeviceType fields = ( 'pk', 'model', 'manufacturer', 'part_number', 'u_height', 'is_full_depth', 'is_console_server', 'is_pdu', - 'is_network_device', 'is_patch_panel', 'subdevice_role', 'instance_count', + 'is_network_device', 'subdevice_role', 'instance_count', ) diff --git a/netbox/templates/dcim/device.html b/netbox/templates/dcim/device.html index 7959f6cd8..7a81266cc 100644 --- a/netbox/templates/dcim/device.html +++ b/netbox/templates/dcim/device.html @@ -689,12 +689,12 @@ {% endif %} {% endif %} - {% if front_ports or device.device_type.is_patch_panel %} + {% if front_ports %}
{% csrf_token %}
- Front Panel Ports + Front Ports
@@ -742,12 +742,12 @@ {% endif %} - {% if rear_ports or device.device_type.is_patch_panel %} + {% if rear_ports %} {% csrf_token %}
- Rear Panel Ports + Rear Ports
diff --git a/netbox/templates/dcim/devicetype.html b/netbox/templates/dcim/devicetype.html index 30c112642..b02a97da1 100644 --- a/netbox/templates/dcim/devicetype.html +++ b/netbox/templates/dcim/devicetype.html @@ -135,19 +135,6 @@ This device {% if devicetype.is_network_device %}has{% else %}does not have{% endif %} network interfaces - - - -
- {% if devicetype.is_patch_panel %} - - {% else %} - - {% endif %} - - Patch Panel
- This device {% if devicetype.is_patch_panel %}has{% else %}does not have{% endif %} patch panel ports -
{% if devicetype.subdevice_role == True %} @@ -201,12 +188,16 @@ {% if devicetype.is_pdu or poweroutlet_table.rows %} {% include 'dcim/inc/devicetype_component_table.html' with table=poweroutlet_table title='Power Outlets' add_url='dcim:devicetype_add_poweroutlet' delete_url='dcim:devicetype_delete_poweroutlet' %} {% endif %} - {% if devicetype.is_patch_panel or front_port_table.rows %} - {% include 'dcim/inc/devicetype_component_table.html' with table=front_port_table title='Front Panel Ports' add_url='dcim:devicetype_add_frontport' delete_url='dcim:devicetype_delete_frontport' %} - {% endif %} - {% if devicetype.is_patch_panel or rear_port_table.rows %} - {% include 'dcim/inc/devicetype_component_table.html' with table=rear_port_table title='Rear Panel Ports' add_url='dcim:devicetype_add_rearport' delete_url='dcim:devicetype_delete_rearport' %} - {% endif %} +{% if devicetype.front_port_templates.exists or devicetype.rear_port_templates.exists %} +
+
+ {% include 'dcim/inc/devicetype_component_table.html' with table=front_port_table title='Front Ports' add_url='dcim:devicetype_add_frontport' delete_url='dcim:devicetype_delete_frontport' %} +
+
+ {% include 'dcim/inc/devicetype_component_table.html' with table=rear_port_table title='Rear Ports' add_url='dcim:devicetype_add_rearport' delete_url='dcim:devicetype_delete_rearport' %} +
+
+{% endif %} {% endblock %} diff --git a/netbox/templates/dcim/devicetype_edit.html b/netbox/templates/dcim/devicetype_edit.html index 14b8103e3..d0ed2c204 100644 --- a/netbox/templates/dcim/devicetype_edit.html +++ b/netbox/templates/dcim/devicetype_edit.html @@ -20,7 +20,6 @@ {% render_field form.is_console_server %} {% render_field form.is_pdu %} {% render_field form.is_network_device %} - {% render_field form.is_patch_panel %} {% render_field form.subdevice_role %}