What's Changed
Breaking Changes
- Cleanup plugin mixin registry by @matmair in #4790
- Change target of PurchaseOrder notification by @SchrodingersGat in #4905
- Build Order Updates by @SchrodingersGat in #4855
Security Patches
- Remove hashes from dev requirements by @matmair in #4627
- Add SBOM to container by @matmair in #5017
- Add dj-rest-auth by @matmair in #4187
New Features
- [FR] Update to OpenAPI from CoreAPI by @matmair in #4178
- Support image uploads in the "notes" markdown fields by @SchrodingersGat in #4615
- Project code support by @SchrodingersGat in #4636
- Report Plugins by @SchrodingersGat in #4643
- Add custom template loader class by @SchrodingersGat in #4706
- [FR] Remove Gitpod integration by @matmair in #4740
- CI cleanup by @matmair in #4744
- Add 'Tag' management by @matmair in #4367
- Add list of pending shipment to home page, with corresponding setting by @miggland in #4775
- [Feature] Scrap Build Outputs by @SchrodingersGat in #4800
- Build consume stock by @SchrodingersGat in #4817
- Shipment delivery date by @miggland in #4825
- Adds ability to partially scrap build outputs by @SchrodingersGat in #4846
- Parameter filtering by @SchrodingersGat in #4823
- Improve cli experience by @matmair in #4881
- Part units by @SchrodingersGat in #4854
- Parameter types by @SchrodingersGat in #4935
- Report files by @SchrodingersGat in #4946
- Add Metadata to more models by @miggland in #4898
- Parameter validation via plugin by @SchrodingersGat in #4958
- Add openssf badge by @matmair in #4558
- [FR] Switch from git to dulwich by @matmair in #4966
- Add more version information by @matmair in #5014
- [FR] Add Feature flags by @matmair in #4982
- Add ProjectCode support to build orders by @SchrodingersGat in #4808
- Build line labels by @SchrodingersGat in #5034
- Add metadata to plugin configs by @matmair in #5019
- [Feature] Company Addresses by @LavissaWoW in #4732
Bug Fixes
- Implement pagination for stock history tracking API by @SchrodingersGat in #4629
- Catch error if notes directory does not exist by @SchrodingersGat in #4638
- Fix for "focus" field in forms by @SchrodingersGat in #4644
- Add ordering and search to ProjectCodeList API endpoint by @SchrodingersGat in #4645
- Fix plugin meta lookup by @matmair in #4684
- Mark "supplier" field as required on PurchaseOrder serializer by @SchrodingersGat in #4693
- Fix export of order data by @SchrodingersGat in #4714
- Make sure plugins are always on a new line by @matmair in #4721
- Scan in items fix by @SchrodingersGat in #4738
- Display proper printing target name in the label printing modal dialog by @martonmiklos in #4727
- Fix for sales order tables by @SchrodingersGat in #4753
- Bug fix for label printing by @SchrodingersGat in #4751
- Ignore variant stock when performing stocktake by @SchrodingersGat in #4752
- Metadata fix by @SchrodingersGat in #4725
- Bug fix for zero quantity pricing by @SchrodingersGat in #4765
- Sales order button fix by @SchrodingersGat in #4782
- Fix metadatalookup by @wolflu05 in #4784
- Restore shopping cart icon in BO/Allocate Parts by @sur5r in #4780
- Allow tag fields to be empty by @SchrodingersGat in #4816
- Bug fix for improperly configured SSO provider by @SchrodingersGat in #4822
- Fix category filtering for parameteric part table by @SchrodingersGat in #4861
- Handle ValidationError when creating a new setting by @SchrodingersGat in #4868
- Fix for currency migration by @SchrodingersGat in #4873
- Fix for PurchaseOrder template by @SchrodingersGat in #4885
- Fix for data migration by @SchrodingersGat in #4892
- Part unit migration fix by @SchrodingersGat in #4901
- Fix completeSalesOrderShipment typo in sales_order.js by @martonmiklos in #4908
- js fixes by @SchrodingersGat in #4918
- Fix ReturnOrder serializer by @SchrodingersGat in #4923
- Fix JS linting workflow by @SchrodingersGat in #4915
- Fix/settings bugs and added model SettingKeyType typing by @wolflu05 in #4944
- Fix for 'available' filter by @SchrodingersGat in #4952
- Fix for improper migrations by @SchrodingersGat in #4961
- Prevent div-by-zero error by @SchrodingersGat in #4967
- SSO bug fix by @SchrodingersGat in #4972
- Migration bug fix 2 by @SchrodingersGat in #4977
- Place uninstalled items back in stock by @mattbnz in #4994
- Fix for faulty data migrations by @SchrodingersGat in #4987
- Fix for forms.js by @SchrodingersGat in #4996
- Respect timezone when handeling git commit times by @matmair in #4997
- CSS fix for 2FA token by @SchrodingersGat in #5000
- Migration fix by @SchrodingersGat in #5006
- Catch exception by @SchrodingersGat in #5008
- Fix migration order by @SchrodingersGat in #5027
- Migration fixes by @SchrodingersGat in #5025
- Improve error logging by @SchrodingersGat in #5039
- Replace assertation with more targeted logging check by @matmair in #5045
- custom panel fix by @SchrodingersGat in #5049
- Fixes for purchase order receive buttons by @SchrodingersGat in #5072
- Table custom buttons by @SchrodingersGat in #5075
- Fix constraint for address model by @SchrodingersGat in #5076
- Fix for loadPartTable by @SchrodingersGat in #5082
- Catch Part.DoesNotExist by @SchrodingersGat in #5092
- Scheduling api fix by @SchrodingersGat in #5093
- Fix for stock status change by @SchrodingersGat in #5105
- Fix for index page badge by @SchrodingersGat in #5115
- Child items table by @SchrodingersGat in #5114
Devops / Setup Changes
- Mark as 0.12.0 dev by @SchrodingersGat in #4622
- Disable httpstat.us tests by @SchrodingersGat in #4699
- sentry.io improvements by @SchrodingersGat in #4712
- Code style improvements by @matmair in #4683
- Use coveralls github action by @SchrodingersGat in #4735
- Replace mklint with djlint by @matmair in #4746
- Base URL configuration options by @SchrodingersGat in #4749
- Add github link to funding.yml by @SchrodingersGat in #4754
- Update FUNDING.yml by @SchrodingersGat in #4755
- Fix various devcontainer issues by @wolflu05 in #4761
- Add missing triage:not-checked to documentation issue by @matmair in #4778
- Docker build fix by @SchrodingersGat in #4811
- Cleanup / consolidate unit testing code by @SchrodingersGat in #4831
- Possible fix for git messages by @matmair in #4882
- Add workflow for backporting PRs by @SchrodingersGat in #4912
- Add name to backport workflow by @SchrodingersGat in #4914
- Test flexibility by @miggland in #4945
- Fix common spelling mistakes by @matmair in #4956
- Remove concurrency checks by @matmair in #5002
- Skip pricing updates when importing data by @SchrodingersGat in #5026
- Improve StockItem API speed by @SchrodingersGat in #5042
- Add migration test workflow by @SchrodingersGat in #4973
- Unit Test Improvements by @SchrodingersGat in #5087
- Pin mysqlclient lib for docker by @SchrodingersGat in #5091
- Merge workflows by @matmair in #5103
Other Changes
- Translation fixes by @SchrodingersGat in #4621
- [FR] Refactor plugin registry by @matmair in #4340
- Fix typo in Update Check Interval setting by @LavissaWoW in #4642
- Refactor table buttons for printing by @SchrodingersGat in #4639
- Fix persist buttons by @SchrodingersGat in #4640
- Update to report plugin API by @SchrodingersGat in #4649
- Extend ReportMixin class to support labels by @SchrodingersGat in #4678
- Fix sorting by location in stock item table by @sur5r in #4658
- Fix missed translation of overallocation string by @LavissaWoW in #4681
- Homepage hide inactive by @SchrodingersGat in #4700
- bump deps by @matmair in #4692
- Link changes and in-table clipboards by @LavissaWoW in #4697
- Include error type when an error occurs updating exchange rates by @SchrodingersGat in #4728
- Remove restriction on manual stock item installation by @SchrodingersGat in #4747
- Fix filters for part variant table by @SchrodingersGat in #4748
- Stock transfer same location by @SchrodingersGat in #4757
- Fix for "used in" calculation by @SchrodingersGat in #4770
- Add option to hide plugin setting from auto-generated plugin setting page by @wolflu05 in #4767
- fix caluclations->calculations by @hasecilu in #4774
- Build filters by @SchrodingersGat in #4773
- Bump django from 3.2.18 to 3.2.19 by @dependabot in #4795
- Add reload functionality for build item table by @SchrodingersGat in #4799
- Add flag to API which allows using pack size by @miggland in #4741
- Update CSS for table filter tags by @SchrodingersGat in #4803
- Add "description" field to extra line items by @SchrodingersGat in #4815
- Small visual tweaks for notifications tab by @SchrodingersGat in #4819
- Add InvenTreePluginViewMixin to PartIndex by @IvoLealMCS in #4843
- Refactor: BaseInvenTreeSetting by @wolflu05 in #4834
- Improved error handling for email support by @SchrodingersGat in #4862
- Remove debug message by @SchrodingersGat in #4883
- Change debug message for plugin events by @SchrodingersGat in #4884
- Add API Calendar for Return Orders by @miggland in #4899
-
- Bump djLint to 1.29.0 (from 1.25.0) in the CI linting scripts by @martonmiklos in #4907
- Add Finnish language support by @SchrodingersGat in #4921
- Bump deps by @matmair in #4911
- Refactor model helpers into own file by @wolflu05 in #4927
- BOM table: remove quantity footer by @SchrodingersGat in #4930
- Improvements for parameteric part table by @SchrodingersGat in #4940
- Tweak svg data cleaning: by @SchrodingersGat in #4941
- Add user settings to remember the last/favourite label template by @martonmiklos in #4938
- Better rendering for parameter table by @SchrodingersGat in #4943
- Metadata bugfixes by @miggland in #4947
- Shorten displayed linked by default by @SchrodingersGat in #4951
- Add "can reproduce" checkbox to bug template by @wolflu05 in #4953
- Enable and disable plugins via the API by @SchrodingersGat in #4964
- Bump cryptography from 40.0.1 to 41.0.0 by @dependabot in #4955
- New tags by @SchrodingersGat in #4971
- Refactor label API code by @SchrodingersGat in #4978
- Currency migrations - stop migrations when defaults change by @matmair in #4975
- Refactor states/status by @matmair in #4857
- Remove signatur checking by @matmair in #5018
- Stock installed items by @SchrodingersGat in #5030
- Parameter by name by @SchrodingersGat in #5055
- Homepage Improvements by @SchrodingersGat in #5057
- Stock status change API by @SchrodingersGat in #5064
- Decouble ruleset migration by @matmair in #5067
- Add Contacts to admin panel by @LavissaWoW in #5065
- Required for order fix by @SchrodingersGat in #5077
- README Updates by @SchrodingersGat in #5084
- Update FUNDING.yml by @SchrodingersGat in #5085
- Table filters refactor by @SchrodingersGat in #5086
- PartParameter API improvements by @SchrodingersGat in #5094
- Synergise label filter help texts by @LavissaWoW in #5100
- Variant low stock by @SchrodingersGat in #5102
- Add Notifications shortcut by @matmair in #5104
- Update docker dev docs by @LavissaWoW in #4743
- Transfer stock location by @SchrodingersGat in #5117
- remove old method by @SchrodingersGat in #5120
- Get git log fix by @SchrodingersGat in #5113
- Update version.py by @SchrodingersGat in #5123
New Contributors
- @LavissaWoW made their first contribution in #4642
- @hasecilu made their first contribution in #4774
- @IvoLealMCS made their first contribution in #4843
Full Changelog: 0.11.0...0.12.0