Commit Graph

65 Commits

Author SHA1 Message Date
Arthur Hanson
cac9108f5b Closes #9608: Move from drf-yasg to spectacular
Co-authored-by: arthanson <worldnomad@gmail.com>
Co-authored-by: jeremystretch <jstretch@netboxlabs.com>
2023-03-30 14:32:59 -04:00
jeremystretch
6acc947c65 Merge branch 'develop' into feature 2023-03-13 11:58:37 -04:00
jeremystretch
076338ea2f Fixes #11927: Correct loading of plugin resources with custom paths 2023-03-13 08:52:38 -04:00
Rafael Ganascim
4d435d8f27 Fixes #11758 - replace unsafe chars in menu label (#11831)
* Fixes #11758 - replace unsafe chars in menu label

* Fixes #11758 - replace unsafe chars in menu label
2023-02-27 11:42:30 -05:00
jeremystretch
f2c9d6e4eb Clean up the application registry 2023-02-19 20:09:52 -05:00
jeremystretch
0340f05932 Fixes #11613: Correct plugin import logic fix from #11267 2023-01-27 19:56:12 -05:00
Jeremy Stretch
da63d5fb07 Fixes #11267: Avoid catching ImportError exceptions when loading plugins (#11566)
* Avoid catching ImportErrors when loading plugin URLs

