Skip to content

Commit 6ac25ee

Browse files
Merge pull request #14238 from netbox-community/develop
Release v3.6.5
2 parents d195f9c + 41eae1b commit 6ac25ee

File tree

32 files changed

+333
-54
lines changed

32 files changed

+333
-54
lines changed

.github/ISSUE_TEMPLATE/bug_report.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ body:
1414
attributes:
1515
label: NetBox version
1616
description: What version of NetBox are you currently running?
17-
placeholder: v3.6.4
17+
placeholder: v3.6.5
1818
validations:
1919
required: true
2020
- type: dropdown

.github/ISSUE_TEMPLATE/feature_request.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ body:
1414
attributes:
1515
label: NetBox version
1616
description: What version of NetBox are you currently running?
17-
placeholder: v3.6.4
17+
placeholder: v3.6.5
1818
validations:
1919
required: true
2020
- type: dropdown
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
---
2+
name: 🌍 Translation
3+
description: Request support for a new language in the user interface
4+
labels: ["type: translation"]
5+
body:
6+
- type: markdown
7+
attributes:
8+
value: >
9+
**NOTE:** This template is used only for proposing the addition of *new* languages. Please do
10+
not use it to request changes to existing translations.
11+
- type: input
12+
attributes:
13+
label: Language
14+
description: What is the name of the language in English?
15+
validations:
16+
required: true
17+
- type: input
18+
attributes:
19+
label: ISO 639-1 code
20+
description: >
21+
What is the two-letter [ISO 639-1 code](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes)
22+
assigned to the language?
23+
validations:
24+
required: true
25+
- type: dropdown
26+
attributes:
27+
label: Volunteer
28+
description: Are you a fluent speaker of this language **and** willing to contribute a translation map?
29+
options:
30+
- "Yes"
31+
- "No"
32+
validations:
33+
required: true
34+
- type: textarea
35+
attributes:
36+
label: Comments
37+
description: Any other notes you would like to share

base_requirements.txt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,8 @@ django-tables2
5353

5454
# User-defined tags for objects
5555
# https://github.com/jazzband/django-taggit/blob/master/CHANGELOG.rst
56-
django-taggit
56+
# TODO: Upgrade to v5.0 for NetBox v3.7 beta
57+
django-taggit<5.0
5758

5859
# A Django field for representing time zones
5960
# https://github.com/mfogel/django-timezone-field/

docs/reference/conditions.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,7 @@ Multiple conditions can be combined into nested sets using AND or OR logic. This
116116
]
117117
},
118118
{
119-
"attr": "tags",
119+
"attr": "tags.slug",
120120
"value": "exempt",
121121
"op": "contains"
122122
}

docs/release-notes/version-3.6.md

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,35 @@
11
# NetBox v3.6
22

