Commit Graph

13585 Commits

Author SHA1 Message Date
Jeremy Stretch
630d9e43d5 Extend filters for circuit terminations 2025-04-17 16:52:51 -04:00
Jeremy Stretch
268f33d22f Fixes #19213: Fix dropdown field rendering by reverting to Tabler v1.0 (#19232) 2025-04-17 07:29:40 -07:00
Jeremy Stretch
3324b43109 Release v4.3-beta1 (#19172)
* Draft changelog for v4.3 release

* Add release notes summary & nav link

* Docs cleanup

* Update Python dependencies

* Update static assets

* Revert errant change to schema

* Fix minimum PostgreSQL version

* Misc cleanup

* Correct issue numbers in change log
2025-04-14 15:12:47 -04:00
bctiemann
6b1c128a23 Remove #18095 from v4.2.5 release notes (#19165) 2025-04-14 13:56:37 -04:00
Jeremy Stretch
76053f2591 Fixes #19173: Fix heading text on table config form (#19174) 2025-04-14 10:14:10 -07:00
bctiemann
64643ebdad Merge pull request #19170 from netbox-community/18287-last_sync-column
#18287: Add a `last_synced` table column
2025-04-14 11:26:40 -04:00
Jeremy Stretch
beef82df80 #17653: Style JSON data for config & export templates (#19171) 2025-04-14 07:25:55 -07:00
Jeremy Stretch
b6b1312406 #19002: Display boolean attributes as checkmarks (#19168) 2025-04-14 07:57:15 -05:00
Jeremy Stretch
2eb135f0db #18287: Add a last_synced table column 2025-04-14 08:48:20 -04:00
Jeremy Stretch
5d539821dd #14591, #17841: Adjust default weighting (#19155)
* #14591, #17841: Adjust default weighting

* Fix tests
2025-04-11 14:27:55 -05:00
Arthur
e77d0ba1de 17170 ContactGroup Serializer nested and fix related objects 2025-04-11 15:13:40 -04:00
Arthur
ec759caa5a 17608 L2VPNSerializer Status should be ChoiceField 2025-04-11 14:42:34 -04:00
Arthur
2ef4445b1b 18352 power outlet choicefield for API serializer 2025-04-11 13:25:46 -04:00
Arthur
359a12313a 19073 fix display of installed plugins 2025-04-11 13:23:16 -04:00
Jeremy Stretch
ab0466ba3d Fixes: #18783 Add a tag_id filter for all models which support tagging (#18889) (#19142) 2025-04-11 09:26:46 -07:00
Jason Novinger
8f6258655a Closes #8423: Allow assigning Service to FHRP Group, in addition to Device and VirtualMachine (#19005) 2025-04-11 07:27:31 -07:00
Jeremy Stretch
891833a8ed Merge main into feature 2025-04-10 17:17:21 -04:00
Jeremy Stretch
37da7f8582 Closes #14591: Saved table configurations (#19101)
* Add SavedTableConfig

* Update table configuration logic to support TableConfigs

* Update table config link when updating table

* Correct docstring

* Misc cleanup

* Use multi-select widgets for column selection

* Return null config params for tables with no model

* Fix auto-selection of selected columns

* Update migration

* Clean up template

* Enforce enabled/shared flags

* Search/filter by table name

* Misc cleanup

* Fix population of selected columns

* Ordering field should not be required

* Enable cloning for TableConfig

* Misc cleanup

* Add model documentation for TableConfig

* Drop slug field from TableConfig

* Improve TableConfig validation

* Remove add button from TableConfig list view

* Fix ordering validation to account for leading hyphens
2025-04-10 15:48:02 -05:00
Jeremy Stretch
e07230a8bd Closed #9763: Treat IP ranges as fully populated (#19064) 2025-04-09 07:30:11 -07:00
Arthur Hanson
b8bc5fffd5 19073 allow plugins to be marked as hidden or disabled in plugins table (#19087)
* 19073 allow plugins to be marked as hidden or disabled in plugins table

* 19073 allow plugins to be marked as hidden or disabled in plugins table

* 19073 allow plugins to be marked as hidden or disabled in plugins table

* 19073 review changes

* Rename 'unlinked' to 'static' & update docs

---------

Co-authored-by: Jeremy Stretch <jstretch@netboxlabs.com>
2025-04-09 08:02:38 -04:00
Renato Almeida de Oliveira
70f48b6c85 Closes #17653: Add function to trim whitespaces in export templates via jinja environment settings (#19078)
* Create RenderMixin, and unify template_code rendering and exporting

* Join migrations

* Add DEFAULT_MIME_TE constant

* Move RenderMixin to extras.models.mixins, Rename RenderMixin to RenderTemplateMixin

* Add render_jinja2 to __all__

* Rename ConfigTemplateFilterForm rendering FieldSet

* ConfigTemplate lint

* Simplify ExportTemplate get_context

* Fix table order, and add fields for translations

* Update Serializers

* Update forms, tables, graphQL, API

* Add extra tests for ConfigTemplate and ExportTemplate

* Documentation update

* Fix typo

* Misc cleanup

* Clean up template layouts

---------

Co-authored-by: Jeremy Stretch <jstretch@netboxlabs.com>
2025-04-08 10:37:15 -04:00
bctiemann
91560d0fc4 Merge pull request #19070 from netbox-community/17166-remove-limit_choices_to
Closes #17166: Remove obsolete `limit_choices_to` argument from ForeignKey & M2M fields
2025-04-07 14:10:05 -04:00
bctiemann
9d973b0e7f Merge pull request #19075 from netbox-community/19004-deprecate-inventory-items
Closes #19004: Mark inventory items as deprecated in the documentation
2025-04-07 10:29:19 -04:00
bctiemann
b62b3b803e Merge pull request #19084 from netbox-community/19083-django-52
Closes #19083: Upgrade Django to v5.2.0
2025-04-07 10:28:04 -04:00
Jeremy Stretch
b551b02b16 Closes #18236: Upgrade to HTMX v2.0 (#19077) 2025-04-04 09:16:13 -05:00
Jeremy Stretch
6e3d6c9acc Closes #19083: Upgrade Django to v5.2.0 2025-04-04 09:39:04 -04:00
Jeremy Stretch
2402e91b90 Closes #16058: Fix circular import involving register_model_view() (#19076) 2025-04-03 19:09:04 -07:00
Jeremy Stretch
1f8928e623 Closes #18191: Remove duplicate SQL indexes (#19074)
* Closes #18191: Remove redundant SQL indexes

* Update developer documentation

* Add a system check for duplicate indexes
2025-04-03 15:16:57 -05:00
Jeremy Stretch
ebd5643412 Closes #19004: Mark inventory items as deprecated in the documentation 2025-04-03 14:49:54 -04:00
Jeremy Stretch
32ab9b7fe9 Closes #17166: Remove obsolete limit_choices_to argument from ForeignKey & M2M fields 2025-04-03 09:17:20 -04:00
Jeremy Stretch
8073e2ef19 Closes #18785: Allow for custom rack/device/module airflow choices (#19054) 2025-04-01 14:06:23 -07:00
Jeremy Stretch
7be50617b3 Closes #16630: Enable plugins to embed custom <head> content (#19055) 2025-04-01 14:09:49 -05:00
Jeremy Stretch
96920a2363 Closes #19002: Module type profiles (#19014)
* Move Module & ModuleType models to a separate file

* Add ModuleTypeProfile & related fields

* Initial work on JSON schema validation

* Add attributes property on ModuleType

* Introduce MultipleOfValidator

* Introduce JSONSchemaProperty

* Enable dynamic form field rendering

* Misc cleanup

* Fix migration conflict

* Ensure deterministic ordering of attriubte fields

* Support choices & default values

* Include module type attributes on module view

* Enable modifying individual attributes via REST API

* Enable filtering by attribute values

* Add documentation & tests

* Schema should be optional

* Include attributes column for profiles

* Profile is nullable

* Include some initial profiles to be installed via migration

* Fix migrations conflict

* Fix filterset test

* Misc cleanup

* Fixes #19023: get_field_value() should respect null values in bound forms (#19024)

* Skip filters which do not specify a JSON-serializable value

* Fix handling of array item types

* Fix initial data in schema field during bulk edit

* Implement sanity checking for JSON schema definitions

* Fall back to filtering by string value
2025-04-01 12:05:06 -05:00
Renato Almeida de Oliveira
fdf3985a43 Fixes: #18305 make contacts mixin available for plugins (#19029) 2025-04-01 09:03:25 -04:00
Arthur Hanson
a581f94de5 Fixes #18245: Make DeviceRole Hierarchical (#19008)
Made DeviceRoles hierarchical, had to also change the filtersets for Device, ConfigContext and VirtualMachine to use the TreeNodeMultipleChoiceFilter.

Note: The model was changed to use NestedGroupModel, a side-effect of this is it also adds comments field, but I thought that was better then doing a one-off just for DeviceRole and having to define the fields, validators, etc.. - keeps everything DRY / consistent.

* 18981 Make Device Roles Hierarchical

* 18981 forms, serializer

* 18981 fix tests

* 18981 fix tests

* 18981 fix tests

* 18981 fix tests

* 18981 fix tests

* 18981 fix migration merge

* 18981 fix tests

* 18981 fix filtersets

* 18981 fix tests

* 18981 comments

* 18981 review changes
2025-03-28 14:32:02 -05:00
Arthur Hanson
6c3c601573 18417 Add outer_height to racks (#18940)
* 18417 add rack outer height

* 18417 add rack outer height

* 18417 fix tests

* 18417 fix validation message

* Update netbox/dcim/filtersets.py

Co-authored-by: Jeremy Stretch <jstretch@netboxlabs.com>

* Update netbox/dcim/filtersets.py

Co-authored-by: Jeremy Stretch <jstretch@netboxlabs.com>

* Update netbox/dcim/models/racks.py

Co-authored-by: Jeremy Stretch <jstretch@netboxlabs.com>

* Update netbox/dcim/models/racks.py

Co-authored-by: Jeremy Stretch <jstretch@netboxlabs.com>

* Update netbox/dcim/models/racks.py

Co-authored-by: Jeremy Stretch <jstretch@netboxlabs.com>

* Update netbox/dcim/models/racks.py

Co-authored-by: Jeremy Stretch <jstretch@netboxlabs.com>

* 16224 review changes

* 16224 review changes

* 16224 update table display

* 18417 use TemplateColumn

* 18417 review changes

---------

Co-authored-by: Jeremy Stretch <jstretch@netboxlabs.com>
2025-03-26 08:42:13 -04:00
Arthur Hanson
493b38b54a Closes #16224 GraphQL Pagination (#18903)
* 16244 add pagination

* 16244 add pagination

* 16244 fix order_by pagination

* 16224 document pagination

* 16224 remove extraneous code

* 16224 missing core types

* 16224 review changes

* 16224 review changes

* 16224 review changes
2025-03-20 15:00:14 -05:00
Jason Novinger
1ceacdae63 Fixes #17443: Adds ExportTemplate.file_name field (#18911)
* Fixes #17443: Adds ExportTemplate.file_name field

* Addresses PR feedback

- Adds `file_name` to `ExportTemplateBulkEditForm.nullable_fields`
- Shortens max length of `ExportTemplate.file_name` to 200 chars
- Adds tests for `ExportTemplateFilterSet.file_extension`

* Fixes migration conflict caused by fix for #17841
2025-03-20 09:17:56 -04:00
Jason Novinger
e61a4726b0 Closes #17841 Allows Tags to be displayed in specified order (#18930) 2025-03-19 10:17:35 -07:00
Jeremy Stretch
dd4e5021d9 Closes #18751: Set the default value of ALLOW_TOKEN_RETRIEVAL to False (#18943)
* Closes #18751: Set the default value of ALLOW_TOKEN_RETRIEVAL to False

* Enable token retrieval during testing
2025-03-19 09:40:54 -05:00
bctiemann
16e03b4c84 Fix migration conflict in tenancy (#18957) 2025-03-19 09:38:10 -05:00
bctiemann
db21bbef44 Merge pull request #18859 from netbox-community/17602-comments-field-for-nested-models
Closes #17602: adds comments field to NestedGroupModel children
2025-03-19 09:50:11 -04:00
Arthur Hanson
81c3ecbedb 17170 Add ability to add contacts to multiple contact groups (#18885)
* 17170 Allow multiple Group assignments for Contacts

* 17170 update docs

* 17170 update api, detail view, graphql

* 17170 fixes

* 17170 fixes

* 17170 fixes

* 17170 fixes

* 17170 fixes

* 17170 fixes

* 17170 fix bulk import

* 17170 test fixes

* 17170 test fixes

* 17170 test fixes

* 17178 review changes

* 17178 review changes

* 17178 review changes

* 17178 review changes

* 17178 review changes

* 17178 review changes

* 17170 update migration

* 17170 bulk edit form
2025-03-18 14:05:02 -04:00
Jeremy Stretch
2eb5ab3261 Closes #18780: External database configuration (#18912) 2025-03-17 10:23:37 -07:00
bctiemann
496f114570 Closes: #15842 - Option to hide local login form if SSO is in use (#18924)
Closes: #15842

Branched from #18145 by @tobiasge

Provides a new LOGIN_FORM_HIDDEN setting which allows the administrator to hide the local login form, intended only to be used when SSO is used exclusively for authentication. Note that this means local login will be impossible in the event of SSO provider issues, and can be remedied only through a change to the application config and a restart of the service.


* #15842 - Hide login form

This doesn't implement the full solution proposed in #15842 but enables
administrators to hide the login form when users should only login with a SSO
provider. To prevent a complete lockout when the SSO provider is having
issues the GET parameter `skipsso` can be added to the login URL to show
the form regardless.

* Remove skipsso backdoor

* Add warning

---------

Co-authored-by: Tobias Genannt <tobias.genannt@qbeyond.de>
2025-03-17 12:02:18 -05:00
Arthur Hanson
5583595243 18896 Replace STORAGE_BACKEND with STORAGES and support Script running from S3 (#18680) 2025-03-17 07:36:34 -07:00
Jeremy Stretch
a52c474d3f Closes #18820: Bump minimum PostgreSQL version to 14 (#18909) 2025-03-14 13:45:44 -05:00
Jason Novinger
ec3c656f5b Removes banner from new migrations 2025-03-13 15:43:32 -05:00
Jason Novinger
b85a5f471b Extract base NestedGroupModelFilterSet with base search behavior
This can easily be extended (as in the case of LocationFilterSet) by
calling super() and ORing a filter to the queryset that is returned.
See: https://docs.djangoproject.com/en/5.1/ref/models/querysets/#or
2025-03-13 15:36:55 -05:00
Jason Novinger
cbe3f39eb5 Ensures overridden filterset search() methods include fields from OrganizationalModelFilterSet 2025-03-13 11:52:06 -05:00