* Refactor InvenTreeTree model structure - Allow for tree with null items * Refactor pathstring * Factor pathstring out into a separate mixin - Keep tree operations separate (in InvenTreeTree) - Pathstring operations are now in PathStringMixin * throw error - Ensure that this func gets removed in future commit * Fix node delete code * Migrate "Build" model to new structure * Add unit tests for Build tree structure * Refactor StockLocationTreeTest * Implement tree rebuild test for StockItem model * Add unit test for stock item serialization * Refactor "Part" model to use mixin * Add unit tests for part variant tree * Add test for node deletion * Adjust unit tests * Ensure items are not created with null tree_id * Further unit tests and updates * Fix unit tests * Remove duplicate check * Adjust build fixture * Remove rebuild call * Fixing more tests * Remove calls to rebuild part tree * Add test for tree fixtures * Report tree rebuild errors to sentry * Remove helper func * Updates for splitStock * Cleaner inheritance * Simpilfy test - tree_id is somewhat ephemeral * Handle null parent * Enforce partial rebuild if parent changes * Fix * Remove hard-coded "parent" references * Fix order of delete operations * Fix unit test * Unit test tweaks * Improved handling for deleting a root node * Only set tree_id if not already specified * Only rebuild valid tree_id values * Cast to list * Adjust unit test - Test values were wrong, due to bad data in fixtures * Do not bulk delete - mysql no likey * Enhanced rebuild logic * Fix for unit test * Improve logic for _create_serial_numbers * Unit test fix * Remove unused function

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.