What's Changed
Breaking Changes
- Plugin framework updates by @matmair in #3535
- Sanitize search input by @SchrodingersGat in #3591
- Remove hidden characters from form fields by @SchrodingersGat in #3597
- Barcode Refactor by @SchrodingersGat in #3640
- Plugin API refactor by @matmair in #3637
Security Patches
- Depenency updates by @matmair in #3472
- [FR] Tie github actions to specific commit hashes by @matmair in #3532
- Add decorator to not require auth by @matmair in #3633
- Add sanitation for SVG attachments by @matmair in #3701
- Add content headers to config by @matmair in #3731
- Update deps to newest releases by @matmair in #3782
- Check user permissions before linking or un-linking barcodes by @SchrodingersGat in #3772
- Add package-based install method by @matmair in #3743
- allauth default login protocol setting by @geniesis in #3975
New Features
- Login with url by @matmair in #3465
- [FR] Add plugin keys, state and version to version info by @matmair in #3496
- Update issue templates to GH forms by @matmair in #3495
- Custom splash screen by @SchrodingersGat in #3499
- vscode devcontainer by @luwol03 in #3474
- Check for (and reduce) overallocated stock when editing build orders. by @mattbnz in #3237
- Plugin meta detection improvements by @matmair in #3516
- refactor custom file lookup by @matmair in #3536
- Update README links to point to our specific projects / workspaces by @matmair in #3548
- Feature/icons for PartCategory and StockLocation by @wolflu05 in #3542
- Scheduling improvements by @SchrodingersGat in #3564
- Adds option for duplicating an existing purchase order by @SchrodingersGat in #3567
- Part parameter update by @SchrodingersGat in #3605
- Optimisations for editable installs of plugins by @matmair in #3634
- Feature: Supplier part pack size by @SchrodingersGat in #3644
- Add support for Danish by @SchrodingersGat in #3675
- Add typecasting to certain settings by @matmair in #3726
- APIMixin: Add flag for passing data as json by @matmair in #3635
- Add db an media backups by @matmair in #3783
- Switch to registry for tasks by @matmair in #3790
- Bump actions to node 16 / current releases by @matmair in #3799
- [FR]Unit test for Schema allowance by @matmair in #3538
- Raise error if version fails by @matmair in #3792
- Add settings for backups by @matmair in #3806
- [Plugin] Allow custom plugins for running validation routines by @SchrodingersGat in #3776
- Housekeeping Settings by @SchrodingersGat in #3821
- Add reverse proxy docs by @matmair in #3847
- Fix url mangeling by @matmair in #3869
- Add metadata model to Company by @miggland in #3895
- Builtin plugins by @SchrodingersGat in #3889
- Installer v2 by @matmair in #3798
- Add option to recursively delete part categories by @martonmiklos in #3435
- Add news reader by @matmair in #3445
- Add support for recursively delete the stock locations by @martonmiklos in #3926
- Part pricing cache by @SchrodingersGat in #3710
- Implement structural stock locations by @martonmiklos in #3949
- 22 04 installer patch by @matmair in #3970
- Added config setting for logout redirect url by @maksimstojkovic in #3995
- Add 1D barcode support to browser webcam scanner by @maksimstojkovic in #4007
Bug Fixes
- Handle missing color themes directory by @SchrodingersGat in #3452
- Fix bug introduced in #3459 by @SchrodingersGat in #3462
- Improved loading for custom logo by @SchrodingersGat in #3489
- Url field fix by @SchrodingersGat in #3488
- load admin first by @SchrodingersGat in #3484
- Fix weasyprint version by @SchrodingersGat in #3539
- fix typo in variable name by @jsiverskog in #3541
- moves imports to enable startup without django beeing loaded by @matmair in #3547
- Fix bug in exporting records by @miggland in #3545
- Fix: Broken subfolder tests in postgres/docker CI in master by @matmair in #3559
- Fix bug in recent part scheduling table by @SchrodingersGat in #3566
- Include variant stock in part table by @SchrodingersGat in #3573
- Fix dimensions for label templates by @SchrodingersGat in #3578
- Inherited BOM fix by @SchrodingersGat in #3579
- Bug fix for loading asset files in reports by @SchrodingersGat in #3596
- StockItem page template fix by @SchrodingersGat in #3601
- Sanitize search text in bootstrap table by @SchrodingersGat in #3609
- Add missing 'remove stock' action by @SchrodingersGat in #3610
- Remove broken URL by @SchrodingersGat in #3623
- Fix sales order table refresh by @SchrodingersGat in #3627
- Update settings value lookup to include typ by @matmair in #3636
- Fix report permissions by @SchrodingersGat in #3642
- Fix splash screen for maintenance mode 503 page by @SchrodingersGat in #3651
- Fix part link in stock table by @SchrodingersGat in #3657
- Null units fix by @SchrodingersGat in #3663
- Fix purchase order report template by @SchrodingersGat in #3674
- Adds callback for clipboard button by @SchrodingersGat in #3678
- Path name bug fix by @SchrodingersGat in #3694
- Form field sanitization by @SchrodingersGat in #3699
- Only limit length of link if specified by @SchrodingersGat in #3700
- Bug fix for multi-level display in BOM table by @SchrodingersGat in #3720
- Barcode scan fix by @SchrodingersGat in #3727
- Bug fix for stock adjustment actions by @SchrodingersGat in #3735
- UI fixes for barcode actions by @SchrodingersGat in #3751
- Bug fix for boolean settings by @SchrodingersGat in #3760
- Allow auto-loading of plugins in certain conditions by @SchrodingersGat in #3762
- Plugin load fix by @SchrodingersGat in #3768
- Revert "Switch to registry for tasks" by @SchrodingersGat in #3803
- Attachment bug fix by @SchrodingersGat in #3818
- Bom table load fix by @SchrodingersGat in #3826
- Improve redraw speed of build allocation table by @SchrodingersGat in #3831
- Fix email notification setting by @SchrodingersGat in #3832
- Fix decimal rendering in progress bars by @SchrodingersGat in #3849
- Fix bug which prevented loading of test results by @SchrodingersGat in #3855
- [BUG] Confirmation Email uses local ip for link URL by @matmair in #3829
- Serial increment fix by @SchrodingersGat in #3863
- Part name validation fix by @SchrodingersGat in #3870
- Floating point API bug by @SchrodingersGat in #3877
- Fix for label printing plugin hook by @SchrodingersGat in #3879
- Fix mode switching for part category table by @SchrodingersGat in #3881
- re-enable plugins by default for debug docker environment by @SchrodingersGat in #3894
- Bug fix for PurchaseOrder template by @SchrodingersGat in #3913
- Fixes for background worker process by @SchrodingersGat in #3922
- Fix for barcode URL generation by @SchrodingersGat in #3924
- Notification fix by @SchrodingersGat in #3939
- Markdown notes fix by @SchrodingersGat in #3946
- Installer fixes by @matmair in #3962
- Search field fix for admin interface by @SchrodingersGat in #3976
- Fix for docker workflow by @SchrodingersGat in #3989
- Change point at which yaml module is loaded by @SchrodingersGat in #3999
- Test for docker workflow by @SchrodingersGat in #4014
- Fix to return a boolean value by @SchrodingersGat in #4018
- Tweak how "submit" button gets hidden by @SchrodingersGat in #4025
- Fix for plugin setting not working: by @SchrodingersGat in #4032
- Debug for docker workflow by @SchrodingersGat in #4021
- Append correct python path if not present (only during testing) by @SchrodingersGat in #4048
- Add unit test for deleting part which has pricing information by @SchrodingersGat in #3986
- Use supplier part pack size for scheduling by @SchrodingersGat in #4063
Devops / Setup Changes
- update devtools by @matmair in #3446
- Improvements to version check CI script by @SchrodingersGat in #3455
- gitpod.io fixes by @SchrodingersGat in #3456
- Improve plugin testing by @matmair in #3517
- Fix for stable branch push by @SchrodingersGat in #3619
- Add explicit reference_int values for order fixtures by @SchrodingersGat in #3645
- Update config_template.yaml by @IncompleteIntegers in #3689
- Remove broken action by @matmair in #3742
- Reduce duplication in plugin testing by @matmair in #3800
- Workflow fix by @SchrodingersGat in #3830
- Improvements for CI tests by @SchrodingersGat in #3850
- Improvements for image download helper by @SchrodingersGat in #3903
- Extend installer issue option by @matmair in #3961
- Remove DO for now by @matmair in #3957
- Docker plugin config by @SchrodingersGat in #3977
- Fix for stable release workflow by @SchrodingersGat in #4006
- Improvements for docker / gunicorn by @SchrodingersGat in #4031
- gunicorn: revert support for gevent by @SchrodingersGat in #4035
- Fix for unit test in docker by @SchrodingersGat in #4061
Other Changes
- 0.9.0 dev by @SchrodingersGat in #3433
- Remove os usage in common by @matmair in #3459
- Fix: Treegrid is loading an eternity for huge amounts of data by @luwol03 in #3451
- Tests/stocklocation and partcategory by @luwol03 in #3473
- Update translation function name to new default by @matmair in #3497
- Allow builds to be completed without any outputs by @SchrodingersGat in #3518
- Update bleach clean function by @SchrodingersGat in #3503
- Update 'stock' icons for part table by @SchrodingersGat in #3561
- Add ability to quickly duplicate build orders by @SchrodingersGat in #3565
- fix: invalid chars in cache key by @wolflu05 in #3574
- Build API improvements by @SchrodingersGat in #3581
- Display "on order" quantity in build order allocation table by @SchrodingersGat in #3585
- Improve "overdue" display for part purchase order table by @SchrodingersGat in #3586
- Add a 'zero stock' threshold line to the part scheduling tab by @SchrodingersGat in #3587
- Floating point formatting for BOM table by @SchrodingersGat in #3600
- Open labels and reports in a new window by @SchrodingersGat in #3602
- Improve filter for auto-allocation of build item by @SchrodingersGat in #3603
- Fix default ordering for build orders by @SchrodingersGat in #3626
- Add search to build output table by @SchrodingersGat in #3639
- Add confirmation field for incomplete purchase orders by @SchrodingersGat in #3615
- Add extra information callout to stock item display by @SchrodingersGat in #3658
- Pack quantity improvements by @SchrodingersGat in #3661
- Display more units by @SchrodingersGat in #3664
- PO: Use supplier currency when creating a new extra line by @SchrodingersGat in #3666
- Short strings by @SchrodingersGat in #3695
- Update CompleteBuildOrder form by @SchrodingersGat in #3702
- Parameter ordering fix by @SchrodingersGat in #3704
- Cleanup javascript console log messages by @SchrodingersGat in #3706
- Add user setting for configuring table string length by @SchrodingersGat in #3715
- Adds 'consumable' field to BomItem model by @SchrodingersGat in #2890
- Show placeholder for null IPN values in "stock" table by @SchrodingersGat in #3737
- Update pre-commit by @matmair in #3744
- Last Connection date for user in admin panel by @Bbillyben in #3747
- Adds 'status_text' functions to models by @SchrodingersGat in #3752
- Fixes #3514 by @lawson89 in #3754
- New Crowdin updates by @SchrodingersGat in #3756
- Display build output status code by @SchrodingersGat in #3771
- Adjust display of extra "add bom item" button at bottom of BOM table by @SchrodingersGat in #3773
- Switch backup action to new schedule syntax by @matmair in #3801
- Add postgresql-client to docker image by @SchrodingersGat in #3802
- Fix task register by @matmair in #3805
- Build table improvements by @SchrodingersGat in #3833
- Readme: add installer docs link by @matmair in #3839
- Add packager.io to devops section by @matmair in #3840
- Prevent assigning of empty barcode data by @SchrodingersGat in #3851
- Make PartCategories to be filterable by name and description by @martonmiklos in #3854
- Enable build order search in quick-search window by @SchrodingersGat in #3856
- Link to API documentation in "about" window by @SchrodingersGat in #3871
- Remove special character restrictions in parameter template names by @martonmiklos in #3883
- Location barcode actions by @SchrodingersGat in #3887
- Allow editing of extra line items in order table by @SchrodingersGat in #3888
- Order editing updates by @SchrodingersGat in #3902
- Adds a report template tag for dict access by @SchrodingersGat in #3905
- Add 'barcode_hash' data to more API serializers: by @SchrodingersGat in #3906
- Remove client-side length validation in form inputs by @SchrodingersGat in #3911
- Bump minimatch from 3.0.4 to 3.1.2 by @dependabot in #3912
- Adds 'outstanding task count' to the health API endpoint by @SchrodingersGat in #3920
- Home page adjust by @SchrodingersGat in #3942
- Add setting to determine if supplier price breaks are used in pricing by @SchrodingersGat in #3943
- Support structural part categories by @martonmiklos in #3931
- Part image delete by @SchrodingersGat in #3963
- Remove SettingEditForm by @SchrodingersGat in #3964
- Fix typing by @matmair in #3966
- Simple formatting fix for BOM table by @SchrodingersGat in #3984
- Add settings for controlling variant pricing by @SchrodingersGat in #3987
- Supplier pricing override by @SchrodingersGat in #3988
- Add do link again by @matmair in #3992
- Add ability to filter location and category tables by "structural" by @SchrodingersGat in #4000
- Make part variant table columns sortable by @SchrodingersGat in #4004
- Improve price range rendering for BOM table footer by @SchrodingersGat in #4005
- Code cleanup by @SchrodingersGat in #4041
- Extra form validation for login form by @SchrodingersGat in #4046
- update INVENTREE_LOG_LEVEL param by @Bbillyben in #4058
- Docker fix final 2 by @SchrodingersGat in #4049
- Bump version number to 0.9.0 by @SchrodingersGat in #4055
New Contributors
- @jsiverskog made their first contribution in #3541
- @wolflu05 made their first contribution in #3542
- @IncompleteIntegers made their first contribution in #3689
- @Bbillyben made their first contribution in #3747
- @lawson89 made their first contribution in #3754
- @martonmiklos made their first contribution in #3854
- @geniesis made their first contribution in #3975
Full Changelog: 0.8.0...0.9.0