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
Jason Novinger
e33c1f1173
Ensures that all new comments fields render Markdown in tables
2025-03-13 11:52:06 -05:00
Jason Novinger
d557936c98
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
e15468f8eb
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
790acd01e5
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
f487214398
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
6391eb598f
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
5097a64e6a
Update Location detail UI template
2025-03-13 11:52:06 -05:00
Jason Novinger
5fc888bfad
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
d3a88a4c81
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
bctiemann
84d799b663
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
f4581ae388
Fixes : #18568 Update mkdocstrings and adapt config
2025-03-13 10:25:42 -04:00
Jeremy Stretch
2b771a8a35
Adapt RemoteUserMiddleware for Django 5.2
2025-03-13 09:34:00 -04:00
Jeremy Stretch
116d42de74
Closes #18743 : Upgrade to Django 5.2
2025-03-13 09:34:00 -04:00
bctiemann
f738b518fe
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
Jeremy Stretch
8f39c645b4
Closes #7598 : Enable custom field filtering for GraphQL ( #18701 )
2025-03-07 10:49:06 -08:00
bctiemann
34f0afecb6
Fixes : #18808 - Fix incorrect dependencies on squashed migrations ( #18827 )
2025-03-07 10:20:34 -08:00
Jason Novinger
306a67346f
Closes #17608 : Adds L2VPN.status field ( #18791 )
2025-03-06 14:06:06 -08:00
Jeremy Stretch
eb1fb127e3
Closes #18627 : Proxy routing ( #18681 )
...
* Introduce proxy routing
* Misc cleanup
* Document PROXY_ROUTERS parameter
2025-03-04 08:24:54 -05:00
bctiemann
612343f72e
Merge pull request #18748 from netbox-community/18352-add-poweroutlet-status
...
Closes #18352 : Adds PowerOutlet.status field
2025-03-03 20:07:39 -05:00
Jason Novinger
f4e26ca673
Adds PowerOutlet.status to detail view
...
Also fixes color display in list table and detail template
2025-03-03 12:22:34 -06:00
Jeremy Stretch
c6490da5c5
Closes #18287 : Enable periodic synchronization for data sources ( #18747 )
...
* Add sync_interval to DataSource
* Enqueue a SyncDataSourceJob when needed after saving a DataSource
* Fix logic for clearing pending jobs on interval change
* Fix lingering background tasks after modifying DataSource
2025-03-03 09:29:40 -05:00
Jason Novinger
7b98e5a10f
Adds initial PowerOutletForm tests
2025-02-27 15:02:14 -06:00
Jeremy Stretch
1c6af84ffc
Closes #17424 : Add custom visibility toggle to ViewTab
2025-02-27 10:41:10 -05:00
Jason Novinger
d168b11d92
Extend filterset/model tests to cover PowerOutlet.status
2025-02-26 17:09:56 -06:00
Jason Novinger
28d6f66f31
Updates PowetOutler docs to include new status field
2025-02-26 16:51:07 -06:00
Jason Novinger
6c9c546267
Updates PowerOutletIndex to display status field in results
...
This seemed inline with status fields on other model search indexes
2025-02-26 16:44:54 -06:00
Jason Novinger
bc50280cb1
Adds PowerOutlet.status field to PowerOutlet model tables
2025-02-26 16:44:03 -06:00
Jason Novinger
eee2d400e6
Adds status field to PowerOutletSerializer
2025-02-26 16:42:44 -06:00
Jason Novinger
d610d613c6
For #18352 , adds PowerOutlet.status field to forms and filtersets
2025-02-26 16:38:11 -06:00
Jason Novinger
6d0f8aa656
For #18352 , adds choices, model field, migration
...
Adds:
- dcim.choices.PowerOutletStatusChoices
- dcim.models.device_components.PowerOutlet.status field with `choices`
set to PowerOutletStatusChoices
- adds migration for PowerOutlet.status field
- updates breaking view tests
2025-02-26 16:36:09 -06:00
Daniel Sheppard
a77937c461
Fixes : #15924 - Prevent API payload from allowing tagged_vlans while interface mode is set to tagged-all ( #17211 )
2025-02-26 09:28:02 -08:00
bctiemann
611de153bc
Merge pull request #18704 from alehaa/18095-inherit-contacts
...
Fixes 18095: inherit contacts
2025-02-25 16:08:32 -05:00
Alexander Haase
642c3ca0ca
Optimize contact lookup query
2025-02-25 18:36:16 +01:00
bctiemann
341125cd54
Merge pull request #18650 from tobiasge/18635-fix-version-identifier
...
Close #18635 : Show only the semantic version
2025-02-25 12:19:26 -05:00
Jeremy Stretch
00f4359f1f
Closes #18623 : Upgrade Tabler to v1.0 ( #18624 )
...
* Upgrade Tabler to v1.0
* Fix navigation menu colors
* Reduce table column heading font size
2025-02-25 12:13:53 -05:00
Jeremy Stretch
658fc12070
Closes #17793 : Introduce a REST API endpoint for tagged objects ( #18679 )
...
* Closes #17793 : Introduce a REST API endpoint for tagged objects
* Add missing object_id filter to TaggedItemFilterSet
2025-02-25 12:06:44 -05:00
Mathias Guillemot
302eaacd32
Closes : #18434 - Add SPB in L2VPN ( #18523 )
...
* Add SPB in L2VPN
* Change category as Other
Co-authored-by: Daniel Sheppard <dans@dansheps.com>
---------
Co-authored-by: Daniel Sheppard <dans@dansheps.com>
2025-02-25 10:06:07 -05:00
Jeremy Stretch
669e893e90
Closes #18072 : Remove support for single model registration from PluginTemplateExtension
2025-02-25 09:32:48 -05:00