What's Changed
Breaking Changes
- Change the default serialization level for postgresql DB by @SchrodingersGat in #3268
- BREAKING: Remove old classes by @matmair in #3283
- Reference fields by @SchrodingersGat in #3267
- Refctor image downloader by @SchrodingersGat in #3393
Security Patches
- Add security.md by @SchrodingersGat in #3190
- Fix sanitization for array case - was missing a return value by @SchrodingersGat in #3199
- more user input sanitation by @matmair in #3204
- Sanitize data before displaying in markdown editor by @SchrodingersGat in #3205
- Small changes to password changing by @matmair in #3213
- Update django-allauth to 0.48.0 by @SchrodingersGat in #3217
- Fix API endpoint permission for the "AttachmentMixin" class by @SchrodingersGat in #3218
- Remove reliance on django-markdownx by @SchrodingersGat in #3231
- MFA remove improvement by @matmair in #3239
- Update requirements by @matmair in #3228
- Bump django version by @SchrodingersGat in #3299
- Remove custom 2FA code by @SchrodingersGat in #3300
- docker: prevent ports being exposed outside container context by @SchrodingersGat in #3351
- [FR] Sign artifacts with sigstore by @matmair in #3347
New Features
- SalesOrderShipment improvements by @SchrodingersGat in #3058
- Refactor 'DeleteManufacturerPart' form by @SchrodingersGat in #3067
- Enable 'tree view' for build order table by @SchrodingersGat in #3070
- Docker improvements by @SchrodingersGat in #3042
- Search improvements by @SchrodingersGat in #3103
- Remove unique-together requirement for BomItem model by @SchrodingersGat in #3104
- Adds 'multi delete' for attachment tables by @SchrodingersGat in #3111
- Queryset annotation refactor by @SchrodingersGat in #3117
- Move PartParameterTemplate model to the API by @SchrodingersGat in #3123
- Overdue order notification by @SchrodingersGat in #3114
- Adds API mixin for "bulk delete" by @SchrodingersGat in #3146
- Notification on new orders by @SchrodingersGat in #3145
- SupplierPart availability by @SchrodingersGat in #3148
- Clean up tasks by @matmair in #3175
- Sentry by @matmair in #3174
- Setting caching by @SchrodingersGat in #3178
- Migrate "Convert to Variant" form to the API by @SchrodingersGat in #3183
- Part page loading improvements by @SchrodingersGat in #3185
- Notify users when a build order is completed by @SchrodingersGat in #3255
- Adds notification when items are received against a purcahse order by @SchrodingersGat in #3259
- [BUG] Duplication of "base URL" setting by @matmair in #3263
- [FR] Add unit testing for emails by @matmair in #3281
- BOM Table Improvements by @SchrodingersGat in #3310
- Make "confirm" buttons a user-configurable option. by @matmair in #3313
- Use metadata in projects for plugin info by @matmair in #3282
- [FR] Automated releases by @matmair in #3316
- Annotate "in_stock" quantity to SupplierPart API by @SchrodingersGat in #3335
- Use env-variable for image tag on docker-compose deployments by @matmair in #3350
- Allow installation of local plugins via docker by @matmair in #3348
- Create SupplierPart directly from PurchaseOrderLineItem dialog by @SchrodingersGat in #3361
- Remove special characters restriction in category names by @matmair in #3370
- Add test command by @matmair in #3372
- Refactor template helpers for displaying uploaded images by @SchrodingersGat in #3377
- Pre-fill quantity on part ordering form by @SchrodingersGat in #3395
- Switch to pathlib by @matmair in #3392
- Allow SupplierPart list to be filtered by SKU by @SchrodingersGat in #3417
- Development improvements by @matmair in #3413
- Add no cov to settings by @matmair in #3439
- [FR] Don't log 404 errors by @matmair in #3436
- Add links to all notifications that do not have a link by @matmair in #3431
Bug Fixes
- Improve error management for order price calculation by @SchrodingersGat in #3075
- Fixes for version check script by @SchrodingersGat in #3091
- Docker: Require libffi-dev by @SchrodingersGat in #3092
- Docker Build Fixes by @SchrodingersGat in #3093
- Fix broken delete button by @SchrodingersGat in #3116
- Ignore auto-creation of shipments under certain conditions by @SchrodingersGat in #3118
- Bug fix for part category view by @SchrodingersGat in #3119
- Bugfix for stockitem serializers by @SchrodingersGat in #3125
- Fix has_complete_bom_pricing logic errors by @mattbnz in #3140
- Fix "polarity" of modal form submit button by @SchrodingersGat in #3142
- Adding bulk deletion endpoint for notifications by @SchrodingersGat in #3154
- Fix container priority for docker compose recipe by @SchrodingersGat in #3180
- Add error handling for case where user does not have git installed by @SchrodingersGat in #3179
- Clear cache for more unit tests by @SchrodingersGat in #3184
- Hide buttons for users without required permissions by @SchrodingersGat in #3219
- Prevent calculation of 'allocation_count' before model is saved by @SchrodingersGat in #3235
- Fix thumbnail command by @SchrodingersGat in #3243
- Prevent newline characters from breaking part page rendering by @SchrodingersGat in #3242
- CI unit test fixes by @SchrodingersGat in #3244
- Prevent write of SERVER_RESTART_REQUIRED setting when importing dataset by @SchrodingersGat in #3249
- Remove custom javascript from auth pages by @SchrodingersGat in #3250
- Fix translation issue with javascript by @SchrodingersGat in #3246
- Exchange backend fix by @SchrodingersGat in #3253
- Bug fix for field validation on child forms by @SchrodingersGat in #3258
- Virtual part fix by @SchrodingersGat in #3265
- Part API Filter Fix by @SchrodingersGat in #3271
- Pin django-stdimage to sub 6.0.0 by @SchrodingersGat in #3273
- Fixes for broken CI builds by @SchrodingersGat in #3276
- Fix table sorting issues by @SchrodingersGat in #3289
- Fix broken copy by @matmair in #3314
- Prevent creation of new settings objects when importing data by @SchrodingersGat in #3319
- Update unit tests for API plugin mixin class by @SchrodingersGat in #3328
- Int migration fix by @SchrodingersGat in #3323
- Bug fix for recent SupplierPart API annotation by @SchrodingersGat in #3336
- Fix API filtering for PurchaseOrderLineItem by @SchrodingersGat in #3356
- Docker compose plugins fix by @SchrodingersGat in #3357
- Update unit tests to match new docker paths by @SchrodingersGat in #3360
- Fix for docker signing by @SchrodingersGat in #3363
- Fix issue 3371 by @miggland in #3381
- Fix LabelPrintingMixin label_instance contains now specific data by @luwol03 in #3394
- Make sure pip is upgraded by @matmair in #3401
- Docker compose relative path by @SchrodingersGat in #3410
- [BUG] Extra url schemes not working. by @matmair in #3414
- Fixes bug introduced by moving to pathlib by @SchrodingersGat in #3419
- Fix "part" column sorting in BOM table by @SchrodingersGat in #3422
- Convert PosixPath to string for plugin loading by @SchrodingersGat in #3423
- Fix version-copy button according to #3373 by @miggland in #3425
- Fix for unit test by @SchrodingersGat in #3426
- [BUG] Fix gitpod.io deployment by @matmair in #3415
- Fix for docker-compose v1 by @SchrodingersGat in #3434
- Update version_check.py CI scrips by @SchrodingersGat in #3448
- Tree query improvements by @SchrodingersGat in #3443
- Check that notification target is not null by @SchrodingersGat in #3449
Devops / Setup Changes
- Add codeowners by @matmair in #3079
- CI updates by @matmair in #3087
- Add option to also reload plugin mechanisms by @matmair in #3081
- Change docker user by @SchrodingersGat in #3096
- Adds release.yml file for auto-generating release notes by @SchrodingersGat in #3099
- Version checker by @SchrodingersGat in #3102
- Fix formatting of 'build-args' parameter for docker build by @SchrodingersGat in #3105
- Docstring checks in QC checks by @matmair in #3089
- Add more checks to pre-commit by @matmair in #3132
- Simplify version_check script by @SchrodingersGat in #3152
- Export records update - allow overwriting existing files without user input by @miggland in #3156
- Adds redis support to production docker-compose by @SchrodingersGat in #3171
- Adds a simple unit test to ensure that bleach is running on API data by @SchrodingersGat in #3222
- Docker requirements update by @SchrodingersGat in #3266
- Adds admin-configurability for sentry sample rate by @SchrodingersGat in #3277
- Docker: Use existing task definition by @SchrodingersGat in #3279
- Requirements fix by @SchrodingersGat in #3280
- Update package requirements for docker by @SchrodingersGat in #3285
- Use modern configuration for django-markdownify by @SchrodingersGat in #3286
- Use python executable we were invoked with by @sur5r in #3303
- Revert "Use python executable we were invoked with" by @SchrodingersGat in #3309
- Fix POST testing by @matmair in #3346
- Fix pre-commit complaints by @matmair in #3349
- Use different twitter action by @SchrodingersGat in #3387
- Allow plugin loading from external directory by @SchrodingersGat in #3364
- Remove references to "plugins" volume in production docker-compose file by @SchrodingersGat in #3406
- docker: disable redis image by default by @SchrodingersGat in #3416
- Simplification of development docker-compose file by @SchrodingersGat in #3429
- Update demo data hook to copy media files by @SchrodingersGat in #3441
Other Changes
- Check user permissions before performing search by @SchrodingersGat in #3083
- Adds 'quarantine' code for StockItemStatus by @SchrodingersGat in #3084
- Update README.md by @SchrodingersGat in #3094
- Adds ability to search build API by part parameters by @SchrodingersGat in #3110
- Bump pillow from 9.1.0 to 9.1.1 by @dependabot in #3113
- Return from customer by @SchrodingersGat in #3120
- Remove outdated forms / views for stock item tracking by @SchrodingersGat in #3122
- Fix behaviour of attachment table for purchase orders by @SchrodingersGat in #3127
- Convert category parameter forms to use the API by @SchrodingersGat in #3130
- Delete part via API by @SchrodingersGat in #3135
- Set part category by @SchrodingersGat in #3134
- Add new global setting to control auto-upload of test reports by @SchrodingersGat in #3137
- Adds callback for creation of an error log by @SchrodingersGat in #3136
- Separate unit cost and purchase price in BOM by @mattbnz in #3141
- Refactor stock item test result form for API by @SchrodingersGat in #3143
- Ensure an error gets logged when a delivery method fails by @SchrodingersGat in #3144
- Allow build orders to be deleted via the API by @SchrodingersGat in #3155
- Converting more forms to the API by @SchrodingersGat in #3181
- Add major release notes section for security fixes by @SchrodingersGat in #3191
- Spelling fix: dates -> days by @SchrodingersGat in #3193
- Label dpi config by @SchrodingersGat in #3208
- fix docs link for "email settings not configured" warning by @ottojo in #3209
- Auth forms fix by @SchrodingersGat in #3214
- Only enable browsable API if in debug mode by @SchrodingersGat in #3221
- Small UI improvements to the settings interface by @SchrodingersGat in #3223
- Sales order tables by @SchrodingersGat in #3225
- Small visual tweaks to various auth views by @SchrodingersGat in #3238
- Add map files for qr-scanner library by @SchrodingersGat in #3254
- Adds a template for handling 403 errors due to CSRF issues by @SchrodingersGat in #3260
- Add confirmation for "over-allocated" stock when completing BuildOrder by @SchrodingersGat in #3272
- Allows sorting of attachments by 'upload date' by @SchrodingersGat in #3275
- Allow supplier parts to be search by part.keywords field by @SchrodingersGat in #3278
- Optionally show/hide the "accept_overallocated" dialog option by @SchrodingersGat in #3290
- Bug fix for sales order allocation table by @SchrodingersGat in #3295
- Allow searching of BOM List API endpoint by @SchrodingersGat in #3296
- Allow BOM table to be filtered by "stock available" parameter by @SchrodingersGat in #3301
- Allow negative currency values for "extra" line items by @SchrodingersGat in #3311
- Add 'refresh' button for part parameter table by @SchrodingersGat in #3329
- Support CNY by default by @SchrodingersGat in #3334
- Don't confuse type checker by fetching after the if by @nwns in #3344
- Remove code left over from previous commit by @SchrodingersGat in #3385
- Correct the docstring for PurchaseOrderIssue by @miggland in #3399
- Spelling fix by @SchrodingersGat in #3404
- Switch to Enum by @matmair in #3437
- 0.8.0 release version by @SchrodingersGat in #3432
New Contributors
- @mattbnz made their first contribution in #3140
- @miggland made their first contribution in #3156
- @ottojo made their first contribution in #3209
- @luwol03 made their first contribution in #3394
Full Changelog: v0.7.0...0.8.0