Commit Graph
100 Commits
Author SHA1 Message Date
Oliver 2f01691095 "patch" for legacy checkboxes in HTML forms
- Update to match the style of more "modern" API-driven forms
- These legacy forms will be removed in future revision anyway
2022-01-13 16:37:42 +11:00
OliverandGitHub 8afce7b61a Merge pull request #2545 from inventree/dependabot/pip/django-3.2.11
Bump django from 3.2.10 to 3.2.11
2022-01-13 14:35:07 +11:00
OliverandGitHub f6566bd476 Merge pull request #2544 from inventree/dependabot/pip/pillow-9.0.0
Bump pillow from 8.3.2 to 9.0.0
2022-01-13 13:25:40 +11:00
OliverandGitHub c55b31d2fd Merge pull request #2543 from SchrodingersGat/plugin-schedule-fix
Adds the ability for 'scheduled tasks' to be member functions of plugins
2022-01-13 11:25:48 +11:00
Oliver 3fb77f466c PEP fixes 2022-01-13 11:00:33 +11:00
Oliver ae016730f8 Fix - needs a global function to schedule 2022-01-13 10:53:33 +11:00
Oliver 519a1009ab Fix: wrap args in quotes 2022-01-13 10:47:37 +11:00
Oliver 934de1f772 Adds the ability for 'scheduled tasks' to be member functions of plugins 2022-01-13 10:24:47 +11:00
OliverandGitHub 7f31e08c56 Merge pull request #2541 from SchrodingersGat/table-fix
Fix "actions" column for part purchase order table
2022-01-12 15:35:08 +11:00
Oliver 5df8377213 Fix "actions" column for part purchase order table 2022-01-12 15:12:53 +11:00
OliverandGitHub 0c37c2ce13 Merge pull request #2540 from SchrodingersGat/500
Adds custom error handler page for 500
2022-01-12 14:52:51 +11:00
OliverandGitHub ebad01b497 Merge pull request #2525 from matmair/matmair/issue2519
Refactor action and barcode plugins and cleanup
2022-01-12 14:40:24 +11:00
Oliver 684de69251 Adds custom error handler page for 500 2022-01-12 13:06:50 +11:00
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