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
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>
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
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.
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
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
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
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
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
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
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