github-actions
cea83f31b8
Update source translation strings
CI / build (20.x, 3.10) (push) Waiting to run
CI / build (20.x, 3.11) (push) Waiting to run
CI / build (20.x, 3.12) (push) Waiting to run
CodeQL / Analyze (${{ matrix.language }}) (none, actions) (push) Waiting to run
CodeQL / Analyze (${{ matrix.language }}) (none, javascript-typescript) (push) Waiting to run
CodeQL / Analyze (${{ matrix.language }}) (none, python) (push) Waiting to run
2025-08-08 05:09:12 +00:00
Daniel Sheppard
6c0dc8b630
Correct mistake made on determination of whether it is a tag or not
CI / build (20.x, 3.10) (push) Has been cancelled
CI / build (20.x, 3.11) (push) Has been cancelled
CI / build (20.x, 3.12) (push) Has been cancelled
2025-08-07 21:12:25 -05:00
bctiemann
ab8e3ee956
Merge pull request #20037 from netbox-community/19988-has_feature-invalid-objecttype
...
CI / build (20.x, 3.10) (push) Waiting to run
CI / build (20.x, 3.11) (push) Waiting to run
CI / build (20.x, 3.12) (push) Waiting to run
Fixes #19988 : `has_feature()` should gracefully handle invalid ContentTypes
2025-08-07 20:50:32 -04:00
bctiemann
1c86f81298
Merge pull request #20034 from netbox-community/20033-bookmark-bulk-deletion
...
Fixes #20033 : Fix exception when bulk deleting bookmarks
2025-08-07 20:29:10 -04:00
Jeremy Stretch
37d6c160b9
Closes #20003 : Introduce mechanism to register callbacks for webhook context ( #20025 )
...
CI / build (20.x, 3.10) (push) Waiting to run
CI / build (20.x, 3.11) (push) Waiting to run
CI / build (20.x, 3.12) (push) Waiting to run
* Closes #20003 : Introduce mechanism to register callbacks for webhook context
* Swap ContentType with ObjectType
* Add plugin dev documentation for webhook callbacks
* Fix tests
* Add note about namespacing webhook data
2025-08-07 16:28:53 -04:00
Jeremy Stretch
148fac1086
Closes #19740 : Enable recursive nesting for platforms
2025-08-07 16:19:24 -04:00
Daniel Sheppard
630d7aa4c2
Clarify additional branch functionality
CI / build (20.x, 3.10) (push) Waiting to run
CI / build (20.x, 3.11) (push) Waiting to run
CI / build (20.x, 3.12) (push) Waiting to run
2025-08-07 08:27:13 -05:00
Daniel Sheppard
043275df19
Clarify label
2025-08-07 08:24:54 -05:00
Jonathan Ramstedt
122f612750
Fixes #19379 : allow standalone id in vlan-ids range list ( #20024 )
...
CI / build (20.x, 3.10) (push) Waiting to run
CI / build (20.x, 3.11) (push) Waiting to run
CI / build (20.x, 3.12) (push) Waiting to run
CodeQL / Analyze (${{ matrix.language }}) (none, actions) (push) Has been cancelled
CodeQL / Analyze (${{ matrix.language }}) (none, javascript-typescript) (push) Has been cancelled
CodeQL / Analyze (${{ matrix.language }}) (none, python) (push) Has been cancelled
* Fixes #19379 : allow standalone id in vlan-ids range list
* Misc cleanup
---------
Co-authored-by: Jeremy Stretch <jstretch@netboxlabs.com>
2025-08-07 08:56:07 -04:00
github-actions
65b36fd594
Update source translation strings
CodeQL / Analyze (${{ matrix.language }}) (none, actions) (push) Waiting to run
CodeQL / Analyze (${{ matrix.language }}) (none, javascript-typescript) (push) Waiting to run
CodeQL / Analyze (${{ matrix.language }}) (none, python) (push) Waiting to run
2025-08-07 05:08:34 +00:00
Jeremy Stretch
33d891e67b
Fixes #20028 : Restore bulk deletion button for bookmarks, notifications, and subscriptions ( #20032 )
CI / build (20.x, 3.10) (push) Waiting to run
CI / build (20.x, 3.11) (push) Waiting to run
CI / build (20.x, 3.12) (push) Waiting to run
2025-08-06 13:56:22 -07:00
Jeremy Stretch
e828ca5cb4
Fixes #20030 : Fix height of object list action buttons & others ( #20036 )
CI / build (20.x, 3.10) (push) Waiting to run
CI / build (20.x, 3.11) (push) Waiting to run
CI / build (20.x, 3.12) (push) Waiting to run
CodeQL / Analyze (${{ matrix.language }}) (none, actions) (push) Waiting to run
CodeQL / Analyze (${{ matrix.language }}) (none, javascript-typescript) (push) Waiting to run
CodeQL / Analyze (${{ matrix.language }}) (none, python) (push) Waiting to run
2025-08-06 13:49:52 -07:00
Jeremy Stretch
fce10c73b7
Closes #17222 : Improve visibility of notifications icon ( #20035 )
2025-08-06 14:28:01 -05:00
bctiemann
0cf76bc5c7
Merge pull request #20021 from netbox-community/19999-script-list-widget-misformatted
...
Fixes #19999 : Script list dashboard widget now displays correctly
2025-08-06 15:08:56 -04:00
Jeremy Stretch
13db4f728c
Fixes #19988 : has_feature() should gracefully handle invalid ContentTypes
2025-08-06 15:03:38 -04:00
Jeremy Stretch
4ce47e778b
Closes #18006 : Dispatch event when toggling color mode & document for plugin use ( #20031 )
2025-08-06 10:47:06 -05:00
Jeremy Stretch
11f228cae9
Fixes #20033 : Fix exception when bulk deleting bookmarks
2025-08-06 10:29:17 -04:00
Jeremy Stretch
3ecb904e37
Closes #20008 : Job logging for bulk operation background jobs ( #20022 )
...
CI / build (20.x, 3.10) (push) Waiting to run
CI / build (20.x, 3.11) (push) Waiting to run
CI / build (20.x, 3.12) (push) Waiting to run
* WIP
* Misc cleanup
2025-08-05 15:54:08 -05:00
Daniel Sheppard
a86cd9dfc6
Clarify comment
2025-08-05 15:49:01 -05:00
Daniel Sheppard
15541c6440
Fixes : #19998 - Add changelog entry when clearing M2M fields
2025-08-05 15:28:41 -05:00
Jason Novinger
0c70e9e140
Fixes #19986 : Fix plugin list view button URLs ( #20019 )
...
CI / build (20.x, 3.10) (push) Waiting to run
CI / build (20.x, 3.11) (push) Waiting to run
CI / build (20.x, 3.12) (push) Waiting to run
* Fixes #19986 : Fix plugin list view button URLs
Plugin list view action buttons (Add, Import, Export) were generating 404
errors because ObjectAction.get_url() was manually constructing viewnames
without the required "plugins:" namespace prefix for plugin models.
Replace manual viewname construction with NetBox's get_viewname() utility
function, which properly handles plugin detection and namespace prefixing
for both core and plugin models.
* Ensure expected URL patterns are registered, ensures tests pass
2025-08-05 08:26:43 -04:00
github-actions
6ce3012f93
Update source translation strings
CodeQL / Analyze (${{ matrix.language }}) (none, actions) (push) Has been cancelled
CodeQL / Analyze (${{ matrix.language }}) (none, javascript-typescript) (push) Has been cancelled
CodeQL / Analyze (${{ matrix.language }}) (none, python) (push) Has been cancelled
2025-08-05 05:08:54 +00:00
bctiemann
fec6cf705f
Merge pull request #20015 from mraerino/graphql-contains-prefix
...
CodeQL / Analyze (${{ matrix.language }}) (none, actions) (push) Waiting to run
CodeQL / Analyze (${{ matrix.language }}) (none, javascript-typescript) (push) Waiting to run
CodeQL / Analyze (${{ matrix.language }}) (none, python) (push) Waiting to run
CI / build (20.x, 3.10) (push) Has been cancelled
CI / build (20.x, 3.11) (push) Has been cancelled
CI / build (20.x, 3.12) (push) Has been cancelled
Implement `contains` filter for IPAM prefixes and IP ranges
2025-08-04 18:16:19 -04:00
Jason Novinger
9c6d0d1ddc
Fixes #19999 : Script list widget now displays correctly
...
- Extract script list content into reusable partial template
- Add object-list CSS class for proper embedded table styling
- Hide module headers and management actions in widget context
- Use compact buttons with icon-only labels for widgets
- Add test coverage for embedded parameter handling
The embedded version now renders cleanly in dashboard widgets while
preserving full functionality in the main script list page.
2025-08-04 16:52:11 -05:00
Jason Novinger
47359d9284
Fixes #20017 : ensures full ChangeLog change is highlighted ( #20018 )
2025-08-04 14:27:39 -07:00
Jeremy Stretch
669df62cde
Closes #18873 : Add a request timeout parameter to the RSS feed dashboard widget ( #20004 )
2025-08-04 14:23:33 -07:00
Marcus Weiner
9df0bdcfaf
Fixes #19622 : Allow loading graphql query from URL ( #20014 )
CI / build (20.x, 3.10) (push) Waiting to run
CI / build (20.x, 3.11) (push) Waiting to run
CI / build (20.x, 3.12) (push) Waiting to run
CodeQL / Analyze (${{ matrix.language }}) (none, actions) (push) Waiting to run
CodeQL / Analyze (${{ matrix.language }}) (none, javascript-typescript) (push) Waiting to run
CodeQL / Analyze (${{ matrix.language }}) (none, python) (push) Waiting to run
2025-08-04 09:28:59 -05:00
Jad Seifeddine
d222913716
Fixes : #19917 - Fix MAC address pagination duplicates by adding 'pk' to model ordering ( #19961 )
...
* Fix MAC address pagination duplicates by adding 'pk' to model ordering
Add 'pk' to MACAddress model ordering to ensure deterministic results
when multiple MAC addresses have the same value. This prevents the same
MAC address from appearing on multiple pages during pagination.
The issue occurred because Django's default ordering by 'mac_address'
alone is non-deterministic when multiple records share the same MAC
address value, causing inconsistent pagination results when the same
MAC address is assigned to multiple interfaces on a device.
Added regression test that verifies MAC addresses with identical values
are properly ordered by their primary key, ensuring consistent pagination
behavior across the application.
Fixes netbox-community#19917
* Remove test
* Resolve migration conflict
---------
Co-authored-by: Jad Seifeddine <jseifeddine@macquarietelecom.com>
Co-authored-by: Jeremy Stretch <jstretch@netboxlabs.com>
2025-08-04 10:15:05 -04:00
Jason Novinger
2c09973e01
Fixes #20009 : Fix DOM-based XSS vulnerability in search export functionality
...
Replace direct string concatenation with URLSearchParams to properly
encode user input in export link URLs, preventing injection of malicious
parameters or scripts through the search functionality.
Resolves CodeQL Alert #63 (js/xss-through-dom)
2025-08-04 09:12:49 -04:00
Marcus Weiner
4506c809d8
Fix formatting
2025-08-03 15:32:55 +02:00
Marcus Weiner
5d194214aa
Implement contains filter for IPAM IP ranges
2025-08-03 15:32:14 +02:00
Marcus Weiner
0827198cad
Implement contains filter for IPAM prefixes
2025-08-03 15:19:58 +02:00
github-actions
bb83187505
Update source translation strings
CodeQL / Analyze (${{ matrix.language }}) (none, actions) (push) Has been cancelled
CodeQL / Analyze (${{ matrix.language }}) (none, javascript-typescript) (push) Has been cancelled
CodeQL / Analyze (${{ matrix.language }}) (none, python) (push) Has been cancelled
2025-08-02 05:05:04 +00:00
Jeremy Stretch
aa9ee0e5c6
Closes #19977 : Denormalize device relationships on component models ( #19984 )
...
CodeQL / Analyze (${{ matrix.language }}) (none, python) (push) Waiting to run
CodeQL / Analyze (${{ matrix.language }}) (none, actions) (push) Waiting to run
CodeQL / Analyze (${{ matrix.language }}) (none, javascript-typescript) (push) Waiting to run
CI / build (20.x, 3.10) (push) Has been cancelled
CI / build (20.x, 3.11) (push) Has been cancelled
CI / build (20.x, 3.12) (push) Has been cancelled
* Closes #19977 : Denormalize site, location, and rack for device components
* Set blank=True on denormalized ForeignKeys
* Populate denormalized field in test data
* Ignore private fields when constructing test GraphQL requests
2025-08-01 15:40:15 -05:00
Jeremy Stretch
2b7600e659
Remove old "introduced in" notices
2025-08-01 15:57:26 -04:00
Jeremy Stretch
ae425d9da9
Fixes #19987 : Show changelog_message field only for models which support change logging
CI / build (20.x, 3.10) (push) Has been cancelled
CI / build (20.x, 3.11) (push) Has been cancelled
CI / build (20.x, 3.12) (push) Has been cancelled
2025-08-01 15:19:57 -04:00
Jeremy Stretch
128dd6e59d
Draft release notes for v4.4
2025-08-01 15:18:37 -04:00
Jeremy Stretch
35b9d80819
Closes #19968 : Use multiple selection lists for the assignment of object types when editing a permission ( #19991 )
...
CI / build (20.x, 3.10) (push) Waiting to run
CI / build (20.x, 3.11) (push) Waiting to run
CI / build (20.x, 3.12) (push) Waiting to run
CodeQL / Analyze (${{ matrix.language }}) (none, actions) (push) Waiting to run
CodeQL / Analyze (${{ matrix.language }}) (none, javascript-typescript) (push) Waiting to run
CodeQL / Analyze (${{ matrix.language }}) (none, python) (push) Waiting to run
* Closes #19968 : Use multiple selection lists for the assignment of object types when editing a permission
* Remove errant logging statements
* Defer compilation of choices for object_types
* Fix test data
2025-08-01 14:06:23 -05:00
Jeremy Stretch
d4b30a64ba
Fixes #20001 : is_api_request() should not evaluate a request's content type
2025-08-01 14:31:50 -04:00
Kyer Lasswell
8eefc39bf9
Closes #19920 : add ContactsMixin to ASN ( #19981 )
2025-08-01 13:24:25 -05:00
Jeremy Stretch
de53fd2bd1
Configure CodeQL to ignore compiled JS resources ( #20000 )
...
* Configure CodeQL to ignore compiled JS resources
* Enable CodeQL for feature branch
2025-08-01 12:39:25 -05:00
Jeremy Stretch
b97fe5e300
Closes #19973 : nbshell
improvements ( #19995 )
2025-08-01 10:14:59 -07:00
Jonathan Ramstedt
c7b68664f9
Closes #18843 : use color name in cable export ( #19983 )
2025-08-01 09:51:00 -07:00
Jeremy Stretch
a20715f229
Fixes #19321 : Reduce redundant database queries during bulk creation of devices ( #19993 )
...
* Fixes #19321 : Reduce redundant database queries during bulk creation of devices
* Add test for test_get_prefetchable_fields
2025-08-01 09:23:58 -05:00
Jeremy Stretch
ae55eed98f
Closes #19965 : Expand Prometheus metrics ( #19966 )
CI / build (20.x, 3.10) (push) Waiting to run
CI / build (20.x, 3.11) (push) Waiting to run
CI / build (20.x, 3.12) (push) Waiting to run
2025-07-31 13:27:50 -07:00
Jeremy Stretch
9a2fab1d48
Closes #19591 : Establish dedicated tab for image attachments ( #19919 )
...
* Initial work on #19591
* Ignore images cache directory
* Clean up thumbnails layout
* Include "add attachment" button
* Clean up ObjectImageAttachmentsView
* Add html_tag property to ImageAttachment
* Misc cleanup
* Collapse .gitignore files for /media
* Fix conditional in template
2025-07-31 16:22:04 -04:00
Jeremy Stretch
40dd36812c
Merge branch 'main' into feature
2025-07-31 15:24:33 -04:00
Jeremy Stretch
b5239984e7
Fixes #19985 : Fix ordering of migrations under dcim app ( #19992 )
2025-07-31 12:06:31 -07:00
Jeremy Stretch
b610cf37cf
Closes #19924 : Record model features on ObjectType ( #19939 )
...
CI / build (20.x, 3.10) (push) Has been cancelled
CI / build (20.x, 3.11) (push) Has been cancelled
CI / build (20.x, 3.12) (push) Has been cancelled
* Convert ObjectType to a concrete child model of ContentType
* Add public flag to ObjectType
* Catch post_migrate signal to update ObjectTypes
* Reference ObjectType records instead of registry for feature support
* Automatically create ObjectTypes
* Introduce has_feature() utility function
* ObjectTypeManager should not inherit from ContentTypeManager
* Misc cleanup
* Don't populate ObjectTypes during migration
* Don't automatically create ObjectTypes when a ContentType is created
* Fix test
* Extend has_feature() to accept a model or OT/CT
* Misc cleanup
* Deprecate get_for_id() on ObjectTypeManager
* Rename contenttypes.py to object_types.py
* Add index to features ArrayField
* Keep FK & M2M fields pointing to ContentType
* Add get_for_models() to ObjectTypeManager
* Add tests for manager methods & utility functions
* Fix migrations for M2M relations to ObjectType
* model_is_public() should return False for non-core & non-plugin models
* Order ObjectType by app_label & model name
* Resolve migrations conflict
2025-07-30 13:05:34 -04:00
Jason Novinger
1b8767f1e3
Remove housekeeping item from v4.3.5 rlease notes
2025-07-30 08:25:40 -04:00