* Avoid catching ImportErrors when loading plugin resources
2023-01-27 16:44:10 -05:00
jeremystretch
4457d174b6 Fixes #10984: Fix navigation menu expansion for plugin menus comprising multiple words 2022-11-21 08:38:44 -05:00
Arthur Hanson
f7c8b37b69 4751 Enable plugins to inject content within object list views (#10901)
* 4751 add plugin buttons to list templates

* 4751 add plugin buttons to list templates

* 4751 add documentation

* 4751 fix object reference

* 4751 update docs
2022-11-14 13:51:58 -05:00
jeremystretch
980987e342 Closes #10543: Introduce get_plugin_config() utility function 2022-11-03 13:18:58 -04:00
jeremystretch
1e6bea48dd Reorganize plugin resources 2022-11-03 12:59:01 -04:00
jeremystretch
67799fa422 Closes #10697: Move application registry into core app 2022-11-02 15:25:22 -04:00
Jeremy Stretch
68cf700a3e Closes #10560: New global search (#10676)
* Initial work on new search backend

* Clean up search backends

* Return only the most relevant result per object

* Clear any pre-existing cached entries on cache()

* #6003: Implement global search functionality for custom field values

* Tweak field weights & document guidance

* Extend search() to accept a lookup type

* Move get_registry() out of SearchBackend

* Enforce object permissions when returning search results

* Add indexers for remaining models

* Avoid calling remove() on non-cacheable objects

* Use new search backend by default

* Extend search backend to filter by object type

* Clean up search view form

* Enable specifying lookup logic

* Add indexes for value field

* Remove object type selector from search bar

* Introduce SearchTable and enable HTMX for results

* Enable pagination

* Remove legacy search backend

* Cleanup

* Use a UUID for CachedValue primary key

* Refactoring search methods

* Define max search results limit

* Extend reindex command to support specifying particular models

* Add clear() and size to SearchBackend

* Optimize bulk caching performance

* Highlight matched portion of field value

* Performance improvements for reindexing

* Started on search tests

* Cleanup & docs

* Documentation updates

* Clean up SearchIndex

* Flatten search registry to register by app_label.model_name

* Clean up search backend classes

* Clean up RestrictedGenericForeignKey and RestrictedPrefetch

* Resolve migrations conflict
2022-10-21 13:16:16 -04:00
jeremystretch
718a85cf58 Closes #10699: Remove custom import_object() function 2022-10-19 10:40:39 -04:00
Arthur Hanson
f63ee79a35 8927 plugin search (#10489)
* #7016 base search classes

* 7016 add search indexes

* 7016 add search indexes

* 7016 add search indexes

* 7016 add search indexes

* 7016 add search indexes

* 7016 add search indexes

* 8927 refactor search

* 8927 refactor search

* 8927 refactor search

* 8927 refactor search

* 8927 get search choices working

* 8927 cleanup - optimize

* 8927 use backend search function

* 8927 fix for plugin search

* 8927 add docs

* Move search app to a module under netbox/

* Utilize global registry to register model search classes

* Build search form options from registry

* Determine search categories from model app by default

* Enable dynamic search registration for plugins

* Update docs & improve plugin support

* Clean up search backend class

* Docs for #8927

Co-authored-by: jeremystretch <jstretch@ns1.com>
2022-10-10 14:00:59 -04:00
Jonathan Senecal
53b9330dae Initial implementation
- Allows to specify a list of django-apps to be "installed" alongside the plugin.

(cherry picked from commit 6c7296200d756d2acbba3a589a7759f3a690cc48)
2022-09-30 17:18:12 -04:00
jeremystretch
3f9a697516 Add test for plugin menu registration 2022-09-28 16:57:40 -04:00
jeremystretch
222ee23c00 Add documentation for PluginMenu 2022-09-28 16:44:16 -04:00
jeremystretch
0ed28ab36c Enable plugins to create root-level navigation menus 2022-09-28 16:08:03 -04:00
Arthur
b3e4665483 9071 add header to plugin menu 2022-09-22 10:01:19 -07:00
jeremystretch
9cbb399e19 Fix plugin name resolution 2022-02-09 12:55:10 -05:00
jeremystretch
41b804d350 Initial work on GraphQL 2022-02-04 15:06:58 -05:00
jeremystretch
5b3d3bd6c1 Refactor plugins registry 2022-02-04 14:37:29 -05:00
jeremystretch
74af96c2c0 Enable plugins to define user preferences 2021-12-22 09:10:50 -05:00
Jeremy Stretch
78c45e23b1 Merge branch 'feature' into 6651-plugins-rq-queues 2021-07-09 08:43:39 -04:00
jeremystretch
9e96f2c633 Drop caching_config from plugin configuration 2021-07-07 17:04:21 -04:00
maximumG
d9d4d15254 feat: Netbox plugin can defined their own RQ queues 2021-07-07 15:26:33 +02:00
Thomas
1ed493406f Update views.py
Fixing typo in 'version'
2021-05-14 18:22:01 +02:00
Jeremy Stretch
458aeb9cce Fixes #5446: Fix validation for plugin version and required settings 2020-12-11 16:05:50 -05:00
Jeremy Stretch
3f19165db2 Fixes #5285: Include plugin API endpoints in root view without needing app_name set 2020-10-29 12:30:10 -04:00
Glenn Matthews
1fcf13ad29 Refactor repeated import code 2020-07-14 17:15:17 -04:00
Glenn Matthews
a62702df79 Don't ignore ImportErrors raised when loading a plugin. Fixes #4805 2020-07-07 09:14:33 -04:00
Jeremy Stretch
3b9fe64105 Use packaging.version.parse directly 2020-04-10 11:18:01 -04:00
Jeremy Stretch
90f374d24c Add tests for plugin configuration, min/max version 2020-04-06 11:44:38 -04:00
Jeremy Stretch
3ada8feeb5 Naming tweaks 2020-04-02 15:43:23 -04:00
Jeremy Stretch
cb38efbc1f Initial implementation of tests for plugins framework 2020-04-01 17:08:47 -04:00
Jeremy Stretch
e863ea8cb8 Move default caching_config to PluginConfig class 2020-04-01 12:10:19 -04:00
Jeremy Stretch
d1ece9f6fa Convert installed_plugins_admin_view to a class-based view 2020-03-27 13:35:25 -04:00
Jeremy Stretch
21341b576a Clean up plugin URL registration 2020-03-27 13:26:53 -04:00
Jeremy Stretch
a6b0249393 Expose regsitry in templates using existing context processor for settings 2020-03-27 13:18:51 -04:00
Jeremy Stretch
e861cd87bf Improved menu item/button validation 2020-03-27 13:12:58 -04:00
Jeremy Stretch
b27b3d5175 Rename obj to object; clean up docstrings 2020-03-26 21:46:56 -04:00
Jeremy Stretch
56fde3f5b2 Restrict context data available to PluginTemplateExtensions 2020-03-26 16:50:55 -04:00
Jeremy Stretch
a9421e453b Extend menu items and buttons to accept a list of required permissions 2020-03-26 16:04:12 -04:00
Jeremy Stretch
849598cb8e Remove unused PluginSignal class 2020-03-26 12:26:58 -04:00
Jeremy Stretch
82d98073ae Standardize naming of menu items 2020-03-26 12:25:36 -04:00
Jeremy Stretch
d315eda4fa Rename PluginTemplateContent to PluginTemplateExtension 2020-03-26 12:18:58 -04:00
Jeremy Stretch
4f93c524e0 Rename PluginNavMenuButton to PluginMenuButton 2020-03-26 11:30:42 -04:00
Jeremy Stretch
5952f5f25d Rename PluginNavMenuLink to PluginMenuItem 2020-03-26 11:29:05 -04:00
Jeremy Stretch
77b1d11d27 Add a default button color 2020-03-26 11:26:11 -04:00