* Add setting for "mandatory" plugins * Add 'is_active' method to PluginConfig model * Check against plugin config object by priority * Prevent plugin from reporting its own 'active' status * Refactor get_plugin_class for LabelPrint endpoint * Fix typo * Mark internal plugin methods as "final" - Prevent plugins from overriding them * Enhanced checks for bad actor plugins * Enhanced unit test for plugin install via API * Playwright tests for plugin errors * Test that builtin mandatory plugins are always activated * Force mandatory plugins to be marked as active on load * API unit tests * Unit testing for plugin filtering * Updated playwright tests - Force one extra plugin to be mandatory in configuration * Adjust unit tests * Updated docs * Tweak unit test * Another unit test fix * Fix with_mixin - Checking active status first is expensive... * Make with_mixin call much more efficient - Pre-load the PluginConfig objects - Additional unit tests - Ensure fixed query count * Fix the 'is_package' method for PluginConfig * Tweak unit test * Make api_info endpoint more efficient - with_mixin is now very quick * Run just single test * Disable CI test * Revert changes to CI pipeline * Fix typo * Debug for test * Style fix * Additional checks * Ensure reload * Ensure plugin registry is ready before running unit tests * Fix typo * Add debug statements * Additional debug output * Debug logging for MySQL * Ensure config objects are created? * Ensure plugin registry is reloaded before running tests * Remove intentional failure * Reset debug level * Fix CI pipeline * Fix * Fix test mixins * Fix test class * Further updates * Adjust info view * Test refactoring * Fix recursion issue in machine registry * Force cache behavior * Reduce API query limits in testing * Handle potential error case in with_mixin * remove custom query time code * Prevent override of is_mandatory() * Prevent unnecessary reloads * Tweak unit tests * Tweak mandatory active save * Tweak unit test * Enhanced unit testing * Exclude lines from coverage * (final)? cleanup * Prevent recursive reloads --------- Co-authored-by: Matthias Mair <code@mjmair.com>

InvenTree
Open Source Inventory Management System
View Demo · Documentation · Report Bug · Request Feature
🌟 About the Project
InvenTree is an open-source Inventory Management System which provides powerful low-level stock control and part tracking. The core of the InvenTree system is a Python/Django database backend which provides an admin interface (web-based) and a REST API for interaction with external interfaces and applications. A powerful plugin system provides support for custom applications and extensions.
Check out our website for more details.
🧭 Roadmap
Want to see what we are working on? Check out the roadmap tag and horizon milestone.
🛠️ Integration
InvenTree is designed to be extensible, and provides multiple options for integration with external applications or addition of custom plugins:
👾 Tech Stack
Server
Database
DevOps
🧰 Deployment / Getting Started
There are several options to deploy InvenTree.
Docker
·
·
Bare Metal
Single line install - read the docs for supported distros and details about the function:
wget -qO install.sh https://get.inventree.org && bash install.sh
Refer to the getting started guide for a full set of installation and setup instructions.
📱 Mobile App
InvenTree is supported by a companion mobile app which allows users access to stock control information and functionality.
🔒 Code of Conduct & Security Policy
The InvenTree project team is committed to providing a safe and welcoming environment for all users. Please read our Code of Conduct for more information.
InvenTree is following industry best practices for security. Our security policy is included in this repo. We provide dedicated security pages on our documentation site.
👋 Contributing
Contributions are welcomed and encouraged. Please help to make this project even better! Refer to the contribution page.
📜 Translation
Native language translation of the InvenTree web application is community contributed via crowdin. Contributions are welcomed and encouraged.
💸 Sponsor
If you use InvenTree and find it to be useful, please consider sponsoring the project.
💎 Acknowledgements
We want to acknowledge PartKeepr as a valuable predecessor and inspiration. Find a full list of used third-party libraries in the license information dialog of your instance.
❤️ Support
This project is supported by the following sponsors:
With ongoing resources provided by:
⚠️ License
Distributed under the MIT License. See LICENSE.txt for more information.