* Adds basic API endpoint for requesting plugin panels * Split PanelType out into own file * Placeholder for a plugin panel loaded dynamically * Add some dummy data for the plugin panels * Example of plugin panel selection based on page * Expose some global window attributes * Add new setting * Disable panel return if plugin integration is not enabled * Update hook to auto-magically load plugin panels * Allow custom panel integration for more panel groups * Remove debug call * Tweak query return data * async fn * Adds <PluginPanel> component for handling panel render * Cleanup * Prevent API requests before instance ID is known * Pass instance data through * Framework for a sample plugin which implements custom panels * offload custom panels to sample plugin * Load raw HTML content * Expand custom panel rendering demo * Adjust API endpoints * Add function to clear out static files which do not match installed plugin(s) * Update static files when installing plugins from file * Update static files when installing or uninstalling a plugin * Update static files on config change * Pass more information through to plugin panels * Prepend hostname to plugin source * Pass instance detail through * Cleanup code for passing data through to plugin panels - Define interface type - Shorten variable names * Update docs requirements * Revert "Update docs requirements" This reverts commit 63a06d97f58ae15d837babb799b9ed8b22c3802b. * Add placeholder for documentation * Fix imports * Add a broken panel which tries to load a non-existent javascript file * Render error message if plugin does not load correctly * Only allow superuser to perform plugin actions * Code cleanup * Add "dynamic" contnt - javascript file - to example plugin * Remove default values * Cleanup unused code * PanelGroup updates * Cleanup hooks for changing panel state * More work needed... * Code cleanup * More updates / refactoring - Allow dynamic hiding of a particular panel - Pass target ref as positional argument - Better handling of async calls * Documentation * Bump API version * Provide theme object to plugin context * Adjust sample plugin * Docs updates * Fix includefile call in docs * Improve type annotation * Cleanup * Enable plugin panels for "purchasing index" and "sales index" pages * Fix for plugin query check * Improvements to panel selection - Code refactor / cleanup - Ensure that a valid panel is always displayed - Allow plugin panels to persist, even after reload * Playwright test fixes * Update src/frontend/src/hooks/UsePluginPanels.tsx Co-authored-by: Lukas <76838159+wolflu05@users.noreply.github.com> * Update src/frontend/src/components/plugins/PluginPanel.tsx Co-authored-by: Lukas <76838159+wolflu05@users.noreply.github.com> * Update src/frontend/src/components/plugins/PluginContext.tsx Co-authored-by: Lukas <76838159+wolflu05@users.noreply.github.com> * Fix context * Add more context data * Docs updates * Reimplement local state * Fix mkdocs.yml * Expose 'colorScheme' to plugin context * Define CustomPanel type definition * Add unit testing for user interface plugins * Add front-end tests for plugin panels * Add new setting to plugin_settings_keys * Adds helper function for annotating build line allocations * Improve query efficiency - Especially around unit testing - Ensure all settings are generated - Do not auto-create settings during registry load * Improve query efficiency for build order operations * Reduce max query count for specific test * Revert query count limit * playwright test updates --------- Co-authored-by: Lukas <76838159+wolflu05@users.noreply.github.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
Client - CUI
Client - PUI
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.
👋 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 would like to acknowledge a few special projects:
- PartKeepr as a valuable predecessor and inspiration
- Readme Template for the template of this page
Find a full list of used third-party libraries in our documentation.
❤️ 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.