diff --git a/netbox/dcim/api/serializers.py b/netbox/dcim/api/serializers.py index 1e0cdbe4a..5bdb39ae9 100644 --- a/netbox/dcim/api/serializers.py +++ b/netbox/dcim/api/serializers.py @@ -137,7 +137,7 @@ class DeviceTypeSerializer(CustomFieldSerializer, serializers.ModelSerializer): class Meta: model = DeviceType fields = ['id', 'manufacturer', 'model', 'slug', 'part_number', 'u_height', 'is_full_depth', - 'is_console_server', 'is_pdu', 'is_network_device', 'subdevice_role', 'custom_fields'] + 'is_console_server', 'is_pdu', 'is_network_device', 'subdevice_role', 'comments', 'custom_fields'] def get_subdevice_role(self, obj): return { @@ -197,7 +197,7 @@ class DeviceTypeDetailSerializer(DeviceTypeSerializer): class Meta(DeviceTypeSerializer.Meta): fields = ['id', 'manufacturer', 'model', 'slug', 'part_number', 'u_height', 'is_full_depth', - 'is_console_server', 'is_pdu', 'is_network_device', 'subdevice_role', 'custom_fields', + 'is_console_server', 'is_pdu', 'is_network_device', 'subdevice_role', 'comments', 'custom_fields', 'console_port_templates', 'cs_port_templates', 'power_port_templates', 'power_outlet_templates', 'interface_templates'] diff --git a/netbox/dcim/filters.py b/netbox/dcim/filters.py index 8cd273549..b78124f3e 100644 --- a/netbox/dcim/filters.py +++ b/netbox/dcim/filters.py @@ -124,6 +124,10 @@ class RackFilter(CustomFieldFilterSet, django_filters.FilterSet): class DeviceTypeFilter(CustomFieldFilterSet, django_filters.FilterSet): + q = django_filters.MethodFilter( + action='search', + label='Search', + ) manufacturer_id = django_filters.ModelMultipleChoiceFilter( name='manufacturer', queryset=Manufacturer.objects.all(), @@ -139,7 +143,15 @@ class DeviceTypeFilter(CustomFieldFilterSet, django_filters.FilterSet): class Meta: model = DeviceType fields = ['manufacturer_id', 'manufacturer', 'model', 'part_number', 'u_height', 'is_console_server', 'is_pdu', - 'is_network_device'] + 'is_network_device', 'subdevice_role'] + + def search(self, queryset, value): + return queryset.filter( + Q(manufacturer__name__icontains=value) | + Q(model__icontains=value) | + Q(part_number__icontains=value) | + Q(comments__icontains=value) + ) class DeviceFilter(CustomFieldFilterSet, django_filters.FilterSet): diff --git a/netbox/dcim/forms.py b/netbox/dcim/forms.py index b06d5297f..c3c83f777 100644 --- a/netbox/dcim/forms.py +++ b/netbox/dcim/forms.py @@ -260,7 +260,7 @@ class DeviceTypeForm(BootstrapMixin, CustomFieldForm): class Meta: model = DeviceType fields = ['manufacturer', 'model', 'slug', 'part_number', 'u_height', 'is_full_depth', 'is_console_server', - 'is_pdu', 'is_network_device', 'subdevice_role'] + 'is_pdu', 'is_network_device', 'subdevice_role', 'comments'] class DeviceTypeBulkEditForm(BootstrapMixin, CustomFieldBulkEditForm): diff --git a/netbox/dcim/migrations/0023_devicetype_comments.py b/netbox/dcim/migrations/0023_devicetype_comments.py new file mode 100644 index 000000000..677a8af9d --- /dev/null +++ b/netbox/dcim/migrations/0023_devicetype_comments.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10 on 2016-12-16 16:08 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('dcim', '0022_color_names_to_rgb'), + ] + + operations = [ + migrations.AddField( + model_name='devicetype', + name='comments', + field=models.TextField(blank=True), + ), + ] diff --git a/netbox/dcim/models.py b/netbox/dcim/models.py index 17bea9979..913e9c4f7 100644 --- a/netbox/dcim/models.py +++ b/netbox/dcim/models.py @@ -553,6 +553,7 @@ class DeviceType(models.Model, CustomFieldModel): choices=SUBDEVICE_ROLE_CHOICES, help_text="Parent devices house child devices in device bays. Select " "\"None\" if this device type is neither a parent nor a child.") + comments = models.TextField(blank=True) custom_field_values = GenericRelation(CustomFieldValue, content_type_field='obj_type', object_id_field='obj_id') class Meta: diff --git a/netbox/templates/dcim/devicetype.html b/netbox/templates/dcim/devicetype.html index 0b324d828..9bc16d146 100644 --- a/netbox/templates/dcim/devicetype.html +++ b/netbox/templates/dcim/devicetype.html @@ -148,6 +148,18 @@ {% with devicetype.get_custom_fields as custom_fields %} {% include 'inc/custom_fields_panel.html' %} {% endwith %} +