What's Changed
Breaking Changes
- Plugin API lookup key by @SchrodingersGat in #7224
- Add support for a Completed status (Fixes: #6434) by @tsimonq2 in #6449
- Report printing refactor by @SchrodingersGat in #7074
- Single table for file attachments by @SchrodingersGat in #7420
- Bump docker image alpine base from 3.18 to 3.20 by @matmair in #7699
- Migrate Icons to Tabler icons and integrate into PUI by @wolflu05 in #7684
- Plugin static files by @wolflu05 in #7763
Security Patches
- Provide setup keys for two-factor authentication alongside QR codes by @matmair in #7406
- Bump braces from 3.0.2 to 3.0.3 in /src/frontend by @dependabot in #7430
- [PUI] Add 2FA login by @matmair in #7469
- Bump django to 4.2.14 by @matmair in #7620
- bump setuptools by @matmair in #7663
- Add option to disable MFA by @matmair in #7757
- Add provenance to releases and publish SBOMs by @matmair in #7784
- [0.16.x] Bump django from 4.2.14 to 4.2.15 in /src/backend (#7827) by @github-actions in #7839
New Features
- PUI location type by @wolflu05 in #7238
- Prevent deletion of part which is used in an assembly by @SchrodingersGat in #7260
- Batch code generation by @SchrodingersGat in #7000
- Performance improvement for notifications API endpoint by @SchrodingersGat in #7154
- Currency setting by @SchrodingersGat in #7390
- Test result choices by @SchrodingersGat in #7417
- [plugins] allow static files for plugins by @SchrodingersGat in #7425
- Adds support for Romanian locale tranaslations by @SchrodingersGat in #7428
- Feat: SSO group sync by @p-fruck in #7293
- Detect python version for installer by @matmair in #7547
- Display barcode text near qrcode by @matmair in #7553
- [Build] Add extra validation options by @SchrodingersGat in #7560
- [WIP] Data importer by @SchrodingersGat in #6911
- [Feature] Part lock by @SchrodingersGat in #7527
- Add variable to stop creation of admin account by @matmair in #7580
- PUI form framework: dependent field by @wolflu05 in #7584
- Build Line Updates by @SchrodingersGat in #7591
- Fix "Scan barcode" modal input by @tomvaneyck in #7610
- Add debug option to the sheet printer plugin by @martonmiklos in #7614
- [Feature] Build allocation export by @SchrodingersGat in #7611
- Revision Improvements by @SchrodingersGat in #7585
- [PUI] Add BOM import tool by @SchrodingersGat in #7635
- Add notes to mp and sp by @wolflu05 in #7667
- Add barcode generation capabilities to plugins by @wolflu05 in #7648
- [PUI] Add permissions to groups by @matmair in #7621
- [FR] Add Tokens to PUI by @matmair in #7693
- Add substitute details to BOM export by @mredpath2 in #7563
- Added test statistics by @martonmiklos in #7164
- [PUI] Build test results by @SchrodingersGat in #7777
Bug Fixes
- Fix permissions for release.yaml by @SchrodingersGat in #7220
- Docker fix by @SchrodingersGat in #7228
- [PUI] Attachment table fix by @SchrodingersGat in #7232
- Fix for email template by @SchrodingersGat in #7249
- Plugin setting fix by @SchrodingersGat in #7258
- Report Migration Fix by @SchrodingersGat in #7296
- Fix sales order shipment / completed buttons by @SchrodingersGat in #7305
- Add Meta subclass for build serializers by @SchrodingersGat in #7315
- Handle exception on migration by @SchrodingersGat in #7322
- CUI: Don't load stock test results for non-trackable part by @SchrodingersGat in #7327
- Updates for metadata information by @SchrodingersGat in #7343
- Fix for 'restore' command by @SchrodingersGat in #7348
- Fixes for installer by @matmair in #7344
- Bug fix for label printing with plugin on CUI by @SchrodingersGat in #7324
- Label printing bug fixes by @SchrodingersGat in #7329
- Handle case where serializer does not have 'Meta' class by @SchrodingersGat in #7360
- Plugin reload fix by @SchrodingersGat in #7361
- Catch edge case for merge_stock_items: by @SchrodingersGat in #7373
- Migration fix by @SchrodingersGat in #7379
- Template permission fix by @SchrodingersGat in #7391
- Global Cache Fix by @SchrodingersGat in #7393
- Currency format fix by @SchrodingersGat in #7398
- Null url fix by @SchrodingersGat in #7408
- Remove the New Stock Item button from Stock view in case the user has no Stock write mermission by @SergeoLacruz in #7435
- Fix for report migration by @SchrodingersGat in #7438
- fix: Add installer check for python version by @matmair in #7440
- Fix for gunicorn command by @SchrodingersGat in #7450
- Improve stock item tracking API query by @SchrodingersGat in #7451
- Update data migration by @SchrodingersGat in #7455
- Fix click-through for purchase order line item table by @SchrodingersGat in #7472
- Fix fields for PurchaseOrderCancelSerializer by @SchrodingersGat in #7481
- [PUI] Bug fix by @SchrodingersGat in #7486
- Fix non null field 'description' by @mp-strachan in #7488
- PUI bug fix by @SchrodingersGat in #7490
- Handle missing dulwich module by @SchrodingersGat in #7497
- Fix for example test report by @SchrodingersGat in #7498
- Error checking for attachment model type by @SchrodingersGat in #7506
- Plugin load fix by @SchrodingersGat in #7505
- Handle null response case by @SchrodingersGat in #7512
- Fix table permissions for CUI by @SchrodingersGat in #7513
- Top level cascade by @SchrodingersGat in #7514
- [Bug] Fix for BOM import by @SchrodingersGat in #7515
- [bug] Handle case where deltas is null by @SchrodingersGat in #7516
- [PUI] Table filters by @SchrodingersGat in #7519
- Fix import widget type by @SchrodingersGat in #7535
- Calculate weighted average price when merging stock items by @SchrodingersGat in #7534
- [PUI] Fix choice-based settings showing as string fields by @LavissaWoW in #7543
- Fix call to add_label_context by @SchrodingersGat in #7548
- Fix 'symbol' field for CustomUnit by @SchrodingersGat in #7557
- Fix SSO theme selection by @matmair in #7556
- Package is not checking for already existing installs by @matmair in #7555
- [PUI] Fix saveNotes callback by @SchrodingersGat in #7545
- Fix schema version commit text by @matmair in #7576
- BOM delete fix by @SchrodingersGat in #7586
- Move duplicate schema endpoint by @matmair in #7595
- [Bug] Project code fix by @SchrodingersGat in #7599
- Parameter value bug by @SchrodingersGat in #7601
- Tweak checks for error messages by @SchrodingersGat in #7598
- [PUI] Fix line-break for "details" field by @SchrodingersGat in #7616
- Correct tooltips by @martonmiklos in #7625
- Fix machine request pickeling and settings by @wolflu05 in #6772
- Fix issues made in #7614 by @martonmiklos in #7622
- Allocated stock table fix by @SchrodingersGat in #7636
- Fix location icon field by @wolflu05 in #7658
- Added onInput event for fields in forms - fix for issue #7600 by @rocheparadox in #7660
- Adjust packaging at different stages by @SchrodingersGat in #7649
- Fix rendering bug with company image by @wolflu05 in #7668
- Cast width / height to integer by @SchrodingersGat in #7676
- Fix loading sequence for PUI form fields by @SchrodingersGat in #7678
- Cui tree fix by @SchrodingersGat in #7680
- [PUI] form error fix by @SchrodingersGat in #7689
- Revert postgres version to 13 by @SchrodingersGat in #7717
- try to fix tests by @wolflu05 in #7730
- [PUI] Bug fix for API forms by @SchrodingersGat in #7758
- Fix permissions for importing data by @SchrodingersGat in #7776
- Add limit to default location annotation by @LavissaWoW in #7771
- Fix for holdoff threshold checks by @SchrodingersGat in #7795
- Fix docker repo names by @matmair in #7800
- [PUI] Fix for part detail display by @SchrodingersGat in #7809
- [0.16.x] Check before calling schedule_pricing_update (#7871) by @github-actions in #7872
- [0.16.x] Fix for BOM pricing donut chart (#7917) by @github-actions in #7922
Devops / Setup Changes
- fix: SELinux labels for Caddyfile by @p-fruck in #7261
- Add clearer error message for invalid SITE_URL by @SchrodingersGat in #7311
- Use
UV_SYSTEM_PYTHON
to allow the system Python interpreter by @zanieb in #7317 - Query count test by @SchrodingersGat in #7157
- Cache updates by @SchrodingersGat in #7388
- Add unit test for stockitemtracking API by @SchrodingersGat in #7459
- More tests for
users
app by @matmair in #7479 - Disable 3.12 testing for now by @matmair in #7577
- Add cleanup task by @matmair in #7581
- [CI] Add nicer OpenAPI diffs by @matmair in #7002
- Optimize PUI package delivery for package installs by @matmair in #7655
- Various small packaging fixes by @matmair in #7686
- Bump node to 20 by @matmair in #7698
- cI: Test color theme again by @matmair in #7700
- Make libffi version more flexible by @matmair in #7734
- Update ruff settings to new preference by @matmair in #7756
- fix path to CI dependencies by @matmair in #7755
- Removed obsoleted version element from docker-compose examples by @medo64 in #7760
- Make versions_check more reliable in forks by @matmair in #7785
- [0.16.x] Update default fonts for docker image (#7881) by @github-actions in #7884
Dependencies
- Bump the dependencies group with 3 updates by @dependabot in #7276
- Bump eslint from 9.2.0 to 9.3.0 in /src/backend in the dependencies group by @dependabot in #7274
- Bump mkdocstrings[python] from 0.25.0 to 0.25.1 in /docs by @dependabot in #7212
- Bump requests from 2.31.0 to 2.32.0 in /src/backend by @dependabot in #7283
- Bump requests from 2.31.0 to 2.32.1 in /.github by @dependabot in #7282
- Bump requests from 2.32.1 to 2.32.2 in /.github by @dependabot in #7295
- [PUI] Update mantine components by @SchrodingersGat in #7369
- Bump the dependencies group across 1 directory with 3 updates by @dependabot in #7427
- Bump eslint from 9.3.0 to 9.4.0 in /src/backend by @dependabot in #7395
- Bump eslint from 9.4.0 to 9.5.0 in /src/backend by @dependabot in #7463
- Bump the dependencies group with 4 updates by @dependabot in #7462
- Bump urllib3 from 2.2.1 to 2.2.2 in /contrib/dev_reqs by @dependabot in #7467
- Bump docker/build-push-action from 6.0.0 to 6.1.0 in the dependencies group by @dependabot in #7502
- Bump pre commit versions by @matmair in #7255
- Bump certifi from 2024.2.2 to 2024.7.4 in /contrib/dev_reqs by @dependabot in #7568
- Bump the dependencies group with 2 updates by @dependabot in #7541
- Bump certifi from 2024.2.2 to 2024.7.4 in /src/backend by @dependabot in #7566
- General backend deps bump by @matmair in #7521
- Bump urllib3 to 2.2.2 by @matmair in #7578
- Bump the dependencies group with 5 updates by @dependabot in #7590
- Bump the dependencies group across 1 directory with 52 updates by @dependabot in #7540
- Bump certifi from 2024.2.2 to 2024.7.4 in /docs by @dependabot in #7596
- Bump the dependencies group with 3 updates by @dependabot in #7661
- Bump development deps by @matmair in #7606
- Bump sentry-sdk from 2.7.0 to 2.8.0 in /src/backend by @dependabot in #7683
- Bump eslint from 9.5.0 to 9.7.0 in /src/backend by @dependabot in #7710
- Bump the dependencies group with 5 updates by @dependabot in #7712
- Bump the dependencies group across 2 directories with 7 updates by @dependabot in #7769
Other Changes
- Mark as 0.16.0 dev version by @SchrodingersGat in #7218
- [PUI] Test table tweaks by @SchrodingersGat in #7231
- Add location type to location overview by @SergeoLacruz in #7202
- [PUI] Refactoring forms by @SchrodingersGat in #7239
- [PUI] Column Refactoring by @SchrodingersGat in #7242
- Admin tweaks by @SchrodingersGat in #7248
- Remove dead code by @SchrodingersGat in #7265
- Update part filters by @SchrodingersGat in #7264
- Fix wrapping for by @SchrodingersGat in #7272
- [PUI] StockTrackingTable by @SchrodingersGat in #7273
- Test result table tweaks by @SchrodingersGat in #7290
- [PUI] Add initial part data to manufacturer part table by @SchrodingersGat in #7299
- [PUI] Dynamic PartParameter field by @SchrodingersGat in #7298
- [PUI] Open links in new window by @SchrodingersGat in #7354
- Add option to hide active sessions from settings panel by @SchrodingersGat in #7366
- [PUI] Mantine tree by @SchrodingersGat in #7357
- Add new "available" badge to stock page by @SchrodingersGat in #7368
- PO shipped complete by @SchrodingersGat in #7367
- Fix parameter dialog for parametericparttable by @SchrodingersGat in #7380
- [PUI] Notes editor by @SchrodingersGat in #7284
- Panel placeholders by @SchrodingersGat in #7405
- Stock SKU export by @SchrodingersGat in #7418
- Mantine charts by @SchrodingersGat in #7419
- Setting refactor by @SchrodingersGat in #7404
- Allow build line list to be searched by IPN by @SchrodingersGat in #7442
- Small refactor for stock item post-save signals by @SchrodingersGat in #7449
- small code tweaks by @SchrodingersGat in #7454
- chore: style fixes by @matmair in #7478
- fix: add .vite folder in frontend releases (fixes #7476) by @Gigahawk in #7480
- Add "showmigrations" task to invoke by @SchrodingersGat in #7482
- [PUI] Allow search results to be opened in a new tab by @SchrodingersGat in #7500
- Fix for notification query by @SchrodingersGat in #7511
- Add field info to user serializer by @SchrodingersGat in #7518
- Plugin static files fix by @SchrodingersGat in #7532
- [PUI] Update table filters by @SchrodingersGat in #7544
- [PUI] Error pages by @SchrodingersGat in #7554
- [PUI] BOM table updates by @SchrodingersGat in #7561
- Ensure schema generation is more stable by @matmair in #7562
- [PUI] Update part duplicate forms by @SchrodingersGat in #7575
- Use more pathlib instead of os by @matmair in #7589
- Default location column by @SchrodingersGat in #7587
- [PUI] Query cache improvements by @SchrodingersGat in #7609
- [PUI] Add more columns by @SchrodingersGat in #7618
- Add server-side annotation for "can_build" by @SchrodingersGat in #7619
- [PUI] Add filters for parameteric part table by @SchrodingersGat in #7617
- Various small code quality cleanups by @matmair in #7626
- Update part detail by @SchrodingersGat in #7629
- Arabic support by @SchrodingersGat in #7630
- Remove caching of the DEBUG settings from the label printer plugin by @martonmiklos in #7640
- Fix argument name by @SchrodingersGat in #7653
- [PUI] Tweak purchase order line table by @SchrodingersGat in #7656
- Logic fix for UI elements by @SchrodingersGat in #7657
- [PUI] PO line item import by @SchrodingersGat in #7671
- [CUI] Non field errors by @SchrodingersGat in #7672
- Various SAST fixes by @matmair in #7644
- [PUI] Tweaks by @SchrodingersGat in #7673
- Small typescript cleanups by @matmair in #7685
- [PUI] Tab permissions by @SchrodingersGat in #7692
- [PUI] Remember state of table sorting by @SchrodingersGat in #7702
- Fix tooltip location for panel icon by @SchrodingersGat in #7703
- Disable blank issues by @matmair in #7732
- [PUI] Add more barcode actions by @SchrodingersGat in #7741
- Fix small style issue by @matmair in #7768
- Pin OAS action with hash by @matmair in #7767
- Add extra fields to BOM export by @SchrodingersGat in #7775
- Improve row click handling for tables by @SchrodingersGat in #7779
- [PUI] Update template tables by @SchrodingersGat in #7781
- [PUI] Table Updates by @SchrodingersGat in #7783
- Migration cleanup by @SchrodingersGat in #7792
- Make Tree Path searchable by @wolflu05 in #7786
- [PUI] Fix permission checks for bulk delete actions by @SchrodingersGat in #7796
- [API] Improvements for API endpoints by @SchrodingersGat in #7794
- [PUI] Sales order tables by @SchrodingersGat in #7793
- [0.16.x] [PUI] Make filter choice drop-down searchable (#7830) by @github-actions in #7831
- [0.16.x] Bump the dependencies group across 1 directory with 5 updates (#7811) by @github-actions in #7849
- [0.16.x] Bump the dependencies group across 1 directory with 41 updates (#7812) by @github-actions in #7853
- Update version.py by @SchrodingersGat in #7987
New Contributors
- @tsimonq2 made their first contribution in #6449
- @zanieb made their first contribution in #7317
- @Gigahawk made their first contribution in #7480
- @mp-strachan made their first contribution in #7488
- @tomvaneyck made their first contribution in #7610
- @lifeisafractal made their first contribution in #7651
- @mredpath2 made their first contribution in #7563
- @medo64 made their first contribution in #7760
- @niclash made their first contribution in #7801
Full Changelog: 0.15.0...0.16.0