diff --git a/.github/ISSUE_TEMPLATE/bug_report.yaml b/.github/ISSUE_TEMPLATE/bug_report.yaml index 956b682b0..c71ee6f3e 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yaml +++ b/.github/ISSUE_TEMPLATE/bug_report.yaml @@ -14,7 +14,7 @@ body: attributes: label: NetBox version description: What version of NetBox are you currently running? - placeholder: v3.4.9 + placeholder: v3.4.10 validations: required: true - type: dropdown diff --git a/.github/ISSUE_TEMPLATE/feature_request.yaml b/.github/ISSUE_TEMPLATE/feature_request.yaml index d3f337175..16e4981cb 100644 --- a/.github/ISSUE_TEMPLATE/feature_request.yaml +++ b/.github/ISSUE_TEMPLATE/feature_request.yaml @@ -14,7 +14,7 @@ body: attributes: label: NetBox version description: What version of NetBox are you currently running? - placeholder: v3.4.9 + placeholder: v3.4.10 validations: required: true - type: dropdown diff --git a/docs/release-notes/version-3.4.md b/docs/release-notes/version-3.4.md index bcb3a9ad2..22c33bb01 100644 --- a/docs/release-notes/version-3.4.md +++ b/docs/release-notes/version-3.4.md @@ -1,5 +1,15 @@ # NetBox v3.4 +## v3.4.10 (2023-04-27) + +### Bug Fixes + +* [#11607](https://github.com/netbox-community/netbox/issues/11607) - Fix custom object field assignments made via REST API for for cables +* [#12252](https://github.com/netbox-community/netbox/issues/12252) - Fix ordering of search results when sorting by object name +* [#12355](https://github.com/netbox-community/netbox/issues/12355) - Fix escaping of certain characters in URL when rendering custom links + +--- + ## v3.4.9 (2023-04-26) ### Enhancements diff --git a/netbox/dcim/api/nested_serializers.py b/netbox/dcim/api/nested_serializers.py index 29881a548..f57451d17 100644 --- a/netbox/dcim/api/nested_serializers.py +++ b/netbox/dcim/api/nested_serializers.py @@ -425,7 +425,7 @@ class NestedInventoryItemRoleSerializer(WritableNestedSerializer): # Cables # -class NestedCableSerializer(BaseModelSerializer): +class NestedCableSerializer(WritableNestedSerializer): url = serializers.HyperlinkedIdentityField(view_name='dcim-api:cable-detail') class Meta: diff --git a/netbox/extras/models/models.py b/netbox/extras/models/models.py index 718cba5c1..b054882ea 100644 --- a/netbox/extras/models/models.py +++ b/netbox/extras/models/models.py @@ -279,7 +279,7 @@ class CustomLink(CloningMixin, ExportTemplatesMixin, WebhooksMixin, ChangeLogged text = clean_html(text, allowed_schemes) # Sanitize link - link = urllib.parse.quote_plus(link, safe='/:?&') + link = urllib.parse.quote_plus(link, safe='/:?&=%+[]@#') # Verify link scheme is allowed result = urllib.parse.urlparse(link) diff --git a/netbox/netbox/search/backends.py b/netbox/netbox/search/backends.py index f428842f5..4487b6bb8 100644 --- a/netbox/netbox/search/backends.py +++ b/netbox/netbox/search/backends.py @@ -145,9 +145,12 @@ class CachedValueSearchBackend(SearchBackend): ) # Omit any results pertaining to an object the user does not have permission to view - return [ - r for r in results if r.object is not None - ] + ret = [] + for r in results: + if r.object is not None: + r.name = str(r.object) + ret.append(r) + return ret def cache(self, instances, indexer=None, remove_existing=True): content_type = None diff --git a/netbox/netbox/settings.py b/netbox/netbox/settings.py index 03970ff75..82c9c7af2 100644 --- a/netbox/netbox/settings.py +++ b/netbox/netbox/settings.py @@ -25,7 +25,7 @@ from netbox.constants import RQ_QUEUE_DEFAULT, RQ_QUEUE_HIGH, RQ_QUEUE_LOW # Environment setup # -VERSION = '3.4.9' +VERSION = '3.4.10' # Hostname HOSTNAME = platform.node() diff --git a/netbox/netbox/tables/tables.py b/netbox/netbox/tables/tables.py index 3047719b7..ee171f1a8 100644 --- a/netbox/netbox/tables/tables.py +++ b/netbox/netbox/tables/tables.py @@ -204,7 +204,8 @@ class SearchTable(tables.Table): order_by="object___meta__verbose_name", ) object = tables.Column( - linkify=True + linkify=True, + order_by=('name', ) ) field = tables.Column() value = tables.Column()