Commit Graph

15528 Commits

Author SHA1 Message Date
Jeremy Stretch a1fc744556 Release v4.6.7 2026-07-30 16:36:25 -04:00
Jason Novinger 1f3aac25db
Closes #22810: Skip cached scope rebuild when scope fields are unchanged (#22811) 2026-07-30 15:22:11 -05:00
Jeremy Stretch aefe938c63 Closes #22823: Avoid extraneous DB queries when fetching IP/prefix family via GraphQL API 2026-07-30 13:38:47 -04:00
bctiemann b5c6619108
Merge pull request #22806 from netbox-community/22800-circuitgroupassignmentspanel-not-filtered-by-circuit-type
Fixes #22800: Fix filtering of Circuit Group Assignments by member type
2026-07-30 13:03:53 -04:00
bctiemann 6f9c6080e5
Merge pull request #22827 from netbox-community/22822-graphql-rack-units
Closes #22822: Avoid extra DB query when fetching rack reservation units via GraphQL API
2026-07-30 12:25:44 -04:00
Jeremy Stretch d3735f2db5 Closes #22822: Avoid extra DB query when fetching rack reservation units via GraphQL API 2026-07-30 11:50:18 -04:00
Jeremy Stretch a1df1b99b0 Fixes #22813: Fix extraneous database queries when fetching custom field data via GraphQL API 2026-07-30 11:30:29 -04:00
github-actions 6a1b4afc43 Update source translation strings 2026-07-30 05:53:04 +00:00
Martin Hauser 052506fe9c
Fixes #22738: Correct IPAM availability under constrained object permissions (#22785) 2026-07-29 17:27:09 -04:00
Martin Hauser 29860aaf76
fix(circuits): Add member_type_id filter to CircuitGroupAssignment
Adds `member_type_id` filter field to support filtering by
ContentType ID alongside existing `member_type` filter. Includes
test coverage verifying correct filtering when member IDs overlap across
different Content Types.

