Jeremy Stretch
c5801f9881
Fixes #18928 : Fix support for cascading deletions when cleaning up expired changelog records
2025-03-17 14:16:55 -04:00
Jeremy Stretch
d4f8cb72aa
Closes #18780 : External database configuration ( #18912 )
2025-03-17 10:23:37 -07:00
bctiemann
f69de12c6d
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
Jeremy Stretch
f86647dc28
Fixes #18884 : Handle tag assignments manually within deserialize_object ( #18908 )
2025-03-17 08:43:08 -07:00
Benjamin Dale
0094703609
Closes #18816:Add FC/UPC, FC/APC and FC/PC port types ( #18913 )
...
* Closes #18816:Add FC/UPC, FC/APC and FC/PC port types
* Remove release note
---------
Co-authored-by: Ben Dale <7621213-ben_dale@users.noreply.gitlab.com>
Co-authored-by: Jeremy Stretch <jstretch@netboxlabs.com>
2025-03-17 10:39:28 -04:00
Arthur Hanson
1b4e00aeda
18896 Replace STORAGE_BACKEND with STORAGES and support Script running from S3 ( #18680 )
2025-03-17 07:36:34 -07:00
Jeremy Stretch
ffe035567a
Closes #18820 : Bump minimum PostgreSQL version to 14 ( #18909 )
2025-03-14 13:45:44 -05:00
github-actions
f286449284
Update source translation strings
2025-03-14 05:02:07 +00:00
Jason Novinger
b45e256f27
Removes banner from new migrations
2025-03-13 15:43:32 -05:00
bctiemann
4f45328c77
Fixes : #18863 - Exempt MPTT-based models from centrally applying ordering on querysets ( #18867 )
2025-03-13 13:38:33 -07:00
Jason Novinger
06a206ee33
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
Jeremy Stretch
994e7eb9f4
Fixes #18872 : JournalEntry kind is a required field
2025-03-13 16:23:53 -04:00
Jason Novinger
2df68e29c9
Ensures overridden filterset search() methods include fields from OrganizationalModelFilterSet
2025-03-13 11:52:06 -05:00
Jason Novinger
1ea6f6e2ce
Ensures that all new comments fields render Markdown in tables
2025-03-13 11:52:06 -05:00
Jason Novinger
c0b019b735
Adds WirelessLANGroup.comments to all the required places
...
- [x] 1. Add the field to the model class
- [x] 2. Generate and run database migrations
- [NA] 3. Add validation logic to clean()
- [NA] 4. Update relevant querysets
- [x] 5. Update API serializer
- [x] 6. Add fields to forms
- [x] wireless.forms.model_forms, create/edit (e.g. model_forms.py)
- [x] wireless.forms.bulk_edit, bulk edit
- [x] wireless.forms.bulk_import, CSV import
- [NA] filter (UI and API)
- [x] 7. Extend object filter set
- [NA] 8. Add column to object table (Note: was already present)
- [x] 9. Update the SearchIndex
- [x] 10. Update the UI templates
- [x] 11. Create/extend test cases
- [NA] models
- [x] views
- [NA] forms
- [x] filtersets
- [x] api
- [NA] 12. Update the model's documentation
2025-03-13 11:52:06 -05:00
Jason Novinger
157df20ad4
Adds TenantGroup.comments to the required locations
...
- [x] 1. Add the field to the model class
- [x] 2. Generate and run database migrations
- [NA] 3. Add validation logic to clean()
- [NA] 4. Update relevant querysets
- [x] 5. Update API serializer
- [x] 6. Add fields to forms
- [x] tenancy.forms.model_forms, create/edit (e.g. model_forms.py)
- [x] tenancy.forms.bulk_edit, bulk edit
- [x] tenancy.forms.bulk_import, CSV import
- [NA] filter (UI and API)
- [x] 7. Extend object filter set
- [x] 8. Add column to object table
- [x] 9. Update the SearchIndex
- [x] 10. Update the UI templates
- [x] 11. Create/extend test cases
- [NA] models
- [x] views
- [NA] forms
- [x] filtersets
- [x] api
- [NA] 12. Update the model's documentation
2025-03-13 11:52:06 -05:00
Jason Novinger
b8352260ee
Adds ContactGroup.comments in the required locations
...
- [x] 1. Add the field to the model class
- [x] 2. Generate and run database migrations
- [NA] 3. Add validation logic to clean()
- [NA] 4. Update relevant querysets
- [x] 5. Update API serializer
- [x] 6. Add fields to forms
- [x] tenancy.forms.model_forms, create/edit (e.g. model_forms.py)
- [x] tenancy.forms.buld_edit, bulk edit
- [x] tenancy.dorms.bulk_import, CSV import
- [NA] filter (UI and API)
- [x] 7. Extend object filter set
- [x] 8. Add column to object table
- [x] 9. Update the SearchIndex
- [x] 10. Update the UI templates
- [x] 11. Create/extend test cases
- [NA] models
- [x] views
- [NA] forms
- [x] filtersets
- [x] api
- [NA] 12. Update the model's documentation
2025-03-13 11:52:06 -05:00
Jason Novinger
ed98756f3e
Adds SiteGroup.comments in the required locations
...
- [x] 1. Add the field to the model class
- [x] 2. Generate and run database migrations
- [NA] 3. Add validation logic to clean()
- [NA] 4. Update relevant querysets
- [x] 5. Update API serializer
- [x] 6. Add fields to forms
- [x] dcim.forms.model_forms.LocationForm, create/edit (e.g. model_forms.py)
- [x] dcim.forms.buld_edit.LocationBulkEditForm, bulk edit
- [x] dcim.dorms.bulk_import.LocationImportForm, CSV import
- [x] filter (UI and API)
- [x] 7. Extend object filter set
- [x] 8. Add column to object table
- [x] 9. Update the SearchIndex
- [x] 10. Update the UI templates
- [x] 11. Create/extend test cases
- [NA] models
- [x] views
- [NA] forms
- [x] filtersets
- [x] api
- [x] 12. Update the model's documentation
2025-03-13 11:52:06 -05:00
Jason Novinger
9a9d6cdedb
Adds Region.comments field in the required locations
...
- [x] 1. Add the field to the model class
- [x] 2. Generate and run database migrations
- [NA] 3. Add validation logic to clean()
- [NA] 4. Update relevant querysets
- [x] 5. Update API serializer
- [ ] 6. Add fields to forms
- [x] dcim.forms.model_forms.RegionForm, create/edit (e.g. model_forms.py)
- [x] dcim.forms.buld_edit.RegionBulkEditForm, bulk edit
- [x] dcim.dorms.bulk_import.RegionImportForm, CSV import
- [NA] filter (UI and API)
- [x] 7. Extend object filter set
- [x] 8. Add column to object table
- [x] 9. Update the SearchIndex
- [x] 10. Update the UI templates
- [x] 11. Create/extend test cases
- [NA] models
- [x] views
- [NA] forms
- [x] filtersets
- [x] api
- [NA] 12. Update the model's documentation
2025-03-13 11:52:06 -05:00
Jason Novinger
2e2c815c91
Update Location detail UI template
2025-03-13 11:52:06 -05:00
Jason Novinger
44efd5e833
Adds Location.comments field in the required locations
...
- [x] 1. Add the field to the model class
- [x] 2. Generate and run database migrations
- [NA] 3. Add validation logic to clean()
- [NA] 4. Update relevant querysets
- [x] 5. Update API serializer
- [x] 6. Add fields to forms
- [x] dcim.forms.model_forms.LocationForm, create/edit (e.g. model_forms.py)
- [x] dcim.forms.buld_edit.LocationBulkEditForm, bulk edit
- [x] dcim.dorms.bulk_import.LocationImportForm, CSV import
- [x] filter (UI and API)
- [NA] UI
- Note: could not find any comments related things in filtersets
- [x] API
- [x] 7. Extend object filter set
- [x] 8. Add column to object table
- [x] 9. Update the SearchIndex
- [x] 10. Update the UI templates
- [x] 11. Create/extend test cases
- [NA] models
- [x] views
- [NA] forms
- [x] filtersets
- [x] api
- [NA] 12. Update the model's documentation
2025-03-13 11:52:06 -05:00
Jason Novinger
ae7a47ca60
Adds comments field to abstract NestedGroupModel and associated migrations
...
Models affected:
- dcim: `Location`, `Region`, `SiteGroup`
- tenancy`: `ContactGroup`, `TenantGroup`
- wireless: `WirelessLANGroup`
2025-03-13 11:52:06 -05:00
Jeremy Stretch
ed135102be
Fixes #18880 : Delay enqueuing of background tasks until the DB transaction has been committed ( #18899 )
2025-03-13 11:34:12 -05:00
bctiemann
26e02ada30
Merge pull request #18822 from netbox-community/18743-django-52
...
Closes #18743 : Upgrade to Django 5.2
2025-03-13 10:58:58 -04:00
Tobias Genannt
19703f7d69
Fixes : #18568 Update mkdocstrings and adapt config
2025-03-13 10:25:42 -04:00
Jeremy Stretch
3dda4716e7
Adapt RemoteUserMiddleware for Django 5.2
2025-03-13 09:34:00 -04:00
Jeremy Stretch
962d660c2c
Closes #18743 : Upgrade to Django 5.2
2025-03-13 09:34:00 -04:00
Jason Novinger
78332d44c7
Fixes #18845 : restores sort behavior for DeviceTable.name column ( #18861 )
...
* Fixes #18845 : restores sort behavior for DeviceTable.name column
* Remove accessor/order_by and modify DEVICE_LINK template
Thanks to @alehaa for the suggestion.
This also includes an additional `.select_related()` operation on
`DeviceListView.queryset` to avoid extra queries. Thanks to
@renatoalmeidaoliveira and @jeremystretch for pointing out the need for
this.
2025-03-13 09:22:49 -04:00
github-actions
80926cda8f
Update source translation strings
2025-03-13 05:02:07 +00:00
bctiemann
d924d4eb33
Merge pull request #18886 from ITJamie/add-rackname-to-device-rack-view
...
Add rack title above rack view on device page
2025-03-12 19:11:22 -04:00
bctiemann
b1e7d7c76b
Merge pull request #18826 from Tishka17/fix/generic_prefetch_4.2
...
Prefetch interface data for REST API on netbox 4.2
2025-03-12 18:55:58 -04:00
Jeremy Stretch
092f7549ca
Fixes #18869 : Ensure to_meters()
always returns a clean decimal value ( #18883 )
...
* Fixes #18869 : Ensure to_meters() always returns a clean decimal value
* Handle float values
2025-03-12 13:42:38 -05:00
Andrey Tikhonov
2f51dfc07a
Merge branch 'fix/generic_prefetch_4.2' of github.com:Tishka17/netbox into fix/generic_prefetch_4.2
2025-03-12 19:13:34 +01:00
Andrey Tikhonov
906654d807
Fix empty line, comments
2025-03-12 19:09:46 +01:00
Renato Almeida de Oliveira
749a83d742
Change JSONField, prepare_value to output str with enclosing " ( #18846 )
2025-03-12 10:00:40 -07:00
Andrey Tikhonov
cdd25368e7
Merge branch 'main' into fix/generic_prefetch_4.2
2025-03-12 16:27:12 +01:00
Andrey Tikhonov
7d64d3b5ed
Move GenericArrayForeignKey to fields module
2025-03-12 16:22:11 +01:00
github-actions
5e22ef59c5
Update source translation strings
2025-03-12 05:02:02 +00:00
Fabi
19d1282683
Fixes #18838 : Correctly reject invalid falsy local context data ( #18860 )
...
* Correctly reject invalid falsy local context data.
* move tests
2025-03-11 14:18:42 -05:00
bctiemann
2266a8af67
Merge pull request #18804 from renatoalmeidaoliveira/18742-Location-List-and-Locations-not-Showing-Associated-VLAN-Groups
...
Fixes : #18742 Location List and Locations not Showing Associated VLAN Groups
2025-03-11 11:13:24 -04:00
Renato Almeida de Oliveira
5d81f911d6
Fixes : #18582 Bulk import prefixes with associated VLAN not working when multiple VLANs with the same vid exist. ( #18844 )
...
* Add site CSVModelChoiceField
* Change site field to vlan_site
2025-03-11 08:46:46 -04:00
github-actions
89e3f3d3e9
Update source translation strings
2025-03-11 05:02:10 +00:00
Jeremy Stretch
292463c0de
Closes #18857 : Fix deprecation warnings ( #18858 )
2025-03-10 14:40:08 -07:00
Antoine Keranflec'h
a9fd191086
Fixes : #18744 Add Contact link as hyperlink ( #18847 )
...
* contact link as hyperlink
* fix(lint) add missing blank lines
* simplify by using lambda function
2025-03-10 12:49:24 -05:00
Tobias Genannt
1a60cb9884
Fixes : #18568 Update mkdocstrings and adapt config ( #18841 )
...
* Fixes : #18568 Update mkdocstrings and adapt config
* Fixed some output formatting errors
When trying to compare the output from "mkdocstrings[python-legacy]==0.27.0" and
"mkdocstrings[python]==0.28.2" I encountered some HTML errors:
- <div> inside a <p>
- unescaped non-tags <pk>
2025-03-10 13:11:35 -04:00
Jason Novinger
76c3c613a9
Adds validation for ObjectListWidget.ConfigForm.model field
2025-03-10 09:57:45 -05:00
Jason Novinger
528248b560
Fixes #18782 : properly check if htmx_url is None
...
If this is done incorrently, then the string formatting operation turns
`htmx_url` into a string and the test in the template fails.
2025-03-10 09:52:59 -05:00
bctiemann
b5d970f7bb
Closes : #18535 - Skip incompatible plugins during startup ( #18537 )
...
* Skip incompatible plugins during startup and remove from PLUGINS
* Handle exceptions on request processors in incompatible plugins, and display status in Plugins page
* Revert "Handle exceptions on request processors in incompatible plugins, and display status in Plugins page"
This reverts commit d97bf2ab146114cc13d751878a17a383de0fd5f8.
* Resolve merge conflicts
* Skip incompatible plugins during startup and remove from PLUGINS
* Rename Installed column to Active, and add custom PluginActiveColumn with tooltip
* Fix is_installed
* Simplify plugin_config.validate syntax
Co-authored-by: Jeremy Stretch <jstretch@netboxlabs.com>
* Merge feature
* Revert "Merge feature"
This reverts commit d1ea60f082
.
* Undo simplification
* Add failed_to_load logic
* Use a TemplateColumn for is_installed
* Remove custom column class
* Remove merge vestige
* Simplify plugin attributes for is_installed column
* Use placeholders for false values to increase legibility of the plugins table
---------
Co-authored-by: Jeremy Stretch <jstretch@netboxlabs.com>
2025-03-10 10:51:41 -04:00
github-actions
8823b07745
Update source translation strings
2025-03-08 05:02:21 +00:00
Jeremy Stretch
c35f5f829a
Closes #7598 : Enable custom field filtering for GraphQL ( #18701 )
2025-03-07 10:49:06 -08:00