Jeremy Stretch
eede8f110d
Search/filter by table name
2025-04-09 09:30:46 -04:00
Jeremy Stretch
54b7951da0
Enforce enabled/shared flags
2025-04-09 09:26:45 -04:00
Jeremy Stretch
e128198ec4
Clean up template
2025-04-09 09:20:54 -04:00
Jeremy Stretch
a1f0c3a37d
Update migration
2025-04-08 15:21:54 -04:00
Jeremy Stretch
08d56cd19f
Fix auto-selection of selected columns
2025-04-08 15:08:12 -04:00
Jeremy Stretch
ca12f39c1a
Return null config params for tables with no model
2025-04-08 15:08:12 -04:00
Jeremy Stretch
e6b2a03633
Use multi-select widgets for column selection
2025-04-08 15:08:12 -04:00
Jeremy Stretch
00ab899604
Misc cleanup
2025-04-08 15:08:12 -04:00
Jeremy Stretch
2e52014828
Correct docstring
2025-04-08 15:08:12 -04:00
Jeremy Stretch
2f425fda34
Update table config link when updating table
2025-04-08 15:08:12 -04:00
Jeremy Stretch
475dd7247b
Update table configuration logic to support TableConfigs
2025-04-08 15:08:12 -04:00
Jeremy Stretch
0033c08c25
Add SavedTableConfig
2025-04-08 15:08:12 -04:00
Renato Almeida de Oliveira
fbd6d8c7fc
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
3902cab925
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
eee932a6a5
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
ff26f4302c
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
5e44e49a8a
Closes #18236 : Upgrade to HTMX v2.0 ( #19077 )
2025-04-04 09:16:13 -05:00
Jeremy Stretch
e252cc3ce1
Closes #19083 : Upgrade Django to v5.2.0
2025-04-04 09:39:04 -04:00
Jeremy Stretch
092769da7e
Closes #16058 : Fix circular import involving register_model_view() ( #19076 )
2025-04-03 19:09:04 -07:00
Jeremy Stretch
67480dcf4f
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
d44012963f
Closes #19004 : Mark inventory items as deprecated in the documentation
2025-04-03 14:49:54 -04:00
Jeremy Stretch
d93d398afa
Closes #17166 : Remove obsolete limit_choices_to argument from ForeignKey & M2M fields
2025-04-03 09:17:20 -04:00
Jeremy Stretch
6a966ee6c1
Closes #18785 : Allow for custom rack/device/module airflow choices ( #19054 )
2025-04-01 14:06:23 -07:00
Jeremy Stretch
a00144026b
Closes #16630 : Enable plugins to embed custom <head> content ( #19055 )
2025-04-01 14:09:49 -05:00
Jeremy Stretch
8d7889e2c0
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
864db469ba
Fixes : #18305 make contacts mixin available for plugins ( #19029 )
2025-04-01 09:03:25 -04:00
Arthur Hanson
1508e3a770
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
7a71c7b8f8
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
fe7cc8cae9
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
80440fd025
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
6b7d23d684
Closes #17841 Allows Tags to be displayed in specified order ( #18930 )
2025-03-19 10:17:35 -07:00
Jeremy Stretch
d25605c261
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
958dcca8d6
Fix migration conflict in tenancy ( #18957 )
2025-03-19 09:38:10 -05:00
bctiemann
cd10087b2b
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
af5ec19430
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
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
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
Jason Novinger
b45e256f27
Removes banner from new migrations
2025-03-13 15:43:32 -05: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
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