Commit Graph

405 Commits

Author SHA1 Message Date
Oliver
1243923944 Event refactoring 2022-01-10 17:28:44 +11:00
Oliver
886b1f1d72 Simplify event triggering
- add generic receivers for database actions
- exclude django_q tables, otherwise we get an infinite loop!

Ref: https://stackoverflow.com/questions/17507784/consolidating-multiple-post-save-signals-with-one-receiver/32230933#32230933
2022-01-10 17:24:53 +11:00
Matthias Mair
2bc4d57ffa
remove double code 2022-01-10 02:49:34 +01:00
Matthias
18cb676ce3
another PEP fix 2022-01-10 02:17:50 +01:00
Matthias
7d160039b1
PEP fixes 2022-01-10 02:15:58 +01:00
Matthias
632632c8ad
fix lookup function 2022-01-10 01:28:44 +01:00
Matthias
20e712a287
update barcodes to use mixin 2022-01-10 01:23:48 +01:00
Matthias
4fc3e85a53
use new loading mechanism for barcodes too 2022-01-10 01:06:05 +01:00
Matthias
13ff94b6b2
remove dead code 2022-01-10 01:05:32 +01:00
Matthias
bb559deb5d
add docstrings 2022-01-10 01:00:45 +01:00
Matthias
6affc7550b
add depreciation TODO 2022-01-10 01:00:12 +01:00
Matthias
bcb0f62e42
remove old loading mechanism 2022-01-10 00:59:24 +01:00
Matthias
8088bf28fe
refactor ActionPlugin to use mixin 2022-01-10 00:40:19 +01:00
Matthias
6af2267e3d
fix test 2022-01-09 23:05:51 +01:00
Matthias
bf7af8f72a
cover another missing setting 2022-01-09 23:01:38 +01:00
Matthias
afada6b759
test the url arg building 2022-01-09 22:56:14 +01:00
Matthias
2c05b858a4
renmae var 2022-01-09 22:34:02 +01:00
Matthias
c8599039a2
added test for wrong config 2022-01-09 22:33:14 +01:00
Matthias
e889f487f0
added a check for the required constants 2022-01-09 22:27:50 +01:00
Matthias
31d587a9b1
unittests fdor ApiCallMixin 2022-01-09 22:19:01 +01:00
Matthias
c699ced34a
make general mixin tests multi mixin enabled 2022-01-09 22:16:19 +01:00
Oliver
e891e0a2b9 typo fix 2022-01-09 23:02:24 +11:00
Oliver
d765be8c73 Iterate through plugins in a separate background task 2022-01-09 22:58:59 +11:00
Oliver
3731d688c9 Refactor behaviour of "event" mixin:
- Trigger a new background task for each plugin
- Call plugin.process_event
- Plugin class can then decide what to do with the particular event
2022-01-09 22:52:28 +11:00
Matthias
ad9a9da656
PEP fix 2022-01-09 03:35:29 +01:00
Matthias
f9742ab41d
add integration test for plugin 2022-01-09 03:34:27 +01:00
Matthias
cc8948c708
fix sample url 2022-01-09 03:34:08 +01:00
Matthias
b48e9bcac9
fix settings call 2022-01-09 03:33:47 +01:00
Matthias
ea8fd21af0
pip fix 2022-01-09 03:10:23 +01:00
Matthias
ed193e9e90
docstring for plugin base import class 2022-01-09 03:04:00 +01:00
Matthias
61b21d1ec1
add sample for api caller 2022-01-09 03:03:05 +01:00
Matthias
19f2c44c2a
change mixin name 2022-01-09 03:02:19 +01:00
Matthias
33ee7e53db
append docstring 2022-01-09 03:01:50 +01:00
Matthias
d939107d36
add example 2022-01-09 03:01:31 +01:00
Matthias
3aea1bb7ba
made docstring clearer 2022-01-08 21:59:02 +01:00
Matthias
f59b59401f
refactor setting 2022-01-08 21:58:44 +01:00
Matthias
62394c4a82
small reformat 2022-01-08 21:54:42 +01:00
Matthias
3bc3e98ed1
Merge branch 'master' of https://github.com/inventree/InvenTree into api-mixin 2022-01-08 21:50:37 +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
a604d85f0f Move events.py to the plugin app 2022-01-07 22:35:54 +11:00
Oliver
63eb49777a Add mixin class to respond to internal events 2022-01-07 22:29:19 +11:00
Matthias
220bf0db3a
Merge branch 'master' of https://github.com/inventree/InvenTree into plugin-install 2022-01-07 08:57:04 +01:00
Oliver Walters
8efd45f0ad log warning message if db not ready 2022-01-07 18:00:38 +11:00
Oliver Walters
668e2bfcd5 Further error catching 2022-01-07 17:20:57 +11:00
Oliver Walters
103dfaa2a5 try/catch for operational error
- Database might not yet be ready to load models
2022-01-07 17:11:53 +11:00
Oliver Walters
c04e07c1fa Add a task which fails on purpose 2022-01-07 17:04:33 +11:00
Oliver Walters
36feef6558 Remove log message if not relevent 2022-01-07 16:53:51 +11:00
Oliver Walters
3eb1fa32f9 Scheduled tasks get registered for the background worker 2022-01-07 16:51:00 +11:00
Oliver Walters
0ab9b2dbc7 Bug fix - always allow plugins to register settings 2022-01-07 15:42:20 +11:00
Oliver Walters
794a9e75e8 Add validation for scheduled tasks defined by a plugin 2022-01-07 15:37:43 +11:00
Oliver Walters
326b897d14 Revert "Move mixins.py into main plugin directory"
This reverts commit 8103b84268.
2022-01-07 14:54:12 +11:00
Oliver Walters
0773545615 Add "ScheduleMixin" for scheduling tasks 2022-01-07 14:54:04 +11:00
Oliver Walters
8103b84268 Move mixins.py into main plugin directory 2022-01-07 14:23:32 +11:00
Matthias
0974ebb5cd
shield plugin package load 2022-01-07 01:10:44 +01:00
Matthias
edc648d619
write installd plugins to plugins.txt 2022-01-07 01:09:44 +01:00
Matthias
ceed90217b
restructuring 2022-01-07 01:03:05 +01:00
Oliver
ac849c1566 Fixes for unit tests 2022-01-04 21:36:27 +11:00
Oliver
928b90a833 Edit plugin settings via the "settings" display 2022-01-04 21:03:01 +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
Oliver
737467a1fd Rename "has_globalsettings" -> "has_settings" 2022-01-01 23:14:34 +11:00
Oliver
7cb029e7c3 Refactor: Rename "GLOBAL_SETTINGS" to "SETTINGS" 2022-01-01 22:43:35 +11:00
Oliver
7f08c75a08 Add missing migration file 2022-01-01 22:00:58 +11:00
Oliver
547db3322f Adds new "PluginSetting" class
- Adds settings which are unique to a particular plugin
2022-01-01 22:00:43 +11:00
Oliver
9b468ba92e Second fix for the first fix 2021-12-31 15:20:32 +11:00
Oliver
78120bb020 Fixes for unit tests 2021-12-31 14:54:19 +11:00
Oliver
4b4d4be13e Registry name fixes 2021-12-31 14:28:16 +11:00
Oliver
02e0ea6e3a Rename "GlobalSettingsPlugin" -> "SettingsPlugin" 2021-12-31 14:25:22 +11:00
Oliver
e02a2cef1b Fixes unit test 2021-12-31 14:18:27 +11:00
Oliver
be3bb05edd Improve docstrings 2021-12-30 23:06:28 +11:00
Oliver
04820c894b getattr should look for "SETTINGS" and not "GLOBALSETTINGS" 2021-12-30 23:04:08 +11:00
Oliver
67d9d9413f Plugin code bug fix
- handle case where self.plugin is None
2021-12-30 22:58:11 +11:00
Matthias
251fdeb69e
PEP fixes 2021-12-13 18:01:20 +01:00
Matthias
8e962c0c59
add mixin to consum a single API 2021-12-13 08:03:19 +01:00
Matthias
e6ad22ec15
fix plugin urlpattern patching 2021-12-10 01:34:47 +01:00
Matthias
529987bb17
remove unneeded Todo 2021-12-04 19:52:56 +01:00
Matthias
8fddf66618
remove unneeded TODO 2021-11-23 23:40:52 +01:00
Matthias
8236c51827
PEP fix 2021-11-23 18:42:41 +01:00
Matthias
aae0018a72
stop CI failing 2021-11-22 03:02:03 +01:00
Matthias
3050bb0703
higher retry threshold + better logging 2021-11-22 02:46:03 +01:00
Matthias
395573ca5b
do not trigger reload 2021-11-22 01:55:21 +01:00
Matthias
40dafb7fda
PEP fix 2021-11-22 01:36:37 +01:00
Matthias
1efdf16f92
only reload one 2021-11-22 01:30:04 +01:00
Matthias
3920108d83
do not reload whe currently loading 2021-11-22 01:28:36 +01:00
Matthias
d54bbf562b
remove redundant loggin 2021-11-22 01:06:12 +01:00
Matthias
4b98ea27ce
better format 2021-11-22 00:52:51 +01:00
Matthias
c496076505
check if file plugin was disabled 2021-11-22 00:52:42 +01:00
Matthias
38eaca1104
fix path prefixes 2021-11-22 00:48:46 +01:00
Matthias
e5d474fa0b
always set flag 2021-11-22 00:17:35 +01:00
Matthias
adc058c8b4
only reload once - even if forced 2021-11-22 00:17:04 +01:00
Matthias
a1b821bf78
just use the default failing mechanism 2021-11-22 00:16:43 +01:00
Matthias
c3e4a56021
always reset plugin modules on collection 2021-11-22 00:16:09 +01:00
Matthias
8e7c96626f
that statement is quite important 2021-11-21 23:57:45 +01:00
Matthias
f71b40e031
also handle errors on internal plugins 2021-11-21 23:51:36 +01:00
Matthias
2e28bb225f
fix broken integration plugin def 2021-11-21 23:50:54 +01:00
Matthias
87947c582d
always log error 2021-11-21 23:48:33 +01:00
Matthias
7782a22f38
make plugin init safe 2021-11-21 23:46:54 +01:00
Matthias
bd67285314
PEP fixes 2021-11-21 22:11:18 +01:00
Matthias
c828da284c
fix tests to really hit admin actions 2021-11-21 22:04:22 +01:00
Matthias
03e5279ec0
PEP fixes 2021-11-21 20:23:43 +01:00
Matthias
bafbebb634
test plugin save action 2021-11-21 20:22:44 +01:00
Matthias
75a8b88a92
now it should test 2021-11-21 20:14:17 +01:00
Matthias
211a8e27e6
use pluginreg to reload everywhere 2021-11-21 20:13:58 +01:00
Matthias
4e6e87d950
fix test limitition 2021-11-21 19:19:44 +01:00
Matthias
6b7ea10ba2
PEP fix 2021-11-21 19:18:37 +01:00
Matthias
6533457400
always drop out of maintenance on startup 2021-11-21 19:08:01 +01:00
Matthias
59a1047d41
add admin action test 2021-11-21 18:59:43 +01:00
Matthias
ba6a7c0541
check confirm is True 2021-11-21 02:28:01 +01:00
Matthias
6b1c436135
names of plugins must be unique 2021-11-21 02:24:08 +01:00
Matthias
290e91ff79
there are many ways to be broken ... 2021-11-21 02:19:14 +01:00
Matthias
78cd10f3b9
PEP fix 2021-11-21 02:01:31 +01:00
Matthias
046ee7df06
add api test 2021-11-21 01:57:46 +01:00
Matthias
c0e45d7b4f
remove url check wrapper
will be a seperate PR later
2021-11-21 01:16:12 +01:00
Matthias
be5289ba0f
break on database error 2021-11-21 00:53:04 +01:00
Matthias
ad76812622
PEP fix 2021-11-20 23:24:03 +01:00
Matthias
39648e545c
Add testing to detecte loops
Fixes #2308
2021-11-20 23:18:45 +01:00
Matthias
2f739bfbfa
fix test assertation 2021-11-20 21:10:20 +01:00
Matthias
d17af9eae7
PEP fixes 2021-11-20 21:03:51 +01:00
Matthias
65226bad1d
add template tag tests 2021-11-20 20:00:35 +01:00
Matthias
33bc77e138
small docstring changes 2021-11-20 19:46:38 +01:00
Matthias
e7babfbb7c
remove invalid tests 2021-11-20 19:27:53 +01:00
Matthias
7a65520252
move import of integration plugins into registry 2021-11-20 19:25:40 +01:00
Matthias
06e5430948
refactor 2021-11-20 18:40:46 +01:00
Matthias
71f74f9cc4
move globalsettings mixin reg to registry 2021-11-20 18:39:24 +01:00
Matthias
b1fbac925d
move stacks to registry 2021-11-20 18:26:41 +01:00
Matthias
8fbbcb3a8d
better readability 2021-11-20 18:13:33 +01:00
Matthias
5f180b61e9
and another flag moved 2021-11-20 18:11:20 +01:00
Matthias
308348f051
move flags 2021-11-20 18:07:05 +01:00
Matthias
3aa40ce3e9
move settings to registry 2021-11-20 18:01:19 +01:00
Matthias
8ac41970ad
simpler imports 2021-11-20 17:46:50 +01:00
Matthias
e762ec676d
simplify imports 2021-11-20 17:29:06 +01:00
Matthias
8d2ad4da2e
set up cleaner import paths 2021-11-20 17:17:36 +01:00
Matthias
098116675a
move git stuff to the helpers 2021-11-20 17:03:10 +01:00
Matthias
5f83fd007f
more structure 2021-11-20 17:02:27 +01:00
Matthias
076cca5e62
add TODO for dependency 2021-11-20 16:43:39 +01:00
Matthias
b596e4f164
remove unneeded stuff from broken sample
and optimize for coverage
2021-11-20 16:37:54 +01:00
Matthias
ebe5993a45
refactor registry into own class and file 2021-11-20 16:31:02 +01:00
Matthias
8a2a06955f
small fixes 2021-11-20 15:49:02 +01:00
Matthias
67fa4cc119
PEP fix 2021-11-20 13:44:31 +01:00
Matthias
57aefc8100
wrapper to log failing urls 2021-11-20 13:37:16 +01:00
Matthias
e925095503
pack logging into custom error processing 2021-11-20 13:26:37 +01:00
Matthias
008917fdef
refactor custom error raising 2021-11-20 13:20:08 +01:00
Matthias
71e05d569b
refactor plugin error processing definition 2021-11-20 13:14:18 +01:00
Matthias
b05381fcc8
rename / cleanup 2021-11-20 13:00:12 +01:00
Matthias
2f306d951f
refactor url definition into plugin 2021-11-20 12:54:51 +01:00
Matthias
4171fe42d9
docstring 2021-11-20 12:47:34 +01:00
Matthias
e82c93ffae
refactor into own helper function for plugins 2021-11-20 12:39:27 +01:00
Matthias
98b0a2995f
ignore error in borken sampel -> it should not work 2021-11-20 12:29:29 +01:00
Matthias
f667367a6b
add broken plugin for testing error stack 2021-11-20 04:08:21 +01:00
Matthias
6301f06416
PEP fix 2021-11-20 04:06:15 +01:00