From 1a5d05d6874b45191d86d88de6867abf68767e27 Mon Sep 17 00:00:00 2001 From: Jeremy Stretch Date: Wed, 2 Aug 2017 14:20:43 -0400 Subject: [PATCH 1/6] Post-release version bump --- netbox/netbox/settings.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/netbox/netbox/settings.py b/netbox/netbox/settings.py index c97c9bbc5..ea8f20d97 100644 --- a/netbox/netbox/settings.py +++ b/netbox/netbox/settings.py @@ -13,7 +13,7 @@ except ImportError: ) -VERSION = '2.1.1' +VERSION = '2.1.2-dev' # Import required configuration parameters ALLOWED_HOSTS = DATABASE = SECRET_KEY = None From 9a3075297445908277cb0ca2df611fcac8a13bed Mon Sep 17 00:00:00 2001 From: Jeremy Stretch Date: Thu, 3 Aug 2017 09:26:28 -0400 Subject: [PATCH 2/6] Fixes #1388: Fixed server error when searching globally for IPs/prefixes (rolled back #1379) --- netbox/dcim/filters.py | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/netbox/dcim/filters.py b/netbox/dcim/filters.py index dcd6c6d2e..54a7af4e2 100644 --- a/netbox/dcim/filters.py +++ b/netbox/dcim/filters.py @@ -448,20 +448,13 @@ class DeviceFilter(CustomFieldFilterSet, django_filters.FilterSet): def search(self, queryset, name, value): if not value.strip(): return queryset - qs_filter = ( + return queryset.filter( Q(name__icontains=value) | Q(serial__icontains=value.strip()) | Q(inventory_items__serial__icontains=value.strip()) | Q(asset_tag=value.strip()) | Q(comments__icontains=value) - ) - # If the query value looks like a MAC address, search interfaces as well. - try: - mac = EUI(value.strip()) - qs_filter |= Q(interfaces__mac_address=mac) - except AddrFormatError: - pass - return queryset.filter(qs_filter).distinct() + ).distinct() def _mac_address(self, queryset, name, value): value = value.strip() From 389b0263fb916c7c9e9b113766158aac53e37832 Mon Sep 17 00:00:00 2001 From: Jeremy Stretch Date: Thu, 3 Aug 2017 10:09:37 -0400 Subject: [PATCH 3/6] Fixes #1390: Fixed IndexError when viewing available IPs within large IPv6 prefixes --- netbox/ipam/api/views.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/netbox/ipam/api/views.py b/netbox/ipam/api/views.py index 87511d5c5..9cf93cb4b 100644 --- a/netbox/ipam/api/views.py +++ b/netbox/ipam/api/views.py @@ -115,7 +115,11 @@ class PrefixViewSet(WritableSerializerMixin, CustomFieldModelViewSet): limit = min(limit, settings.MAX_PAGE_SIZE) # Calculate available IPs within the prefix - ip_list = list(prefix.get_available_ips())[:limit] + ip_list = [] + for index, ip in enumerate(prefix.get_available_ips(), start=1): + ip_list.append(ip) + if index == limit: + break serializer = serializers.AvailableIPSerializer(ip_list, many=True, context={ 'request': request, 'prefix': prefix.prefix, From 6e4ebf4132d6082b1ca6eaedc30f2f25ac7e5946 Mon Sep 17 00:00:00 2001 From: Jeremy Stretch Date: Thu, 3 Aug 2017 15:40:52 -0400 Subject: [PATCH 4/6] Closes #992: Allow the creation of multiple services per device with the same protocol and port --- ...18_remove_service_uniqueness_constraint.py | 19 +++++++++++++++++++ netbox/ipam/models.py | 1 - 2 files changed, 19 insertions(+), 1 deletion(-) create mode 100644 netbox/ipam/migrations/0018_remove_service_uniqueness_constraint.py diff --git a/netbox/ipam/migrations/0018_remove_service_uniqueness_constraint.py b/netbox/ipam/migrations/0018_remove_service_uniqueness_constraint.py new file mode 100644 index 000000000..77e083ef3 --- /dev/null +++ b/netbox/ipam/migrations/0018_remove_service_uniqueness_constraint.py @@ -0,0 +1,19 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.3 on 2017-08-03 19:37 +from __future__ import unicode_literals + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('ipam', '0017_ipaddress_roles'), + ] + + operations = [ + migrations.AlterUniqueTogether( + name='service', + unique_together=set([]), + ), + ] diff --git a/netbox/ipam/models.py b/netbox/ipam/models.py index 04853c5da..bbd5e1827 100644 --- a/netbox/ipam/models.py +++ b/netbox/ipam/models.py @@ -600,7 +600,6 @@ class Service(CreatedUpdatedModel): class Meta: ordering = ['device', 'protocol', 'port'] - unique_together = ['device', 'protocol', 'port'] def __str__(self): return '{} ({}/{})'.format(self.name, self.port, self.get_protocol_display()) From 6bd187b3bf581f23e0ac86bf365abadaf1447a57 Mon Sep 17 00:00:00 2001 From: Jeremy Stretch Date: Thu, 3 Aug 2017 17:49:22 -0400 Subject: [PATCH 5/6] Tweaked navigation menu styling --- netbox/project-static/css/base.css | 5 + netbox/templates/_base.html | 154 ++++++++++++++--------------- 2 files changed, 82 insertions(+), 77 deletions(-) diff --git a/netbox/project-static/css/base.css b/netbox/project-static/css/base.css index 573c1c967..0f6b24077 100644 --- a/netbox/project-static/css/base.css +++ b/netbox/project-static/css/base.css @@ -81,6 +81,11 @@ footer p { } } +/* Navigation menu */ +li.subnav > a { + padding-left: 30px; +} + /* Forms */ label { font-weight: normal; diff --git a/netbox/templates/_base.html b/netbox/templates/_base.html index 10b4970a8..c56a95abe 100644 --- a/netbox/templates/_base.html +++ b/netbox/templates/_base.html @@ -31,197 +31,197 @@ @@ -229,14 +229,14 @@ @@ -250,16 +250,16 @@ {{ request.user|truncatechars:"30" }} {% else %} -
  • Log in
  • +
  • Log in
  • {% endif %}