Jeremy Stretch
139557b8dd
Fixes #21524 : Fix IndexError when serializing stale cable paths ( #21525 )
2026-03-03 16:37:45 +01:00
bctiemann
fcf02bd8bb
Merge pull request #21453 from netbox-community/21429-cable-create-add-another-does-not-carry-over-termination
...
Fixes #21429 : Add Cable cloning and fix "Create & Add Another" to preserve Termination Types
2026-03-03 09:44:35 -05:00
Martin Hauser
7d6989ff34
Closes #21477 : Add cached relation filters to GraphQL for Cable ( #21506 )
2026-03-03 08:01:45 -06:00
Arthur Hanson
3b0b95c265
Closes #21550 : Call snapshot() before saving related objects ( #21551 )
...
Add missing pre-change `snapshot()` calls in views/forms before updating
and saving related objects (device bays, virtual chassis members, and
bulk-import primary MAC/IP assignments), so changelog entries include
pre-change data.
2026-03-03 14:01:04 +01:00
github-actions
cdc2fb2f06
Update source translation strings
CodeQL / Analyze (javascript-typescript) (push) Failing after 1m12s
CodeQL / Analyze (actions) (push) Failing after 1m14s
CodeQL / Analyze (python) (push) Failing after 1m11s
2026-03-03 05:20:47 +00:00
Jeremy Stretch
7ec656bc7c
Introduce GitHub actions for Claude Code review ( #21545 )
CI / build (20.x, 3.12) (push) Failing after 1m45s
CI / build (20.x, 3.13) (push) Failing after 20s
CI / build (20.x, 3.14) (push) Failing after 15m6s
CodeQL / Analyze (actions) (push) Failing after 15m21s
CodeQL / Analyze (javascript-typescript) (push) Failing after 15m25s
CodeQL / Analyze (python) (push) Failing after 15m20s
2026-03-02 10:39:23 -06:00
Rob Duffy
06bbae0f84
Fixes #21527 : UI Bug with Displaying Primary IP Address with NAT IP on a Device
2026-03-02 08:57:52 -05:00
Arthur Hanson
8ff9fd26d1
Closes #20787 : Address warnings from generation of OpenAPI schema ( #21521 )
2026-03-02 14:38:39 +01:00
github-actions
a0e23ac3c9
Update source translation strings
CodeQL / Analyze (actions) (push) Failing after 57s
CodeQL / Analyze (javascript-typescript) (push) Failing after 56s
CodeQL / Analyze (python) (push) Failing after 55s
2026-02-28 05:11:26 +00:00
Jeremy Stretch
071d4a63aa
Fixes #21518 : Ensure proper display of decimal custom fields with a zero value ( #21523 )
CodeQL / Analyze (actions) (push) Failing after 15m27s
CI / build (20.x, 3.12) (push) Failing after 15m41s
CI / build (20.x, 3.13) (push) Failing after 15m40s
CI / build (20.x, 3.14) (push) Failing after 15m39s
CodeQL / Analyze (javascript-typescript) (push) Failing after 51s
CodeQL / Analyze (python) (push) Failing after 59s
2026-02-27 09:13:53 -08:00
github-actions
7db2739465
Update source translation strings
CodeQL / Analyze (actions) (push) Failing after 23s
CodeQL / Analyze (javascript-typescript) (push) Failing after 31s
CodeQL / Analyze (python) (push) Failing after 29s
2026-02-26 05:25:45 +00:00
Dave Bevan
74326edc20
Add new Ethernet types for 10GE and 40GE
...
CI / build (20.x, 3.12) (push) Failing after 1m8s
CI / build (20.x, 3.13) (push) Failing after 15s
CI / build (20.x, 3.14) (push) Failing after 11s
CodeQL / Analyze (actions) (push) Failing after 19s
CodeQL / Analyze (javascript-typescript) (push) Failing after 29s
CodeQL / Analyze (python) (push) Failing after 30s
Closes #21394
2026-02-25 16:34:00 -05:00
Grische
2ef21f7097
Fixes : #21456 - Improve config_context rendering with GraphQL ( #21495 )
2026-02-25 16:17:04 -05:00
Kartik
3adcdc34c3
clarify E501 enforcement
2026-02-25 15:33:25 -05:00
Martin Hauser
f33109e485
fix(dcim): Rename facility to facility_id in panel attrs ( #21482 )
...
Corrects field mismatch by aligning the attribute name with the
data model. This change ensures consistency in attribute mappings
and improves clarity in the codebase.
Fixes #21481
2026-02-25 12:20:51 -08:00
github-actions
d10453883f
Update source translation strings
CodeQL / Analyze (actions) (push) Failing after 34s
CodeQL / Analyze (javascript-typescript) (push) Failing after 39s
CodeQL / Analyze (python) (push) Failing after 41s
2026-02-21 05:16:36 +00:00
bctiemann
6dbd8f6170
Merge pull request #21507 from netbox-community/21497-pin-ruff-in-ci-to-avoid-surprise-breakages
...
CI / build (20.x, 3.12) (push) Failing after 18s
CI / build (20.x, 3.13) (push) Failing after 23s
CI / build (20.x, 3.14) (push) Failing after 33s
CodeQL / Analyze (actions) (push) Failing after 33s
CodeQL / Analyze (javascript-typescript) (push) Failing after 32s
CodeQL / Analyze (python) (push) Failing after 29s
Fixes #21497 : Pin Ruff 0.15.2 and run CI via ruff-action
2026-02-20 16:59:46 -05:00
Jason Novinger
715f9d150c
Closes #21385 : Add contact assignment support to virtual circuits
...
Adds ContactsMixin to VirtualCircuit model and GraphQL type, and includes
'contacts' in table fields. Verified: UI Contacts tab, REST API POST (201),
GraphQL contacts query.
2026-02-20 16:59:37 -05:00
Martin Hauser
f4567ba099
chore(ci): Pin Ruff 0.15.2 and run via ruff-action
...
Pin Ruff to v0.15.2 in CI and pre-commit to avoid breakages from
upstream releases. Run Ruff via astral-sh/ruff-action (pinned by SHA)
instead of installing Ruff via pip.
Document where Ruff is pinned and keep the release checklist/style guide
in sync.
Fixes #21472
Fixes #21497
2026-02-20 20:38:11 +01:00
Jeremy Stretch
d5e8f7dafa
Closes #21459 : Avoid prefetching data for hidden table columns ( #21460 )
CI / build (20.x, 3.12) (push) Failing after 49s
CI / build (20.x, 3.13) (push) Failing after 16s
CI / build (20.x, 3.14) (push) Failing after 11s
CodeQL / Analyze (actions) (push) Failing after 19s
CodeQL / Analyze (javascript-typescript) (push) Failing after 29s
CodeQL / Analyze (python) (push) Failing after 32s
2026-02-20 10:36:46 -08:00
Jeremy Stretch
32e2a17c88
Merge pull request #21503 from netbox-community/21500-enable-linting-for-all-ordering-ruf022
...
Closes #21500 : Enable RUF022 to enforce sorted `__all__` lists
2026-02-20 11:52:00 -05:00
Martin Hauser
3beef34355
chore(ruff): Sort __all__ definitions across modules
...
Apply consistent alphabetical ordering to `__all__` lists in the
circuits module. Enhances readability and alignment with established
linting guidelines.
2026-02-20 15:36:01 +01:00
Martin Hauser
85d6242962
chore(ruff): Add RUF022 and tweak formatting in ruff.toml
...
Enable `RUF022` to enforce sorted `__all__` lists. Adjust comment
alignment and whitespace for improved readability and consistency
in ruff.toml configuration.
2026-02-20 15:34:58 +01:00
bctiemann
bb1a44d35b
Merge pull request #21479 from netbox-community/21478-graphql-union-type-resolution-for-connected-endpoints
...
Fixes #21478 : Fix GraphQL connected endpoint type resolution for Console Ports
2026-02-20 09:27:36 -05:00
bctiemann
ae6f1f9ae3
Merge pull request #21496 from netbox-community/20923-convert-virtualization-views-to-new-ui-layout
...
Closes #20923 : Migrate Virtualization object views to declarative layouts
2026-02-20 09:26:56 -05:00
Arthur Hanson
915ac90119
20911 Fix sorting in dropdown ( #21101 )
...
* Fix TomSelect dropdown ordering
* cleanup
* cleanup
* cleanup
* use correct node version
* change ordering field, remove front-end changes
* rebuild tree after rename
* add migration
* fix migration
* fix migration
* fix migration
* fix migration
* fix migration
* cleanup
* use bulk_update and rebuild
* use bulk_update and rebuild
* cleanup
* fix csv import
* Review feedback
* Review feedback
* fix dropdown sorting
* fix ordering
* review feedback
* review feedback
2026-02-20 09:03:47 -05:00
Martin Hauser
cc47afc401
refactor(virtualization): Port to declarative layout
...
Add declarative layout panels for Cluster, Cluster Group, Cluster Type,
Virtual Disk, and VM Interface, including addressing, VLAN assignment,
and FHRP group handling.
Expand the declarative layout primitives:
- add GFK attribute rendering support
- add panel for rendering context-provided tables
- update templates to support new panels/attrs
Closes #20923
2026-02-20 14:58:20 +01:00
Martin Hauser
20fee95a9a
Closes #21499 : Restore deterministic Ruff linting (match Ruff 0.15.1 preview defaults)
...
Explicitly set `select` rules to maintain compatibility with
Ruff 0.15.1. Ensures deterministic linting behavior despite changes in
Ruff 0.15.2 defaults.
See https://github.com/astral-sh/ruff/releases/tag/0.15.2 for more
details.
2026-02-20 14:40:45 +01:00
github-actions
d2002c64b4
Update source translation strings
CodeQL / Analyze (actions) (push) Failing after 41s
CodeQL / Analyze (javascript-typescript) (push) Failing after 48s
CodeQL / Analyze (python) (push) Failing after 51s
2026-02-20 05:23:09 +00:00
Martin Hauser
1b295f1d69
Closes #21473 : Enable UP rules and modernize string formatting ( #21488 )
CI / build (20.x, 3.12) (push) Failing after 55s
CI / build (20.x, 3.13) (push) Failing after 17s
CI / build (20.x, 3.14) (push) Failing after 11s
CodeQL / Analyze (actions) (push) Failing after 25s
CodeQL / Analyze (javascript-typescript) (push) Failing after 50s
CodeQL / Analyze (python) (push) Failing after 48s
2026-02-19 10:25:08 -06:00
Martin Hauser
2c200a4fd3
Closes #21369 : Add lazy loading and decoding options for ImageAttr ( #21444 )
...
Introduces `load_lazy` and `decoding` parameters to `ImageAttr` for
enhanced image handling. Lazy loading improves page performance, while
configurable decoding options provide greater flexibility. Updates the
template to conditionally include these attributes in rendered HTML.
Fixes #21369
2026-02-19 09:22:16 -06:00
bctiemann
fb71cafb51
Closes : #21284 : Mark request_id and username fields in EventContext as deprecated ( #21485 )
...
Add searchable deprecation comments on request_id and username fields
in EventContext.
2026-02-19 14:03:47 +01:00
github-actions
f373adb636
Update source translation strings
CodeQL / Analyze (actions) (push) Failing after 45s
CodeQL / Analyze (javascript-typescript) (push) Failing after 52s
CodeQL / Analyze (python) (push) Failing after 54s
2026-02-19 05:26:47 +00:00
Martin Hauser
e84b062393
fix(dcim): Correct type check for ConsolePort in GraphQL mixin
...
Fixes a typo in the `resolve_type` method where `ConsolePortType` was
mistakenly referenced instead of `ConsolePort`. Ensures the correct
GraphQL type is returned for ConsolePort instances.
Fixes #21478
2026-02-18 23:19:36 +01:00
Martin Hauser
ef52ac4203
chore(ruff): Enable RET rules and add explicit fallbacks
...
CI / build (20.x, 3.12) (push) Failing after 10s
CI / build (20.x, 3.13) (push) Failing after 10s
CI / build (20.x, 3.14) (push) Failing after 10s
CodeQL / Analyze (actions) (push) Failing after 30s
CodeQL / Analyze (javascript-typescript) (push) Failing after 46s
CodeQL / Analyze (python) (push) Failing after 46s
Adopt Ruff `RET` to improve return-flow consistency across the codebase.
Simplify control flow by removing redundant `else` blocks after
`return`, and add explicit `return None` (or equivalent) fallbacks
where appropriate to preserve existing behavior.
Fixes #21411
2026-02-18 16:49:36 -05:00
bctiemann
b22e490847
Fixes : #20490 - Add filtering of Script objects based on object permissions with custom constraints ( #21212 )
2026-02-18 15:37:40 -05:00
Martin Hauser
945e7ade0a
Fixes #21407 : Enable I (isort) and stabilize import ordering ( #21458 )
...
CI / build (20.x, 3.12) (push) Failing after 10s
CI / build (20.x, 3.13) (push) Failing after 9s
CI / build (20.x, 3.14) (push) Failing after 9s
CodeQL / Analyze (actions) (push) Failing after 37s
CodeQL / Analyze (javascript-typescript) (push) Failing after 48s
CodeQL / Analyze (python) (push) Failing after 49s
- Adopt Ruff `I` (isort) rules for consistent import sorting
- Add two `# isort: split` boundaries to keep required imports pinned
in `__init__.py` modules
2026-02-18 10:41:51 -06:00
github-actions
7300104cea
Update source translation strings
CodeQL / Analyze (actions) (push) Failing after 36s
CodeQL / Analyze (javascript-typescript) (push) Failing after 41s
CodeQL / Analyze (python) (push) Failing after 42s
2026-02-18 05:28:02 +00:00
bctiemann
2900429769
Merge pull request #21441 from netbox-community/21410-tighten-up-ruff-configuration-defaults
...
CI / build (20.x, 3.12) (push) Failing after 11s
CI / build (20.x, 3.13) (push) Failing after 11s
CI / build (20.x, 3.14) (push) Failing after 10s
CodeQL / Analyze (actions) (push) Failing after 1m3s
CodeQL / Analyze (javascript-typescript) (push) Failing after 1m14s
CodeQL / Analyze (python) (push) Failing after 1m15s
Fixes #21410 : Expand Ruff exclusions and standardize formatting settings
2026-02-17 13:14:11 -05:00
Martin Hauser
278c82dd88
chore(ruff): Expand configuration for linting and formatting
...
Update `ruff.toml` with additional exclusions, linting rules, and
formatting preferences. Includes support for respecting `.gitignore`
and a consistent coding style.
Fixes #21410
2026-02-17 18:31:15 +01:00
Martin Hauser
951d856c3c
feat(dcim): Add Cable cloning with Termination mapping
...
Introduce `clone()` method for the Cable model to enable cloning
its attributes, including termination type and parent selectors.
Updates mappings to align with CableForm workflows, supporting
"Clone" and "Create & Add Another" actions.
Fixes #21429
2026-02-17 18:30:36 +01:00
Jeremy Stretch
c029782cf5
Release v4.5.3
v4.5.3
2026-02-17 10:37:44 -05:00
Martin Hauser
bdd23f3d17
fix(extras): Handle username fallback for job events
...
Fallback to the associated user when username is missing from job
lifecycle event contexts. Add a regression test to ensure JOB_COMPLETED
webhooks are enqueued without a request context.
Fixes #21371
2026-02-17 08:15:58 -05:00
github-actions
af6e18b7d4
Update source translation strings
CodeQL / Analyze (actions) (push) Failing after 54s
CodeQL / Analyze (javascript-typescript) (push) Failing after 59s
CodeQL / Analyze (python) (push) Failing after 1m1s
2026-02-17 05:26:34 +00:00
Jeremy Stretch
816c5d4bea
Fixes #21412 : Defer monkey-patching until after settings have been loaded ( #21415 )
CI / build (20.x, 3.12) (push) Failing after 13s
CI / build (20.x, 3.13) (push) Failing after 10s
CI / build (20.x, 3.14) (push) Failing after 9s
CodeQL / Analyze (actions) (push) Failing after 1m0s
CodeQL / Analyze (javascript-typescript) (push) Failing after 1m10s
CodeQL / Analyze (python) (push) Failing after 1m9s
2026-02-16 18:17:50 +01:00
Martin Hauser
f4c3c90bab
perf(filters): Avoid ContentType join in ContentTypeFilter
...
Resolve the ContentType via get_by_natural_key() and filter by the
FK value to prevent an unnecessary join to django_content_type.
Fixes #21420
2026-02-16 12:06:31 -05:00
Martin Hauser
862593f2dd
fix(circuits): Persist CircuitType owner field
...
CircuitTypeForm rendered `owner` twice and did not persist ownership
because the displayed fields didn't match the fields processed by the
form. Remove `owner` from the fieldset and include it in `Meta.fields`
to keep rendering and form processing in sync.
Fixes #21397
2026-02-16 08:54:34 -05:00
Martin Hauser
f4c27fd494
fix(ipam): Use bulk_update in VLANGroup VID range migration
...
Replace per-row `save()` calls with `bulk_update` when populating
VLANGroup VLAN ID ranges during migration.
This avoids triggering post_save handlers (e.g. search cache/indexing)
on existing VLANGroup records and updates only the relevant fields,
improving both reliability and performance on larger databases.
Fixes #21375
2026-02-16 08:53:16 -05:00
Martin Hauser
ae736ef407
fix(dcim): Render device height as rack units via floatformat
...
Use `TemplatedAttr` for device height and render using Django's
`floatformat` filter so 0.0 is displayed as `0U` (and whole-U values
omit the decimal).
Fixes #21267
2026-02-16 08:37:50 -05:00
github-actions
d95b1186fb
Update source translation strings
CodeQL / Analyze (actions) (push) Failing after 31s
CodeQL / Analyze (javascript-typescript) (push) Failing after 36s
CodeQL / Analyze (python) (push) Failing after 38s
2026-02-14 05:18:04 +00:00