mirror of
https://github.com/netbox-community/netbox.git
synced 2026-04-06 00:32:08 +02:00
Fix {module} placeholder resolution + add {module_path} for nested modules #654
Closed
opened 2026-04-05 17:02:43 +02:00 by MrUnknownDE
·
0 comments
No Branch/Tag Specified
main
21455-sql-indexes-audit
21357-register-model-actions
feature
20924-plugin-ui-components
21766-improve-test-coverage-for-sortable-table-columns
21157-export-template-public-models
21025-pre-render-config-contexts
21364-swagger
feature-ip-prefix-link
20911-dropdown-3
fix_module_substitution
21160-filterset
20911-dropdown-2
20044-elevation-stuck-lightmode
7604-filter-modifiers-v3
20660-script-load
19724-graphql
14884-script
19720-macaddress-interface-generic-relation
fix-19669-api-image-download
7604-filter-modifiers
19275-fixes-interface-bulk-edit
fix-17794-get_field_value_return_list
11507-show-aggregate-and-rir-on-api
9583-add_column_specific_search_field_to_tables
v4.5.7
v4.5.6
v4.5.5
v4.5.4
v4.5.3
v4.5.2
v4.5.1
v4.5.0
v4.4.10
v4.4.9
v4.5.0-beta1
v4.4.8
v4.4.7
v4.4.6
v4.4.5
v4.4.4
v4.4.3
v4.4.2
v4.4.1
v4.4.0
v4.3.7
v4.4.0-beta1
v4.3.6
v4.3.5
v4.3.4
v4.3.3
v4.3.2
v4.3.1
v4.3.0
v4.2.9
v4.3.0-beta2
v4.2.8
v4.3.0-beta1
v4.2.7
v4.2.6
v4.2.5
v4.2.4
v4.2.3
v4.2.2
v4.2.1
v4.2.0
v4.1.11
v4.1.10
v4.1.9
v4.1.8
v4.2-beta1
v4.1.7
v4.1.6
v4.1.5
v4.1.4
v4.1.3
v4.1.2
v4.1.1
v4.1.0
v4.0.11
v4.0.10
v4.0.9
v4.1-beta1
v4.0.8
v4.0.7
v4.0.6
v4.0.5
v4.0.3
v4.0.2
v4.0.1
v4.0.0
v3.7.8
v3.7.7
v4.0-beta2
v3.7.6
v3.7.5
v4.0-beta1
v3.7.4
v3.7.3
v3.7.2
v3.7.1
v3.7.0
v3.6.9
v3.6.8
v3.6.7
v3.7-beta1
v3.6.6
v3.6.5
v3.6.4
v3.6.3
v3.6.2
v3.6.1
v3.6.0
v3.5.9
v3.6-beta2
v3.5.8
v3.6-beta1
v3.5.7
v3.5.6
v3.5.5
v3.5.4
v3.5.3
v3.5.2
v3.5.1
v3.5.0
v3.4.10
v3.4.9
v3.5-beta2
v3.4.8
v3.5-beta1
v3.4.7
v3.4.6
v3.4.5
v3.4.4
v3.4.3
v3.4.2
v3.4.1
v3.4.0
v3.3.10
v3.3.9
v3.4-beta1
v3.3.8
v3.3.7
v3.3.6
v3.3.5
v3.3.4
v3.3.3
v3.3.2
v3.3.1
v3.3.0
v3.2.9
v3.2.8
v3.3-beta2
v3.2.7
v3.3-beta1
v3.2.6
v3.2.5
v3.2.4
v3.2.3
v3.2.2
v3.2.1
v3.2.0
v3.1.11
v3.1.10
v3.2-beta2
v3.1.9
v3.2-beta1
v3.1.8
v3.1.7
v3.1.6
v3.1.5
v3.1.4
v3.1.3
v3.1.2
v3.1.1
v3.1.0
v3.0.12
v3.0.11
v3.0.10
v3.1-beta1
v3.0.9
v3.0.8
v3.0.7
v3.0.6
v3.0.5
v3.0.4
v3.0.3
v3.0.2
v3.0.1
v3.0.0
v2.11.12
v3.0-beta2
v2.11.11
v2.11.10
v3.0-beta1
v2.11.9
v2.11.8
v2.11.7
v2.11.6
v2.11.5
v2.11.4
v2.11.3
v2.11.2
v2.11.1
v2.11.0
v2.10.10
v2.10.9
v2.11-beta1
v2.10.8
v2.10.7
v2.10.6
v2.10.5
v2.10.4
v2.10.3
v2.10.2
v2.10.1
v2.10.0
v2.9.11
v2.10-beta2
v2.9.10
v2.10-beta1
v2.9.9
v2.9.8
v2.9.7
v2.9.6
v2.9.5
v2.9.4
v2.9.3
v2.9.2
v2.9.1
v2.9.0
v2.9-beta2
v2.8.9
v2.9-beta1
v2.8.8
v2.8.7
v2.8.6
v2.8.5
v2.8.4
v2.8.3
v2.8.2
v2.8.1
v2.8.0
v2.7.12
v2.7.11
v2.7.10
v2.7.9
v2.7.8
v2.7.7
v2.7.6
v2.7.5
v2.7.4
v2.7.3
v2.7.2
v2.7.1
v2.7.0
v2.6.12
v2.6.11
v2.6.10
v2.6.9
v2.7-beta1
Solcon-2020-01-06
v2.6.8
v2.6.7
v2.6.6
v2.6.5
v2.6.4
v2.6.3
v2.6.2
v2.6.1
v2.6.0
v2.5.13
v2.5.12
v2.6-beta1
v2.5.11
v2.5.10
v2.5.9
v2.5.8
v2.5.7
v2.5.6
v2.5.5
v2.5.4
v2.5.3
v2.5.2
v2.5.1
v2.5.0
v2.4.9
v2.5-beta2
v2.4.8
v2.5-beta1
v2.4.7
v2.4.6
v2.4.5
v2.4.4
v2.4.3
v2.4.2
v2.4.1
v2.4.0
v2.3.7
v2.4-beta1
v2.3.6
v2.3.5
v2.3.4
v2.3.3
v2.3.2
v2.3.1
v2.3.0
v2.2.10
v2.3-beta2
v2.2.9
v2.3-beta1
v2.2.8
v2.2.7
v2.2.6
v2.2.5
v2.2.4
v2.2.3
v2.2.2
v2.2.1
v2.2.0
v2.1.6
v2.2-beta2
v2.1.5
v2.2-beta1
v2.1.4
v2.1.3
v2.1.2
v2.1.1
v2.1.0
v2.0.10
v2.1-beta1
v2.0.9
v2.0.8
v2.0.7
v2.0.6
v2.0.5
v2.0.4
v2.0.3
v2.0.2
v2.0.1
v2.0.0
v2.0-beta3
v1.9.6
v1.9.5
v2.0-beta2
v1.9.4-r1
v1.9.3
v2.0-beta1
v1.9.2
v1.9.1
v1.9.0-r1
v1.8.4
v1.8.3
v1.8.2
v1.8.1
v1.8.0
v1.7.3
v1.7.2-r1
v1.7.1
v1.7.0
v1.6.3
v1.6.2-r1
v1.6.1-r1
1.6.1
v1.6.0
v1.5.2
v1.5.1
v1.5.0
v1.4.2
v1.4.1
v1.4.0
v1.3.2
v1.3.1
v1.3.0
v1.2.2
v1.2.1
v1.2.0
v1.1.0
v1.0.7-r1
v1.0.7
v1.0.6
v1.0.5
v1.0.4
v1.0.3-r1
v1.0.3
1.0.0
Labels
Clear labels
beta
beta
beta
beta
breaking change
breaking change
breaking change
breaking change
breaking change
breaking change
breaking change
breaking change
breaking change
breaking change
breaking change
complexity: high
complexity: high
complexity: high
complexity: high
complexity: high
complexity: high
complexity: high
complexity: high
complexity: high
complexity: high
complexity: high
complexity: high
complexity: high
complexity: high
complexity: high
complexity: high
complexity: high
complexity: high
complexity: high
complexity: high
complexity: low
complexity: low
complexity: low
complexity: low
complexity: low
complexity: low
complexity: low
complexity: low
complexity: low
complexity: low
complexity: low
complexity: low
complexity: low
complexity: low
complexity: low
complexity: low
complexity: low
complexity: low
complexity: low
complexity: low
complexity: low
complexity: low
complexity: low
complexity: low
complexity: low
complexity: low
complexity: low
complexity: low
complexity: low
complexity: low
complexity: low
complexity: low
complexity: low
complexity: low
complexity: low
complexity: low
complexity: low
complexity: low
complexity: low
complexity: low
complexity: low
complexity: low
complexity: low
complexity: low
complexity: low
complexity: low
complexity: low
complexity: low
complexity: low
complexity: low
complexity: low
complexity: low
complexity: low
complexity: low
complexity: low
complexity: low
complexity: low
complexity: low
complexity: low
complexity: low
complexity: low
complexity: low
complexity: low
complexity: low
complexity: low
complexity: low
complexity: low
complexity: low
complexity: low
complexity: low
complexity: low
complexity: low
complexity: low
complexity: low
complexity: low
complexity: low
complexity: low
complexity: low
complexity: low
complexity: low
complexity: low
complexity: low
complexity: low
complexity: low
complexity: low
complexity: low
complexity: low
complexity: medium
complexity: medium
complexity: medium
complexity: medium
complexity: medium
complexity: medium
complexity: medium
complexity: medium
complexity: medium
complexity: medium
complexity: medium
complexity: medium
complexity: medium
complexity: medium
complexity: medium
complexity: medium
complexity: medium
complexity: medium
complexity: medium
complexity: medium
complexity: medium
complexity: medium
complexity: medium
complexity: medium
complexity: medium
complexity: medium
complexity: medium
complexity: medium
complexity: medium
complexity: medium
complexity: medium
complexity: medium
complexity: medium
complexity: medium
complexity: medium
complexity: medium
complexity: medium
complexity: medium
complexity: medium
complexity: medium
complexity: medium
complexity: medium
complexity: medium
complexity: medium
complexity: medium
complexity: medium
complexity: medium
complexity: medium
complexity: medium
complexity: medium
complexity: medium
complexity: medium
complexity: medium
complexity: medium
complexity: medium
complexity: medium
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
netbox
pending closure
pending closure
pending closure
pending closure
pending closure
pending closure
pending closure
pending closure
pending closure
pending closure
pending closure
pending closure
pending closure
pending closure
pending closure
pending closure
pending closure
pending closure
pending closure
pending closure
pending closure
pending closure
pending closure
pending closure
pending closure
pending closure
pending closure
pending closure
pending closure
pending closure
pending closure
pending closure
pending closure
pending closure
pending closure
pending closure
pending closure
pending closure
pending closure
pending closure
pending closure
pending closure
pending closure
pending closure
plugin candidate
plugin candidate
plugin candidate
severity: high
severity: high
severity: high
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: low
severity: medium
severity: medium
severity: medium
severity: medium
severity: medium
severity: medium
severity: medium
severity: medium
severity: medium
severity: medium
severity: medium
severity: medium
severity: medium
severity: medium
severity: medium
severity: medium
severity: medium
severity: medium
severity: medium
severity: medium
severity: medium
severity: medium
severity: medium
severity: medium
severity: medium
severity: medium
severity: medium
severity: medium
severity: medium
severity: medium
severity: medium
severity: medium
severity: medium
severity: medium
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: accepted
status: backlog
status: backlog
status: backlog
status: backlog
status: backlog
status: backlog
status: backlog
status: backlog
status: backlog
status: backlog
status: backlog
status: backlog
status: backlog
status: backlog
status: backlog
status: backlog
status: backlog
status: backlog
status: backlog
status: backlog
status: backlog
status: backlog
status: backlog
status: backlog
status: backlog
status: backlog
status: backlog
status: backlog
status: backlog
status: backlog
status: backlog
status: backlog
status: backlog
status: backlog
status: backlog
status: backlog
status: backlog
status: backlog
status: backlog
status: backlog
status: backlog
status: backlog
status: backlog
status: backlog
status: blocked
status: blocked
status: blocked
status: blocked
status: blocked
status: blocked
status: blocked
status: blocked
status: declined
status: duplicate
status: duplicate
status: duplicate
status: duplicate
status: duplicate
status: duplicate
status: duplicate
status: duplicate
status: duplicate
status: duplicate
status: duplicate
status: duplicate
status: duplicate
status: duplicate
status: duplicate
status: duplicate
status: duplicate
status: duplicate
status: duplicate
status: duplicate
status: duplicate
status: duplicate
status: duplicate
status: duplicate
status: duplicate
status: duplicate
status: duplicate
status: duplicate
status: duplicate
status: duplicate
status: duplicate
status: duplicate
status: duplicate
status: duplicate
status: duplicate
status: duplicate
status: duplicate
status: duplicate
status: duplicate
status: duplicate
status: duplicate
status: duplicate
status: duplicate
status: needs owner
status: needs owner
status: needs owner
status: needs owner
status: needs owner
status: needs owner
status: needs owner
status: needs owner
status: needs owner
status: needs owner
status: needs owner
status: needs owner
status: needs owner
status: needs owner
status: needs owner
status: needs owner
status: needs owner
status: needs owner
status: needs owner
status: needs owner
status: needs owner
status: needs owner
status: needs owner
status: needs owner
status: needs owner
status: needs owner
status: needs owner
status: needs owner
status: needs owner
status: needs owner
status: needs owner
status: needs owner
status: needs owner
status: needs owner
status: needs owner
status: needs owner
status: needs triage
status: needs triage
status: revisions needed
status: revisions needed
status: revisions needed
status: revisions needed
status: revisions needed
status: revisions needed
status: revisions needed
status: revisions needed
status: revisions needed
status: revisions needed
status: revisions needed
status: revisions needed
status: revisions needed
status: revisions needed
status: revisions needed
status: revisions needed
status: revisions needed
status: revisions needed
status: revisions needed
status: revisions needed
status: revisions needed
status: revisions needed
status: revisions needed
status: revisions needed
status: revisions needed
status: revisions needed
status: revisions needed
status: under review
status: under review
status: under review
status: under review
status: under review
status: under review
status: under review
status: under review
status: under review
status: under review
status: under review
status: under review
status: under review
status: under review
status: under review
status: under review
status: under review
status: under review
topic: GraphQL
topic: GraphQL
topic: GraphQL
topic: GraphQL
topic: GraphQL
topic: GraphQL
topic: GraphQL
topic: GraphQL
topic: GraphQL
topic: GraphQL
topic: OpenAPI
topic: UI/UX
topic: UI/UX
topic: cabling
topic: cabling
topic: cabling
topic: cabling
topic: custom scripts
topic: custom scripts
topic: custom scripts
topic: custom scripts
topic: custom scripts
topic: custom scripts
topic: migrations
topic: plugins
topic: plugins
topic: testing
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: bug
type: deprecation
type: deprecation
type: deprecation
type: deprecation
type: deprecation
type: deprecation
type: documentation
type: documentation
type: documentation
type: documentation
type: documentation
type: documentation
type: documentation
type: documentation
type: documentation
type: documentation
type: documentation
type: documentation
type: documentation
type: documentation
type: documentation
type: documentation
type: documentation
type: documentation
type: documentation
type: documentation
type: documentation
type: documentation
type: documentation
type: documentation
type: documentation
type: documentation
type: documentation
type: documentation
type: documentation
type: documentation
type: documentation
type: documentation
type: documentation
type: documentation
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: feature
type: housekeeping
type: housekeeping
type: housekeeping
type: housekeeping
type: housekeeping
type: housekeeping
type: housekeeping
type: housekeeping
type: housekeeping
type: housekeeping
type: housekeeping
type: housekeeping
type: housekeeping
type: housekeeping
type: housekeeping
type: housekeeping
type: housekeeping
type: housekeeping
type: housekeeping
type: housekeeping
type: housekeeping
type: housekeeping
type: housekeeping
type: housekeeping
type: housekeeping
type: housekeeping
type: housekeeping
type: housekeeping
type: housekeeping
type: housekeeping
type: housekeeping
type: housekeeping
type: housekeeping
type: housekeeping
type: housekeeping
type: housekeeping
type: housekeeping
type: housekeeping
type: housekeeping
type: housekeeping
type: housekeeping
type: housekeeping
type: housekeeping
type: housekeeping
type: housekeeping
type: housekeeping
type: housekeeping
type: housekeeping
type: housekeeping
type: housekeeping
type: housekeeping
type: housekeeping
type: performance
type: performance
type: performance
type: performance
type: performance
type: performance
type: performance
type: performance
type: performance
type: performance
type: performance
type: performance
type: performance
type: performance
type: performance
type: performance
type: performance
type: performance
type: performance
type: performance
type: performance
type: performance
type: performance
type: performance
type: performance
type: removal
type: removal
type: translation
No Label
Milestone
No items
No Milestone
Projects
Clear projects
No project
Assignees
MrUnknownDE
Clear assignees
No Assignees
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: github/netbox#654
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @mrmrcoleman on 1/5/2026
Summary
Fixes the
{module}placeholder resolution for nested module bays and introduces a new{module_path}placeholder for automatic full-path expansion.Fixes: #20474, #20467, #19796
Problem
The current implementation requires an exact match between the number of
{module}tokens in template names and the depth of the module bay tree. This forces users to create duplicate ModuleTypes for each nesting level, breaking the "pluggable transceivers" use case where a single SFP/QSFP module should install at any depth.Additionally, the
{module}placeholder was not resolved in thepositionfield of module bays, leaving literal{module}strings in positions when installing nested modules.Solution
This PR introduces two distinct placeholders:
{module_path}(NEW)/{module}(UPDATED BEHAVIOR)Why Two Placeholders?
This design supports two complementary workflows:
{module_path}in component names for automatic path joining{module}in position field to build paths likeeth{module}-{position}where users control the separator in the position field itselfValidation Rules
{module_path}allowed per template attribute{module}and{module_path}in the same attribute{module}tokens must match tree depth exactly (existing behavior)Testing
{module_path}at depths 1, 2, and 3{module}parent-only behavior{module}and{module_path}Why This Targets
featureBranchThis PR targets
featurebecause it introduces new functionality ({module_path}placeholder). However, all changes are backwards compatible:{module}usage now gives parent position (previously gave full path for depth-1 only){module}behavior is unchangedTo target
mainfor 4.5.x: The behavioral change for single{module}(parent-only vs. full-path) is technically a change, but since the previous behavior was problematic for nested modules anyway, this could be considered a bug fix. Maintainers can decide if this warrants backporting.Changes
dcim/constants.py: AddedMODULE_PATH_TOKEN,resolve_module_placeholders()helperdcim/forms/common.py: Updated validation for both placeholder typesdcim/models/device_component_templates.py: Uses centralized helper for name/label/position resolutiondcim/tests/test_models.py: Comprehensive test coverage for all scenarios