Skip to content

Commit 1a631dd

Browse files
authored
Merge pull request #18258 from netbox-community/develop
Release v4.1.9
2 parents b89601d + 8c07978 commit 1a631dd

File tree

13 files changed

+192
-158
lines changed

13 files changed

+192
-158
lines changed

docs/release-notes/version-4.1.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,21 @@
11
# NetBox v4.1
22

3+
## v4.1.9 (2024-12-17)
4+
5+
### Enhancements
6+
7+
* [#17215](https://github.com/netbox-community/netbox/issues/17215) - Change the highlighted color of disabled interfaces in interface lists
8+
* [#18224](https://github.com/netbox-community/netbox/issues/18224) - Apply all registered request processors when running custom scripts
9+
10+
### Bug Fixes
11+
12+
* [#16757](https://github.com/netbox-community/netbox/issues/16757) - Fix rendering of IP addresses table when assigning an existing IP address to an interface with global HTMX navigation enabled
13+
* [#17868](https://github.com/netbox-community/netbox/issues/17868) - Fix `ZeroDivisionError` exception under specific circumstances when generating a cable trace
14+
* [#18124](https://github.com/netbox-community/netbox/issues/18124) - Enable referencing cable attributes when querying a `cabletermination_set` via the GraphQL API
15+
* [#18230](https://github.com/netbox-community/netbox/issues/18230) - Fix `AttributeError` exception when attempting to edit an IP address assigned to a virtual machine interface
16+
17+
---
18+
319
## v4.1.8 (2024-12-12)
420

521
### Enhancements

netbox/dcim/graphql/types.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,7 @@ class ModularComponentTemplateType(ComponentTemplateType):
116116
filters=CableTerminationFilter
117117
)
118118
class CableTerminationType(NetBoxObjectType):
119-
119+
cable: Annotated["CableType", strawberry.lazy('dcim.graphql.types')] | None
120120
termination: Annotated[Union[
121121
Annotated["CircuitTerminationType", strawberry.lazy('circuits.graphql.types')],
122122
Annotated["ConsolePortType", strawberry.lazy('dcim.graphql.types')],

netbox/dcim/svg/cables.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -362,7 +362,7 @@ def render(self):
362362
self.cursor += CABLE_HEIGHT
363363

364364
# Connector (a Cable or WirelessLink)
365-
if links:
365+
if links and far_ends:
366366

367367
obj_list = {end.parent_object for end in far_ends}
368368
parent_object_nodes, far_terminations = self.draw_far_objects(obj_list, far_ends)

netbox/extras/jobs.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
import logging
22
import traceback
3-
from contextlib import nullcontext
3+
from contextlib import ExitStack
44

55
from django.db import transaction
66
from django.utils.translation import gettext as _
77

88
from core.signals import clear_events
99
from extras.models import Script as ScriptModel
10-
from netbox.context_managers import event_tracking
1110
from netbox.jobs import JobRunner
11+
from netbox.registry import registry
1212
from utilities.exceptions import AbortScript, AbortTransaction
1313
from .utils import is_report
1414

@@ -100,5 +100,7 @@ def run(self, data, request=None, commit=True, **kwargs):
100100

101101
# Execute the script. If commit is True, wrap it with the event_tracking context manager to ensure we process
102102
# change logging, event rules, etc.
103-
with event_tracking(request) if commit else nullcontext():
103+
with ExitStack() as stack:
104+
for request_processor in registry['request_processors']:
105+
stack.enter_context(request_processor(request))
104106
self.run_script(script, request, data, commit)

netbox/ipam/forms/model_forms.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -361,7 +361,7 @@ def __init__(self, *args, **kwargs):
361361
):
362362
self.initial['primary_for_parent'] = True
363363

364-
if parent and (parent.oob_ip_id == self.instance.pk):
364+
if parent and getattr(parent, 'oob_ip_id', None) == self.instance.pk:
365365
self.initial['oob_for_parent'] = True
366366

367367
if type(instance.assigned_object) is Interface:

netbox/project-static/dist/netbox.css

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

netbox/project-static/styles/custom/_interfaces.scss

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ tr[data-virtual=true] {
1717
background-color: rgba(map.get($theme-colors, "primary"), 0.15);
1818
}
1919
tr[data-enabled=disabled] {
20-
background-color: rgba(map.get($theme-colors, "danger"), 0.15);
20+
background-color: rgba($gray-400, 0.15);
2121
}
2222

2323
// Only show the correct button depending on the cable status

netbox/release.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
1-
version: "4.1.8"
1+
version: "4.1.9"
22
edition: "Community"
3-
published: "2024-12-12"
3+
published: "2024-12-17"

netbox/templates/ipam/ipaddress_assign.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ <h2 class="col-9 offset-3">{% trans "Select IP Address" %}</h2>
3434
<div class="col col-md-12">
3535
<h3>{% trans "Search Results" %}</h3>
3636
<div class="table-responsive">
37-
{% render_table table 'inc/table.html' %}
37+
{% render_table table 'inc/table_htmx.html' %}
3838
</div>
3939
</div>
4040
</div>

0 commit comments

Comments
 (0)