3+
## v3.6.5 (2023-11-09)
4+
5+
### Enhancements
6+
7+
* [#12741](https://github.com/netbox-community/netbox/issues/12741) - Add selector widget to platform field on device & virtual machine forms
8+
* [#13022](https://github.com/netbox-community/netbox/issues/13022) - Introduce support for assigning IP addresses when bulk importing services
9+
* [#13587](https://github.com/netbox-community/netbox/issues/13587) - Annotate units of measurement on power port table columns
10+
* [#13669](https://github.com/netbox-community/netbox/issues/13669) - Add bulk import button to contact assignments list view
11+
* [#13723](https://github.com/netbox-community/netbox/issues/13723) - Add inventory items column to interfaces table
12+
* [#13743](https://github.com/netbox-community/netbox/issues/13743) - Add site column to power feeds table
13+
* [#13936](https://github.com/netbox-community/netbox/issues/13936) - Add primary IPv4 and IPv6 filters for virtual machines and VDCs
14+
* [#13951](https://github.com/netbox-community/netbox/issues/13951) - Add device & virtual machine fields to service filter form
15+
* [#14085](https://github.com/netbox-community/netbox/issues/14085) - Strip trailing port number from value returned by `get_client_ip()`
16+
* [#14101](https://github.com/netbox-community/netbox/issues/14101) - Add greater/less than mask length filters for IP addresses
17+
* [#14112](https://github.com/netbox-community/netbox/issues/14112) - Add tab listing child items under inventory item view
18+
* [#14113](https://github.com/netbox-community/netbox/issues/14113) - Add optional parent column to inventory items table
19+
* [#14220](https://github.com/netbox-community/netbox/issues/14220) - Order available columns alphabetically in table configuration form
20+
* [#14221](https://github.com/netbox-community/netbox/issues/14221) - Add contact group column on contact assignments table
21+
22+
### Bug Fixes
23+
24+
* [#14033](https://github.com/netbox-community/netbox/issues/14033) - Avoid exception when attempting to connect both ends of a cable to the same object
25+
* [#14117](https://github.com/netbox-community/netbox/issues/14117) - Check that enough rear port positions have been selected to accommodate the number of front ports being created
26+
* [#14166](https://github.com/netbox-community/netbox/issues/14166) - Permit user login when maintenance mode is enabled
27+
* [#14182](https://github.com/netbox-community/netbox/issues/14182) - Ensure the active configuration is restored upon clearing cache
28+
* [#14195](https://github.com/netbox-community/netbox/issues/14195) - Correct permissions evaluation for ASN range child ASNs view
29+
* [#14223](https://github.com/netbox-community/netbox/issues/14223) - Disable ordering of jobs by assigned object
30+
31+
---
32+
333
## v3.6.4 (2023-10-17)
434

535
### Enhancements
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,20 @@
11
from django.core.cache import cache
22
from django.core.management.base import BaseCommand
33

4+
from extras.models import ConfigRevision
5+
46

57
class Command(BaseCommand):
68
"""Command to clear the entire cache."""
79
help = 'Clears the cache.'
810

911
def handle(self, *args, **kwargs):
12+
# Fetch the current config revision from the cache
13+
config_version = cache.get('config_version')
14+
# Clear the cache
1015
cache.clear()
1116
self.stdout.write('Cache has been cleared.', ending="\n")
17+
if config_version:
18+
# Activate the current config revision
19+
ConfigRevision.objects.get(id=config_version).activate()
20+
self.stdout.write(f'Config revision ({config_version}) has been restored.', ending="\n")

netbox/core/tables/jobs.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,8 @@ class JobTable(NetBoxTable):
1919
)
2020
object = tables.Column(
2121
verbose_name=_('Object'),
22-
linkify=True
22+
linkify=True,
23+
orderable=False
2324
)
2425
status = columns.ChoiceFieldColumn(
2526
verbose_name=_('Status'),

netbox/dcim/filtersets.py

Lines changed: 9 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
from extras.filtersets import LocalConfigContextFilterSet
66
from extras.models import ConfigTemplate
7+
from ipam.filtersets import PrimaryIPFilterSet
78
from ipam.models import ASN, L2VPN, IPAddress, VRF
89
from netbox.filtersets import (
910
BaseFilterSet, ChangeLoggedModelFilterSet, OrganizationalModelFilterSet, NetBoxModelFilterSet,
@@ -817,7 +818,13 @@ class Meta:
817818
fields = ['id', 'name', 'slug', 'description']
818819

819820

820-
class DeviceFilterSet(NetBoxModelFilterSet, TenancyFilterSet, ContactModelFilterSet, LocalConfigContextFilterSet):
821+
class DeviceFilterSet(
822+
NetBoxModelFilterSet,
823+
TenancyFilterSet,
824+
ContactModelFilterSet,
825+
LocalConfigContextFilterSet,
826+
PrimaryIPFilterSet,
827+
):
821828
manufacturer_id = django_filters.ModelMultipleChoiceFilter(
822829
field_name='device_type__manufacturer',
823830
queryset=Manufacturer.objects.all(),
@@ -993,16 +1000,6 @@ class DeviceFilterSet(NetBoxModelFilterSet, TenancyFilterSet, ContactModelFilter
9931000
method='_device_bays',
9941001
label=_('Has device bays'),
9951002
)
996-
primary_ip4_id = django_filters.ModelMultipleChoiceFilter(
997-
field_name='primary_ip4',
998-
queryset=IPAddress.objects.all(),
999-
label=_('Primary IPv4 (ID)'),
1000-
)
1001-
primary_ip6_id = django_filters.ModelMultipleChoiceFilter(
1002-
field_name='primary_ip6',
1003-
queryset=IPAddress.objects.all(),
1004-
label=_('Primary IPv6 (ID)'),
1005-
)
10061003
oob_ip_id = django_filters.ModelMultipleChoiceFilter(
10071004
field_name='oob_ip',
10081005
queryset=IPAddress.objects.all(),
@@ -1069,7 +1066,7 @@ def _device_bays(self, queryset, name, value):
10691066
return queryset.exclude(devicebays__isnull=value)
10701067

10711068

1072-
class VirtualDeviceContextFilterSet(NetBoxModelFilterSet, TenancyFilterSet):
1069+
class VirtualDeviceContextFilterSet(NetBoxModelFilterSet, TenancyFilterSet, PrimaryIPFilterSet):
10731070
device_id = django_filters.ModelMultipleChoiceFilter(
10741071
field_name='device',
10751072
queryset=Device.objects.all(),

netbox/dcim/forms/model_forms.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -442,7 +442,8 @@ class DeviceForm(TenancyForm, NetBoxModelForm):
442442
platform = DynamicModelChoiceField(
443443
label=_('Platform'),
444444
queryset=Platform.objects.all(),
445-
required=False
445+
required=False,
446+
selector=True
446447
)
447448
cluster = DynamicModelChoiceField(
448449
label=_('Cluster'),

0 commit comments

Comments
 (0)