* Enable HTMX boosting
* Refactor HTMX properties for tables
* Fix dashboard object list widget
* Disable scrolling to page content
* Fix initialization of TomSelect dropdowns after HTMX loading
* Replace formaction properties with hx-post
* Fix quick search field on object list view
* Reinitialize copy-to-clipboard buttons upon HTMX load
* Disable scrolling effect for intra-page navigation
* Introduce user preference for toggling HTMX navigation
* Enable HTMX navigation only when selected by user
* Pass htmx_navigation context
* Fix display of confirmation form when deleting an object
* Disable HTMX boosting for rack elevation SVG downloads
* Fix dyanmic form rendering
* Introduce htmx_boost template tag; enable HTMX for user menu
* Use out-of-band sap to update footer stamp
* Fix display of toasts after form submission
* Fix user preference selection
* Misc cleanup
* Rename render_partial() to htmx_partial()
* Add docstring to htmx_boost template tag
* Disable HTMX for user preferences form to force a full page refresh on changes
* Rename sequences & indexes after renaming users table
* Migrate from auth.Group to a custom group model
* Delete original groups from auth_group table
* Update object & multi-object custom fields referencing the Group model
* Fix ContentType resolution
* Clean up obsolete logic for view/serializer resolution
- Introduces the Script model to represent individual Python classes within a ScriptModule file
- Automatically migrates jobs & event rules
---------
Co-authored-by: Jeremy Stretch <jstretch@netboxlabs.com>
* Added Last Login to user/profile GUI and user api output
* Update netbox/templates/account/profile.html
Co-authored-by: Jeremy Stretch <jstretch@netboxlabs.com>
* Update netbox/templates/account/profile.html
Co-authored-by: Jeremy Stretch <jstretch@netboxlabs.com>
* Update netbox/templates/users/user.html
Co-authored-by: Jeremy Stretch <jstretch@netboxlabs.com>
---------
Co-authored-by: Jeremy Stretch <jstretch@netboxlabs.com>
* Enable dynamic field inclusion for REST API serializers
* Recurse through nested serializer when resolving prefetches
* Remove obsolete calls to prefetch_related() for API views
* Remove support for brief_prefetch_fields viewset attribute
* Rename query parameter
* Fixes#15133: Fix FHRP group representation on assignments endpoint under brief mode (#15134)
* Fixes#15133: Fix FHRP group representation on assignments endpoint under brief mode
* Update API test
* Restore get_queryset() on BriefModeMixin, minus prefetch logic
* get_prefetches_for_serializer() should reference serializer field source if set
* Experimenting
* Remove testing resources
* Replace ApiSelect with TomSelect
* Add color support
* Add clear button
* Clear cached options when searching dynamic selects
* Add support for static parameters
* Refactor TomSelect implementation
* Add dynamic parameter support
* Limit number of options to 100
* Remove redundant api_url definitions for user model
* Add support for disabled indicator
* Remove obsolete value-field attr on dynamic select widgets
* Remove obsolete fetch_trigger kwarg from dynamic model choice widgets
* Remove obsolete empty_label kwarg from dynamic model choice widgets
* Add support for API path variables
* Add support for setting a 'null' option
* Annotate depth for recursive hierarchies
* Misc cleanup
* Remove obsolete APISelect code
* Remove slim-select & just-debounce-it
* Clean up type validation
* Closes#14237: Clear child selections on change to parent selection
* Use an MD icon for the clear button
* Use an MD icon for the clear button
* Explain why noUnusedParameters is disabled
* Introduce custom form widget templates to apply CSS classes
* Apply both mandatory and optional CSS classes to form widgets
* Omit required & placeholder attrs
* Move annotation of field validation failures to CSS
* Remove BootstrapMixin class
* Remove obsolete ComponentTemplateImportForm class
* Remove obsolete custom forms for login & password change
* Clean up obsolete accommodations for 'required' widget attr
* Fixed password was not hashed on REST API update
* When we updated a user password with a REST API call the password was
stored in clear in plain text in the database.
* Following code review
* Move test on UserTest class
* Call `super().update()` in overriding `update` method
* Return directly the result of `super().update()`