2
0
mirror of https://github.com/inventree/inventree-website.git synced 2025-07-30 01:01:34 +00:00

More updates

This commit is contained in:
Oliver Walters
2025-07-26 11:10:23 +10:00
parent 5b7ff03057
commit 0ece21e816

View File

@@ -51,12 +51,114 @@ For a full list of changes made in this release, please see the [release notes o
### Breaking Changes
### Security Fixes
#### User Interface
The most significant breaking change in this release is the complete overhaul of the user interface. The new UI is built using a modern javascript / React framework, which means that many of the existing templates and components have been refactored or replaced.
This change may require some adjustments for users who have customized their InvenTree installation, particularly if they have created custom templates or plugins that rely on the old UI structure.
Any plugins which have not been updated to work with the new UI will not function correctly, and will need to be adjusted to work with the new interface. This is after we [removed the old PanelMixin class](https://github.com/inventree/InvenTree/pull/8828). This means that any plugins which inherit from the PanelMixin class will now throw an error when loaded.
The new UI is now available at the `/web/` endpoint - and the old UI has been removed entirely.
Note that old URLs have been remapped to the new UI, so users should not experience any issues with bookmarks or links that point to the old interface.
While we have made every effort to ensure that the new UI is compatible with existing data and functionality, there may be some edge cases where users encounter issues. We encourage users to report any problems they encounter so that we can address them promptly. In particular, if there are any features that are missing or not functioning as expected, please let us know [via GitHub issues](https://github.com/inventree/InvenTree/issues).
#### User Interface Plugins
The new UI plugin system provides a significant amount of *context* information to the plugins at render time. This means that plugins can now access information about the current user, the current page, and other relevant data when rendering their components.
Additionally, the plugins can access the API directly from the UI, allowing for more dynamic interactions and data retrieval, without the plugin needing to authenticate separately.
This plugin context system was introduced in [#9439](https://github.com/inventree/InvenTree/pull/9439), but further additions and improvements have been made in subsequent pull requests.
The [@inventreedb/ui](https://www.npmjs.com/package/@inventreedb/ui) npm package provides full type definitions for the plugin context, making it easier for developers to create plugins that integrate seamlessly with the new UI.
Further, the npm package provieds a set of pre-defined react components which can be reused by plugins.
Scaffolding a UI plugin from scratch represents a significant amount of work, so we have created a [plugin creation tool](https://github.com/inventree/plugin-creator/) which generates all of the necessary boilerplate code to get started quickly. This tool can be used to create a new plugin that is ready to be extended with custom functionality.
To integrate seamlessly with the UI, plugin developers should be aware that some *core* libraries (such as *react* / *mantine* / *lingui*) must be externalized, as they are already provided by the InvenTree UI. This means that plugins should not include their own versions of these libraries, as this can lead to conflicts and unexpected behavior.
Note that this is all handled automatically by the plugin creation tool, so developers should not need to worry about this unless they are creating plugins manually.
#### Builtin Plugins
The InvenTree project now includes a number of builtin plugins that provide additional functionality and features. These plugins are designed to work seamlessly with the new UI and provide a range of enhancements to the core InvenTree functionality.
Some of these plugins are *mandatory* - as they are required for the core functionality of InvenTree. These mandatory plugins are installed automatically when InvenTree is installed, and cannot be disabled.
#### Docker Changes
We have updated the [supported postgres version](https://github.com/inventree/InvenTree/pull/9041) in our docker image from version 13 to version 17.
For new installations, this should not cause any issues, as the docker image will automatically pull the latest version of postgres.
For existing installations, this will only make a difference if you wish to update your existing database. Note that our docker image will still support connection to older versions of postgres, so users can continue to use their existing database without any issues.
#### API Changes
There have been a significant number of changes to the InvenTree API in this release, although the majority of these changes are backwards compatible.
All API changes are [documented in the source code](https://github.com/inventree/InvenTree/blob/master/src/backend/InvenTree/InvenTree/api_version.py), and users can refer to this file to see the specific changes that have been made.
Additionally, the [API schema is documented](https://docs.inventree.org/en/stable/api/schema/) and provides a comprehensive overview of the available endpoints and their parameters.
#### Auth Changes
We have refactored our authentication framework significantly, both to support the new UI and also to align with modern best practices.
These changes should not affect most users, as we have endeavored to maintain compatibility with existing authentication methods. However, users who have implemented custom authentication mechanisms may need to review their code to ensure compatibility with the new framework.
In particular we have updated our [django-allauth framework](https://github.com/inventree/InvenTree/pull/6293) to align with changes to that library.
#### Bulk Update Mixin
In [PR #9313](https://github.com/inventree/InvenTree/pull/9313) we introduced a "BulkUpdateMixin" class which allows some API endpoints to support bulk updates. This mixin can be used to extend existing API endpoints to allow for bulk updates of objects, which can significantly improve performance when updating large datasets.
#### Part Scheduling
The existing "Part Scheduling" feature has been removed in this release, and replaced with a plugin-based solution. This change was made to allow for greater flexibility and customization of the scheduling functionality, as well as to improve performance and maintainability.
Refer to the [InvenTree Stock Forecasting plugin](https://github.com/inventree/inventree-stock-forecasting) to replace the old part scheduling functionality.
#### Auto-Create Child Builds
The "auto-creation of child builds" feature has been removed from the core functionality, as it was not configurable and too narrowly scoped to be useful for most users. This feature has been replaced with a more flexible plugin-based solution, which allows users to create custom logic for automatically creating child builds based on their specific requirements.
Refer to [PR #9574](https://github.com/inventree/InvenTree/pull/9574) for more information.
#### Remove django-import-export
In [#8685](https://github.com/inventree/InvenTree/pull/8685) we removed the [django-import-export](https://django-import-export.readthedocs.io/en/latest/) framework, which is what was previously used for data import and export. This has been replaced with a [custom API driven solution](https://github.com/inventree/InvenTree/issues/8686) which is more flexible and easier to use. Our new framework runs in the background worker, allowing for processing of large datasets without blocking the user interface (or causing the web server to timeout).
### Database Changes
### New Features
#### Email Enhancements
[PR #9608](https://github.com/inventree/InvenTree/pull/9608) enhances email support capabilities, including plugin support for sending and receiving emails.
#### Order Start Dates
In [#PR 8966](https://github.com/inventree/InvenTree/pull/8966) we introduced a new "start date" field for purchase orders and sales orders. This field allows users to specify the date when the order is expected to start processing, which can be useful for planning and scheduling purposes. In [#8915](https://github.com/inventree/InvenTree/pull/8915) the "start date" field was also added for build orders.
#### Report Merging
[PR #9532](https://github.com/inventree/InvenTree/pull/9532) introduces a new feature that allows users to merge multiple items into a single report. When generating reports against multiple items, users can now select to render the report as a single document, rather than generating separate reports for each item.
This is selected as an option against a particular report template. Note that it requires the report template to be designed to support merging, as not all templates will be suitable for this feature.
#### Part Parameter Tracking
[PR #10023](https://github.com/inventree/InvenTree/pull/10023) tracks the user who last modified a part parameter, and when it was last modified. This change provides greater visibility into changes made to part parameters.
#### BOM Enhancements
Added support for greater flexibility in managing Bills of Materials (BOMs) - refer to [#10042](https://github.com/inventree/InvenTree/pull/10042) for details.
### Devops Changes
### Bug Fixes