Use DRF's ChoiceField for `cable_end` to preserve the existing raw
"A"/"B" API output while documenting the allowed values and nullability
in the generated schema.
Fixes#22084
Update AddObject.get_url() to skip parameters that resolve to None,
preventing invalid query strings.
Adjust VLAN-to-Prefix action to use scope_type/scope instead of site
field.
Fixes#22031
Update InterfaceFilterSet to check both is_active and is_complete when
filtering by connected=true. Incomplete pass-through paths (e.g. cabled
front ports without rear port connections) are now correctly excluded.
Fixes regression where active but incomplete cable paths were incorrectly
returned as connected.
Fixes#22005
Add validation in EventRule.clean() to ensure action_data is a JSON
object or null. Add runtime guard in event processing to handle legacy
rows with invalid data by logging a warning and using an empty dict.
Fixes#21989
Add `_get_profile_link_peers()` method to handle connector-to-connector
mappings when cables use profiles. Includes regression test for
TRUNK_4C1P profile ensuring correct peer resolution between interfaces
and rear ports.
Fixes#21917
Include the color field in FrontPortForm and commented-out
FrontPortBulkCreateForm field lists to allow editing front port colors
via the UI.
Fixes#21985
Replace whole-table HTML string counting in AnnotatedIPAddressTableTest
`test_ipaddress_has_checkbox_iprange_does_not` with row-specific `pk`
cell assertions.
This avoids false failures when an `IPAddress` and `IPRange` happen to
share the same numeric primary key and makes the test stable in CI.
Fixes#21971
Expose the current PostgreSQL schema from the system view and include it
in the exported system data.
Load the Database tab on demand with HTMX so schema introspection only
runs when the panel is opened, while keeping the export path eager.
Use the active PostgreSQL schema instead of assuming `public`, move the
schema helpers into `core.utils`, and tidy the accordion toggle styling.
Add a `should_render()` hook to the `Panel` base class and override it
in `ObjectsTablePanel` to check the requesting user's view permission
for the panel's model. This prevents object detail pages from issuing
HTMX requests for related tables (e.g. locations, devices, image
attachments) that return 403 and disrupt the page.
Fixes#21893
Co-authored-by: Jeremy Stretch <jstretch@netboxlabs.com>
* Misc updates to the contributing guide
* Update CONTRIBUTING.md
Co-authored-by: Martin Hauser <mhauser@netboxlabs.com>
---------
Co-authored-by: Martin Hauser <mhauser@netboxlabs.com>