Commit Graph

37 Commits

Author SHA1 Message Date
Oliver
b50a6826ef
Builtin plugins (#3889)
* Allow loading of "builtin" plugins, even if "plugins" are not explicitly loaded

* Updates for 'admin' buttons:

- Make them work like proper links
- Hidden if 'hide_admin_link' customization option is set
- Check for user staff status

* Cleanup rendering of "plugins" display

* Consolidate InvenTree barcode plugins into single plugin class

* Hide "install plugin" button if plugins are not enabled

* Add info message is external plugins are not enabled

* Fixes for loading plugins

- Always load 'builtin' plugins
- Refactor calls to "is_active" at various points in codebase

* Various tweaks

- Improve builtin plugin descriptions
- Spelling fixes

* Adjust plugin detail for builtin plugins

* Simplify barcode plugin class

* Simplify template rendering

* Bug fix for inventree barcode plugin

* Revert "Simplify template rendering"

This reverts commit 3a6755a659.

* Re-re-improve template rendering

- Required as the template has been refactored for both "active" and "inactive" plugins

* Fixing unit tests for barcode plugin

* Ensure that barcode scan actions do not take a "long time":

- Add a default timeout of 0.1s to any POST or GET request in the testing framework
- Can be overridden by calling method if desired

* Display plugin "builtin" status in admin panel

* Fix unit tests for plugin API

* Further unit testing fixes

* Version number tweaks

* Further tweaks for unit testing

* Allow longer timeout for report printing via API

* Increase default timeout for API tests

- Sometimes CPU spike can cause the test to fail :|

* label printing can take a bit longer

* Remove timeout requirement from API tester

- Too variable to be reliable for CI
2022-11-05 01:05:54 +11:00
Oliver
86b72549a2
Plugin load fix (#3768)
* Catch potential secondary PackageNotFoundError

* Plugin template tweaks
2022-10-11 23:15:24 +11:00
Matthias Mair
abf133384b
Optimisations for editable installs of plugins (#3634)
* out-of-scope: add function to check if a package is editable

* out-of-scope: move to included meta toolset for metadata discovery

* out-of-scope: make lookup safe for editable installs
2022-09-05 13:03:26 +10:00
Matthias Mair
1b76828305
Plugin framework updates (#3535)
* refactor entrypoint into helpers

* Add lookup by metadata
This is geared towards plugins packaged in pkgs that differ in name from their top module

* Make module lookup predictable in changing pkg-envs

* remove no coverage from plugin packages

* ignore coverage for production loadin

* refactor plugin collection - move assigment out

* do not cover fs errors

* test custom dir loading

* test module meta fetcher

* add a bit more safety

* do not cover sanity checkers

* add folder loading test

* ignore again for cleaner diffs for now

* ignore safety catch

* rename test

* Add test for package installs

* fix docstring name

* depreciate test for now

* Fix for out of BASE_DIR paths

* ignore catch

* remove unneeded complexity

* add testing for outside folders

* more docstrings and simpler methods

* make call simpler

* refactor import

* Add registry with all plugins

* use full registry and make simpler request

* switch path properties to methods

* Add typing to plugin

* Add a checker fnc for is_sample

* Add sample check to admin page

* Make file check a cls

* more cls methods

* Add setting for signature cheks
Fixes #3520

* make property statements simpler

* use same key in all dicts

* Use module name instead of NAME
Fixes #3534

* fix naming

* fix name

* add version checking
Fixes #3478

* fix formatting and typing

* also save reference to full array

* do not cover as we turn on all plugins

* add test for check_version

* Add version e2e test

* make test save

* refactor out assignment

* safe a db reference first

* docstring

* condense code a bit

* rename

* append logging

* rename

* also safe db reference to new object

* docstrings, refactors, typing

* fix key lookup
2022-08-16 16:10:18 +10:00
Matthias Mair
1010a6296f
Plugin meta detection improvements (#3516)
* refactor entrypoint into helpers

* Add lookup by metadata
This is geared towards plugins packaged in pkgs that differ in name from their top module

* Make module lookup predictable in changing pkg-envs
2022-08-11 12:02:06 +10:00
Oliver
b98ae25583
Allow plugin loading from external directory (#3364)
* Load custom plugin directories

* Allow plugins to be loaded from an external directory

* Handle exception when path is not relative to base path

* Fix typo

* Use pathlib

* Move plugin directory code into registry.py

- Allows us to reload plugins without having to reload the server itself

Co-authored-by: Matthias Mair <code@mjmair.com>
2022-07-26 14:35:01 +10:00
Matthias Mair
7493c8c6cb
Use metadata in projects for plugin info (#3282)
* Use metadata in projects for plugin info

* use metadata as backup
2022-07-09 17:06:50 +10:00
Matthias Mair
9f5526f489
BREAKING (#3283)
Removes the depreciated class IntegrationPluginBase
2022-07-03 12:32:35 +10:00
Matthias Mair
0c97a50e47
Docstring checks in QC checks (#3089)
* Add pre-commit to the stack

* exclude static

* Add locales to excludes

* fix style errors

* rename pipeline steps

* also wait on precommit

* make template matching simpler

* Use the same code for python setup everywhere

* use step and cache for python setup

* move regular settings up into general envs

* just use full update

* Use invoke instead of static references

* make setup actions more similar

* use python3

* refactor names to be similar

* fix runner version

* fix references

* remove incidential change

* use matrix for os

* Github can't do this right now

* ignore docstyle errors

* Add seperate docstring test

* update flake call

* do not fail on docstring

* refactor setup into workflow

* update reference

* switch to action

* resturcture

* add bash statements

* remove os from cache

* update input checks

* make code cleaner

* fix boolean

* no relative paths

* install wheel by python

* switch to install

* revert back to simple wheel

* refactor import export tests

* move setup keys back to not disturbe tests

* remove docstyle till that is fixed

* update references

* continue on error

* add docstring test

* use relativ action references

* Change step / job docstrings

* update to merge

* reformat comments 1

* fix docstrings 2

* fix docstrings 3

* fix docstrings 4

* fix docstrings 5

* fix docstrings 6

* fix docstrings 7

* fix docstrings 8

* fix docstirns 9

* fix docstrings 10

* docstring adjustments

* update the remaining docstrings

* small docstring changes

* fix function name

* update support files for docstrings

* Add missing args to docstrings

* Remove outdated function

* Add docstrings for the 'build' app

* Make API code cleaner

* add more docstrings for plugin app

* Remove dead code for plugin settings
No idea what that was even intended for

* ignore __init__ files for docstrings

* More docstrings

* Update docstrings for the 'part' directory

* Fixes for related_part functionality

* Fix removed stuff from merge 99676ee

* make more consistent

* Show statistics for docstrings

* add more docstrings

* move specific register statements to make them clearer to understant

* More docstrings for common

* and more docstrings

* and more

* simpler call

* docstrings for notifications

* docstrings for common/tests

* Add docs for common/models

* Revert "move specific register statements to make them clearer to understant"

This reverts commit ca96654622.

* use typing here

* Revert "Make API code cleaner"

This reverts commit 24fb68bd3e.

* docstring updates for the 'users' app

* Add generic Meta info to simple Meta classes

* remove unneeded unique_together statements

* More simple metas

* Remove unnecessary format specifier

* Remove extra json format specifiers

* Add docstrings for the 'plugin' app

* Docstrings for the 'label' app

* Add missing docstrings for the 'report' app

* Fix build test regression

* Fix top-level files

* docstrings for InvenTree/InvenTree

* reduce unneeded code

* add docstrings

* and more docstrings

* more docstrings

* more docstrings for stock

* more docstrings

* docstrings for order/views

* Docstrings for various files in the 'order' app

* Docstrings for order/test_api.py

* Docstrings for order/serializers.py

* Docstrings for order/admin.py

* More docstrings for the order app

* Add docstrings for the 'company' app

* Add unit tests for rebuilding the reference fields

* Prune out some more dead code

* remove more dead code

Co-authored-by: Oliver Walters <oliver.henry.walters@gmail.com>
2022-06-02 01:37:39 +10:00
Matthias Mair
e1d22f538d resort imports 2022-05-20 17:24:51 +02:00
Matthias
eaab905bfd
reset plugin name default 2022-05-12 00:50:29 +02:00
Matthias
8becad3c0a
reset zero behaviour 2022-05-11 23:45:45 +02:00
Matthias
50156466db
fix title asks 2022-05-11 17:51:23 +02:00
Matthias
d794890264
fix assertations 2022-05-11 17:38:42 +02:00
Matthias
5cb4f0e73d
PEP fix 2022-05-11 16:57:23 +02:00
Matthias
81deb8201e
new references for Meta values in plugin
depreceate old values - add depreeation warning
2022-05-11 16:35:38 +02:00
Matthias
b1b1db29b9
restructure 2022-05-11 14:54:11 +02:00
Matthias
9eadcce0eb
move mixins 2022-05-11 14:48:36 +02:00
Matthias
355695c679
make MixinBase betterfor init 2022-05-11 14:47:00 +02:00
Matthias
f76dcdeb82
move properties to meta 2022-05-11 14:45:45 +02:00
Matthias
dfb11cca1d
Add legacy 2022-05-11 14:40:00 +02:00
Matthias
1571b99ed2
rename IntegrationPluginBase to InvenTreePlugin 2022-05-11 14:28:26 +02:00
Matthias
1da12fe5ff
add import comment 2022-05-11 12:45:40 +02:00
Matthias
18ad87433e
move plugin and integration together 2022-05-11 12:45:25 +02:00
Matthias
87ef2a3382
remove old code 2022-05-11 12:41:08 +02:00
Matthias
baf7e4505e
do not cover pacakge code - is not CI'd 2022-05-06 01:52:32 +02:00
Matthias
3b642695a8
PEP fix 2022-03-13 21:11:06 +01:00
Matthias
5f9f5555b6
ignore depreciated function in coverage 2022-03-13 21:01:16 +01:00
Matthias
080ee2ea50
remove dead code 2022-03-13 20:58:40 +01:00
Matthias
2a7ad93173
move invenTreePlugin to new class
to enable depreceation
2022-01-11 01:41:33 +01:00
Matthias
86142856f7
PEP fixes 2022-01-11 01:25:21 +01:00
Matthias
0f7c277e69
docstrings 2022-01-11 01:19:03 +01:00
Oliver
04d25a60b0 Adds sample plugin which responds to triggered events
- Adds some example trigger events for the "Part" model
2022-01-08 09:07:27 +11:00
Oliver
ac849c1566 Fixes for unit tests 2022-01-04 21:36:27 +11:00
Oliver
dc9e25ebad Adds API endpoints for viewing and updating plugin settings
A lot of code updates / refactoring here to get this to work as expected
2022-01-04 20:27:35 +11:00
Oliver
f3bfe6e7ca More refactoring:
- Rename "mixins_globalsettings" to "mixing_settings"
- Fix translation on settings page template
2022-01-02 11:22:05 +11:00
Matthias
dddd4370cf
refactor app 2021-10-08 22:08:09 +02:00