Go to file
Oliver 432e0c622c
Single table for file attachments (#7420)
* Add basic model for handling generic attachments

* Refactor migration

* Data migration to convert old files across

* Admin updates

* Increase comment field max_length

* Adjust field name

* Remove legacy serializer classes / endpoints

* Expose new model to API

* Admin site list filters

* Remove legacy attachment models

- Add new mixin class to designate which models can have attachments

* Update data migration

- Ensure other apps are at the correct migration state beforehand

* Add migrations to remove legacy attachment tables

* Fix for "rename_attachment" callback

* Refactor model_type field

- ContentType does not allow easy API serialization

* Set allowed options for admin

* Update model verbose names

* Fix logic for file upload

* Add choices for serializer

* Add API filtering

* Fix for API filter

* Fix for attachment tables in PUI

- Still not solved permission issues

* Bump API version

* Record user when uploading attachment via API

* Refactor <AttachmentTable /> for PUI

* Display 'file_size' in PUI attachment table

* Fix company migrations

* Include permission informtion in roles API endpoint

* Read user permissions in PUI

* Simplify permission checks for <AttachmentTable />

* Automatically clean up old content types

* Cleanup PUI

* Fix typo in data migration

* Add reverse data migration

* Update unit tests

* Use InMemoryStorage for media files in test mode

* Data migration unit test

* Fix "model_type" field

- It is a required field after all

* Add permission check for serializer

* Fix permission check for CUI

* Fix PUI import

* Test python lib against specific branch

- Will be reverted once code is merged

* Revert STORAGES setting

- Might be worth looking into again

* Fix part unit test

* Fix unit test for sales order

* Use 'get_global_setting'

* Use 'get_global_setting'

* Update setting getter

* Unit tests

* Tweaks

* Revert change to settings.py

* More updates for get_global_setting

* Relax API query count requirement

* remove illegal chars and add unit tests

* Fix unit tests

* Fix frontend unit tests

* settings management updates

* Prevent db write under more conditions

* Simplify settings code

* Pop values before creating filters

* Prevent settings write under certain conditions

* Add debug msg

* Clear db on record import

* Refactor permissions checks

- Allows extension / customization of permission checks at a later date

* Unit test updates

* Prevent delete of attachment without correct permissions

* Adjust odcker.yaml

* Cleanup data migrations

* Tweak migration tests for build app

* Update data migration

- Handle case with missing data

* Prevent debug shell in TESTING mode

* Update migration dependencies

- Ensure all apps are "up to date" before removing legacy tables

* add file size test

* Update migration tests

* Revert some settings caching changes

* Fix incorrect logic in migration

* Update unit tests

* Prevent create on CURRENCY_CODES

- Seems to play havoc with bootup sequence

* Fix unit test

* Some refactoring

- Use get_global_setting

* Fix typo

* Revert change

* Add "tags" and "metadata"

* Include "tags" field in API serializer

* add "metadata" endpoint for attachments
2024-06-19 14:38:46 +10:00
.devcontainer Cache updates (#7388) 2024-06-02 21:43:31 +10:00
.devops Pin hashes in requirements (#7081) 2024-04-23 17:15:52 +10:00
.github Single table for file attachments (#7420) 2024-06-19 14:38:46 +10:00
.vscode Code structure refactor (#5582) 2024-04-03 12:16:59 +11:00
assets/images/logo Code structure refactor (#5582) 2024-04-03 12:16:59 +11:00
contrib fix: Add installer check for python version (#7440) 2024-06-14 08:25:58 +10:00
docs [Docs] Add more info on branching (#7407) 2024-06-05 07:31:29 +10:00
src Single table for file attachments (#7420) 2024-06-19 14:38:46 +10:00
.git-blame-ignore-revs Cleanups for refactor (#6933) 2024-04-03 19:59:02 +11:00
.gitattributes fix endline 2022-05-20 13:35:07 +02:00
.gitignore Report printing refactor (#7074) 2024-05-22 10:17:01 +10:00
.pkgr.yml Adjust pkgr.yml (#6608) 2024-03-01 12:49:06 +11:00
.pre-commit-config.yaml Fixes for installer (#7344) 2024-05-27 17:49:05 +10:00
codecov.yml [PUI] Add more tests (#7010) 2024-04-14 20:24:22 +10:00
CONTRIBUTING.md Code structure refactor (#5582) 2024-04-03 12:16:59 +11:00
crowdin.yml Code structure refactor (#5582) 2024-04-03 12:16:59 +11:00
LICENSE Update LICENSE 2022-02-21 22:31:10 +11:00
Procfile Fix typo in Procfile (#7043) 2024-04-16 08:53:03 +10:00
pyproject.toml Code structure refactor (#5582) 2024-04-03 12:16:59 +11:00
README.md Update link for mobile app docs (#7378) 2024-05-31 17:06:12 +10:00
readthedocs.yml Code structure refactor (#5582) 2024-04-03 12:16:59 +11:00
RELEASE.md Update broken links (#7019) 2024-04-17 19:42:59 +10:00
requirements.txt Admin shell (#6998) 2024-04-11 21:12:41 +10:00
runtime.txt Add package-based install method (#3743) 2022-10-16 10:14:18 +11:00
SECURITY.md Spelling fix: dates -> days (#3193) 2022-06-14 10:07:48 +10:00
tasks.py Single table for file attachments (#7420) 2024-06-19 14:38:46 +10:00

InvenTree logo

InvenTree

Open Source Inventory Management System

License: MITGitHub tag (latest SemVer) CI Documentation Status Docker Build OpenSSF Best Practices OpenSSF Scorecard Netlify Status Maintainability Rating

codecov Crowdin GitHub commit activity Docker Pulls

GitHub Org's stars Twitter Follow Subreddit subscribers

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
DevOps

🧰 Deployment / Getting Started

There are several options to deploy InvenTree.

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:

Find a full list of used third-party libraries in our documentation.

❤️ Support

This project is supported by the following sponsors:

Martin Löper Oliver Lippert Seth Smith SpaceQuest Ltd Appwrite Cabot Technologies Markus Kasten Jess Haynes

With ongoing resources provided by:

Servers by Digital Ocean Deploys by Netlify Translation by Crowdin

⚠️ License

Distributed under the MIT License. See LICENSE.txt for more information.