Commit Graph
100 Commits
Author SHA1 Message Date
OliverandGitHub 506f5696ca Merge pull request #2539 from SchrodingersGat/exchange-rate-bug-fix
Add try/except blocks for calls to conert_money
2022-01-12 12:23:40 +11:00
Oliver 7ce55f4195 Add try/except blocks for calls to conert_money 2022-01-12 11:57:33 +11:00
OliverandGitHub 2255619b40 Merge pull request #2534 from SchrodingersGat/plugin-enable
Plugin enable
2022-01-12 09:49:52 +11:00
Oliver 36f342f05e URL fix 2022-01-12 09:21:34 +11:00
Oliver d92173dc8e Do not service plugin URLs if plugins are not enabled 2022-01-12 09:05:08 +11:00
OliverandGitHub 4d01ab16ea Merge pull request #2535 from SchrodingersGat/filters-fix
CSS fixes for table filter tags
2022-01-11 15:40:54 +11:00
Oliver 4f79904fc8 Ignore events from 'webhook' tables 2022-01-11 15:02:32 +11:00
Oliver 5f955fab80 Merge remote-tracking branch 'inventree/master' into filters-fix 2022-01-11 14:54:34 +11:00
Oliver 1ddf3c62c4 CSS fixes for table filter tags 2022-01-11 14:31:35 +11:00
OliverandGitHub 19de9a056b Merge pull request #2336 from matmair/webhooks
Webhooks
2022-01-11 14:19:21 +11:00
Oliver e2bfa17522 Enable plugin support for github ci pipelines 2022-01-11 14:15:51 +11:00
Oliver 1937a9d737 PEP fixes 2022-01-11 13:49:53 +11:00
Oliver 6541dc43ec Template fixes 2022-01-11 13:46:50 +11:00
Oliver 8aec055e6c Only load plugins if PLUGINS_ENABLED is true
- Hide plugin settings
- Add plugin support status to "stats" dialog
2022-01-11 13:39:47 +11:00
Oliver 31df4eae83 Set default environment variables for docker setups 2022-01-11 12:35:32 +11:00
Oliver ad851a653c Add default value for plugins_enabled to configuration template file 2022-01-11 12:34:34 +11:00
Oliver a92ea1e5c7 Add PLUGINS_ENABLED variable in settings.py 2022-01-11 12:32:41 +11:00
OliverandGitHub 410e5da371 Translationmerge (#2529)
* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin
2022-01-10 22:09:04 +11:00
OliverandGitHub a2ede73669 Merge pull request #2515 from SchrodingersGat/triggers
[Plugin] Triggered Events
2022-01-10 20:55:43 +11:00
Oliver fde2b03172 Merge remote-tracking branch 'inventree/master' into triggers
# Conflicts:
#	InvenTree/plugin/mixins/__init__.py
2022-01-10 20:34:42 +11:00
OliverandGitHub 204f60405e Merge pull request #2518 from matmair/api-mixin
[Plugin] API Call mixin
2022-01-10 20:33:17 +11:00
Oliver 4ae86c8c14 Reject triggered events when running special commands 2022-01-10 20:12:43 +11:00
Oliver c848ca8d44 Handle errors when offloading tasks 2022-01-10 20:04:36 +11:00
Oliver 0a40c253a5 Do not fire events for some tables 2022-01-10 19:56:43 +11:00
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
OliverandGitHub f7925e2d80 Merge pull request #2522 from SchrodingersGat/hide-restart-message
Hide "restart required" message in demo mode
2022-01-10 14:53:24 +11:00
Oliver 4ddd6bc351 Adds more triggered events for stock models 2022-01-10 09:16:18 +11:00
OliverandGitHub a2b88dd0fa Merge pull request #2521 from matmair/patch-1
small fix to language in readme
2022-01-10 09:10:52 +11:00
Oliver 67aac9c373 Add triggere events for the "company" app 2022-01-10 09:07:30 +11:00
Oliver 13d8bf437a PEP fixes 2022-01-10 09:02:11 +11:00
Oliver 2370e41961 Add multiple triggered events for the "order" app 2022-01-10 09:01:17 +11:00
Oliver 5acd880f39 Fix for triggered events 2022-01-10 08:54:11 +11:00
Oliver 0002edc32c Hide "restart required" message in demo mode 2022-01-10 08:50:50 +11:00
Oliver 936330d3d2 Add more triggered events 2022-01-09 23:07:12 +11: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
OliverandGitHub be729d037e Merge pull request #2520 from SchrodingersGat/build-comple-fix-2
Second bug fix for "build complete" form
2022-01-09 22:38:42 +11:00
Oliver 6aa83796ea PEP fixes 2022-01-09 22:15:59 +11:00
Oliver da9fa1313c Increased unit testing 2022-01-09 22:14:48 +11:00
Oliver 3e2e9aaf9e Mark serializer fields as not required 2022-01-09 20:10:00 +11:00
Oliver af1bfb2f87 Merge remote-tracking branch 'inventree/master' into triggers 2022-01-09 08:15:47 +11:00
OliverandGitHub 63ed59ebcf Merge pull request #2517 from SchrodingersGat/build-complete-fix
Fix messaging in build complete dialog
2022-01-09 08:12:52 +11:00
Oliver d8057e88e7 Fix messaging in build complete dialg 2022-01-09 07:50:08 +11:00
Oliver ff7a75266b Fixes for stock location forms 2022-01-08 20:28:57 +11:00
Oliver af18d16d98 Tweak admin area icon 2022-01-08 20:19:18 +11:00
Oliver 77decc72ed Extra bug fix for part variant form 2022-01-08 20:07:54 +11:00
Oliver 137a668452 Remove duplicated settings display 2022-01-08 13:29:13 +11:00
Oliver 9e2250e9b8 Bug fixes for settings 2022-01-08 13:19:16 +11: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
Oliver 8ff3bf1ad1 Adds a new setting to enable event responses 2022-01-07 21:53:42 +11:00
Oliver 1e5ecb13f0 Add code for triggering and responding to events 2022-01-07 21:48:17 +11:00
OliverandGitHub 4a5e4a88ac Merge pull request #2509 from matmair/plugin-install
Plugin install
2022-01-07 20:19:47 +11:00
OliverandGitHub 31ea7e2792 Merge pull request #2512 from SchrodingersGat/mixins
Adds "scheduled task" mixin for plugins
2022-01-07 18:25:47 +11: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 ff598a22ff bug fix : correct setting name when changing a 'requires restart' setting 2022-01-07 16:20:16 +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
OliverandGitHub 7967c0c0bd Merge pull request #2492 from SchrodingersGat/plugin-settings-refactor
Plugin settings refactor
2022-01-07 14:12:22 +11:00
OliverandGitHub a1f51a8e92 Merge pull request #2495 from matmair/stale
Mark stale PRs / issues
2022-01-07 13:56:18 +11:00
OliverandGitHub 35561b46ef Merge pull request #2511 from SchrodingersGat/table-pagination-fix
Customize text if totalRows not known
2022-01-07 13:44:48 +11:00
Oliver Walters aaf35e6c76 Customize text if totalRows not known 2022-01-07 13:14:47 +11:00
OliverandGitHub c1ef9a445a Merge pull request #2510 from SchrodingersGat/build-order-complete-improvements
Adds confirmation inputs when completing build order
2022-01-07 12:45:34 +11:00
Oliver Walters 2bb1c4ea77 Remove old forms / outdated code 2022-01-07 11:34:33 +11:00
Oliver Walters 12b3a5c9cc Validate and save the new serailizer 2022-01-07 11:33:27 +11:00
Oliver Walters 960784644f Adds skeleton for new API endpoint for completing a build order 2022-01-07 10:50:29 +11:00
OliverandGitHub 8597ae89b6 Merge pull request #2504 from SchrodingersGat/plugin-docker-support
Plugin Installation Support
2022-01-06 14:48:00 +11:00
OliverandGitHub d4410a11ca Merge pull request #2506 from ldet/fix-localize
Dont localize item.quantity in JS Code
2022-01-06 14:39:25 +11:00
Oliver d8d22e5f38 Refactor code (so that it actually runs)...
- Invoke does not have access to the local virtual environment
- Some functions need to be split out from settings.py
2022-01-06 14:20:26 +11:00
Oliver 836b6275b6 Removes custom plugins directory
- rely on plugins.txt instead
2022-01-06 13:31:04 +11:00
Oliver 75d5f9d6e6 Allow specification of an external plugin directory
- Specify directory using INVENTREE_PLUGIN_DIR
- Specify installation file using INVENTREE_PLUGIN_FILE
2022-01-06 12:39:01 +11:00
Oliver 5c2121b1a1 Add invoke target to install plugins from file 2022-01-06 12:25:07 +11:00
Oliver e0e6dbac94 Add PLUGIN_FILE to settings.py 2022-01-06 12:15:33 +11:00
OliverandGitHub c932597459 Merge pull request #2502 from matmair/welcome-action
Add welcome messages
2022-01-06 10:40:29 +11:00
OliverandGitHub ff80fe4dbf Translation merge (#2499)
* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin
2022-01-05 15:14:03 +11:00
Oliver 963ac35a5b Tweaks for settings pages 2022-01-04 21:57:09 +11: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
OliverandGitHub c6330608e5 Merge pull request #2491 from SchrodingersGat/double-bug-fix
Plugin API fix
2021-12-31 17:21:00 +11:00
Oliver 182849e160 Fix for settings template 2021-12-31 15:24:56 +11:00
Oliver 553b998c9c CSS fixes 2021-12-31 15:23:44 +11:00
Oliver 9b468ba92e Second fix for the first fix 2021-12-31 15:20:32 +11:00
OliverandGitHub 30cd7b2196 Merge pull request #2489 from SchrodingersGat/plugin-bug-fix
Plugin code bug fix
2021-12-31 15:16:21 +11:00