Fixes #22800
2026-07-29 15:07:42 +02:00
github-actions 10ac9ffe8d Update source translation strings 2026-07-29 05:58:26 +00:00
Jeremy Stretch 567524b7b8
Update claude-code-action; change model to Opus 5 (#22788) 2026-07-28 16:25:52 -05:00
Jeremy Stretch fb8c455ba6 Release v4.6.6 2026-07-28 13:25:44 -04:00
Arthur Hanson 7472c5d067
22752 - Restore rear port fields on front port bulk import (#22776) 2026-07-28 10:02:41 -04:00
studioussagar eaa2816964
Closes #22522: Render colored badges for Custom Field Choices in tables (#22663)
Render select and multiselect custom field values as colored badges in
table views when their associated choices define colors.

For multiselect fields, render all selected values as badges when any
selected choice has a color, using the secondary badge color for
uncolored choices. Preserve comma-separated text when none of the
selected choices has a color.

Add test coverage for colored, uncolored, empty, mixed, and
HTML-sensitive choice values.

Co-authored-by: Martin Hauser <mhauser@netboxlabs.com>
2026-07-28 15:35:30 +02:00
Abhirupmandal 749e1b6579
Fixes #22690: Restore the left border on the quick search field 2026-07-28 09:32:57 -04:00
Martin Hauser 1e48c81666 docs(permissions): Add note about JSON escaping in constraint definitions
Clarifies that backslashes in constraint values must be escaped in JSON.
Includes example showing regex pattern escaping and adds table entry
demonstrating regex constraint usage.

Fixes #22498
2026-07-28 09:30:59 -04:00
Jason Novinger b3c27b951d
Closes #22790: Enforce SavedFilter visibility when applied via filter/filter_id (#22791)
BaseFilterSet resolved referenced SavedFilters without a visibility check, so
a private (shared=False) filter owned by one user could have its parameters
applied to another user's request. Restrict resolution to shared or owned
filters via restrict_to_shared(), matching the visibility enforced on the UI,
REST, and GraphQL SavedFilter surfaces.
2026-07-28 10:51:14 +02:00
bctiemann 8aa7b3b2c8
Merge pull request #22780 from netbox-community/22768-cable-removal-stores-an-empty-string-instead-of-null-in
Fixes #22768: Store null values for cable_end when removing Cables
2026-07-27 15:02:52 -04:00
bctiemann f951ba0219
Merge pull request #22778 from netbox-community/22745-script2
22766 - Map GraphQL array length lookup to Django's len transform
2026-07-27 15:01:38 -04:00
Martin Hauser 7d0a86ef52 fix(search): Add comments field to search indexing
Include comments field with weight 5000 in search indexes for
DeviceRole, L2VPN, MACAddress, and RouteTarget models to enable
full-text search on comment content.

Fixes #22767
2026-07-27 13:30:13 -04:00
Martin Hauser 34d6c170d8
Fixes #22773: Fix TypeError when bulk adding Module Bays to Devices (#22782) 2026-07-27 09:27:08 -05:00
Martin Hauser 91b51f62d6
fix(dcim): Nullify empty cable_end values instead of empty strings
Replace empty strings with null values for cable_end fields across
cable termination models. Adds data migrations to clean up inconsistent
values from earlier versions that wrote empty strings when cables were
deleted.

Fixes #22768
2026-07-25 13:52:12 +02:00
Arthur 567940ebd7 add tests 2026-07-24 17:55:07 -07:00
Arthur f8e7950004 22766 - Map GraphQL array length lookup to Django's len transform 2026-07-24 17:26:15 -07:00
bctiemann ba5018a3b4
Merge pull request #22763 from netbox-community/22497-delete
22497 Avoid redundant counter updates when deleting an object's parent
2026-07-24 14:37:24 -04:00
Jeremy Stretch 928d07e69f
Closes #22695: Clean up test suite output (#22760) 2026-07-24 08:44:24 -04:00
github-actions 05e6e85042 Update source translation strings 2026-07-24 05:56:43 +00:00
Arthur d6698ebc68 add test 2026-07-23 15:18:36 -07:00
Arthur eeb44cd0c8 add test 2026-07-23 15:09:52 -07:00
bctiemann b6ff8654e0
Merge pull request #22755 from netbox-community/22737-deleting-a-profiled-cable-leaves-stale-connector-metadata-on
Fixes #22737: Clear cached Cable Profile data when deleting Cables
2026-07-23 14:00:29 -04:00
Jeremy Stretch 728c84470b
Closes #22753: Add `header_safe` Jinja2 filter for sanitizing webhook headers (#22754)
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-23 10:58:25 -05:00
bctiemann e2bc76c8d3
Closes #22748: ContentTypeField.to_internal_value() must respect its declared queryset (#22749) 2026-07-23 10:56:23 -04:00
Martin Hauser 47102330eb
fix(dcim): Clear stale cable profile data on cable deletion
Clear cable_connector and cable_positions when deleting profiled cables.
Adds data migration to clean up stale values from earlier versions that
failed to clear these fields, preventing validation errors on affected
endpoints.

Fixes #22737
2026-07-23 15:06:08 +02:00
github-actions ee8aaec433 Update source translation strings 2026-07-23 05:59:11 +00:00
bctiemann 1860713156
Merge pull request #22741 from netbox-community/22697-using-cancel-button-in-add-script-screen-returns-to-root
Fixes #22697: Return to Scripts list when canceling ScriptModule creation
2026-07-22 19:45:08 -04:00
Sri Chandraja Reddy Allala 3e3d36cc2d
Fixes #22588: Filter VLANs by Site Group scope when assigning to a prefix (#22684) 2026-07-22 12:44:09 -07:00
Martin Hauser 84a024babd
fix(ipam): Add comments field to ASN search indexing (#22739)
Include comments field in ASN search with weight 5000 to enable
full-text search on ASN comment content.

Fixes #22736
2026-07-22 11:58:48 -07:00
Martin Hauser bc51d04988
fix(extras): Set default return URL for ScriptModule create view
The ScriptModule add view now falls back to the Scripts list when no
explicit return URL is provided. Adds regression test to verify the
default return URL behavior.

Fixes #22697
2026-07-22 18:01:54 +02:00
Martin Hauser 98c94f5fc7
Fixes #22720: Fix Virtual Chassis deletion with cross-chassis LAGs (#22740) 2026-07-22 10:43:26 -05:00
Jeremy Stretch e79e33e9dd
Fixes #22729: Escape names of file attachments in HTTP responses (#22730) 2026-07-22 10:38:22 -05:00
bctiemann abe4a2cd9e
Closes #22685: Add "any" lookup for tag & tag_id filters 2026-07-22 08:20:09 -04:00
Arthur Hanson 64519b722e
Fixes #22677: Fix display of validation errors for Cable length fields (#22733) 2026-07-22 11:17:36 +02:00
bctiemann e232ec00e3
Merge pull request #22724 from netbox-community/22719-rest-api-returns-500-instead-of-a-validation-error-for
Fixes #22719: Correct malformed IP value validation
2026-07-21 22:05:17 -04:00
Martin Hauser f9a90f3cc9
fix(dcim): Correct format placeholder in Cluster location validation error (#22725)
Changes 'site' to 'location' in the error message format string to match
the actual parameter name being passed. Adds regression test coverage to
verify the error message displays the correct location name.

Fixes #22717
2026-07-21 08:27:54 -07:00
Martin Hauser 87d396bab5 feat(ipam): Change DHCP IP address status color from green to purple
Group DHCP with SLAAC as an automatic address configuration method while
keeping it visually distinct from Active and Available.

Fixes #22623
2026-07-21 08:32:54 -04:00
Martin Hauser f9363f8688
fix(ipam): Fix format string in IP address/prefix validation errors
Add missing keyword argument to format() calls in validation error
messages. This ensures the invalid data value is properly included in
the error message returned to the user.

Fixes #22719
2026-07-21 09:41:04 +02:00
Arthur 6539ee10b2 fixes 2026-07-20 14:19:47 -07:00
Arthur b86843aaad Speed up bulk-delete objects 2026-07-20 13:51:29 -07:00
Martin Hauser d857c145c0
fix(dcim): Resolve VC position when replicating relationships (#22710)
Pass the device context to resolve_name() when creating port mappings
and assigning interface bridges. This ensures that component template
names containing {vc_position} resolve consistently with the names of
the instantiated device components.

Fixes #22707
2026-07-20 10:46:26 -07:00