* Add "on order" filter for Part model
- Added API filter
- Added table filter
- Added table column
* Bump API version
* Add table sorting
* Adjust API text
* Create benchmark for completing a build and consuming all items
* Refactor build consume task
* Add benchmarking
* Unroll allocate-stock serializer
* Complete build only after allocations are consumed
* re-export batch_events
* Add BulkPrefetchSerializerMixin
* Reduce queries even further
* Refactoring
* Unroll code and use bulk operations
* Refactoring for auto-allocation
* Add more test coverage for auto-allocation
* Fix model_reference_fields
* adjust unit test
* Apply concurrency protection
* Additional unit tests
* Remove per-line validation
* Fix unit test
* Adjust unit test
* Use bulk_create_and_fetch
* Cleanup
* Reimplement wrapper func for backwards compatibility
* Fix unit test
* Increase max query time
* Fix serializer
* Enforce pk ordering
* FIx for mysql
* Use API for unit test
* Loop unrolling is super effective
* Additional unit testing
* Fix for bulk_create - use bulk_create_and_fetch
* Fix unit tests
* Fix unit tests
* Adjust unit test
* Revert return type on helper func
* Evaluate returned QuerySet
* Adjust unit tests
* Adjust complete_allocations
* Fix for bulk_create in unit test
* Reimplement complete_allocation for compatibility
---------
Co-authored-by: Matthias Mair <code@mjmair.com>
* Adds decorator to mark an attribute for report context discovery
* Update context variables in docs
* Include fields captured against each model type
* Expose more properties
* Image URL tags
* Add more attributes
* Rearrange docs
* Simplify docs
* Enforce type hinting for reportable properties
* Expose more properties for the Order model
* Auto-discover related / linked models
* Remove extra text
* Collapsible blocks
* Reduce boilerplate
* Remove cruft
* Enhance documentation for filename generation
* Cleanup
* Secure row locks when trimming allocated stock
* Secure row locks when completing a SalesOrder
* Regression testing
* Further improvements and regression testing
* Ignore locking test for sqlite
* Add "discount" support to order line items
* Fix total_price annotation for ExtraLineItem
* Add regression tests
* Add frontend support
* Updated documentation
* Added docs
* Bump API version and CHANGELOG
* Remove 'total_price' annotation
- Can be achieved using in-memory python methods
* Apply fix for migration testing
* Revert "Apply fix for migration testing"
This reverts commit 8d9f2dce8c.
* Different approach
* Adjust playwright threshold
* Add initial benchmark test
* Enable event batching for BulkdCreate API mixin
* Fix duplicate save event for Parameter
* Apply event batching for bulk_update
* Similar testing for bulk_delete
* Add bulk-delete mixin for order line items
* Add unit tests
* Enable frontend support
* Add CHANGELOG entry
* Add locking control for TransferOrder
* Fix playwright tests
* Fix playwright tests
* Use API for unit test
* Refactor SalesOrderSerialAllocationSerializer
- Move business logic into the SalesOrder model
* Add unit testing for serial allocation
* Remove MPTT from StockItem model
* cleanup stock fixture file
* Remove tree rebuild code for StockItem
* Adjust API
* Update CHANGELOG and API version
* remove tree references
* Additional checks
* Remove unused tests
* Add data migration test
* fix fk fields
* Cleanup
* Tweak unit test
* Revert bulk-create in unit test
* Don't rebuild StockItem models
* Add bulk_create_and_fetch helper model
- Overcome limitations of mysql
* Add unit test for new bulk-create helper
* Apply new helper to codebase
* Adjust unit test
* bug fix
* Adjust query limits
* Remove assert
* Add <GlobalPreviewDrawer> component
* Allow plugins to interact
* provide either pk or instance data
* open preview drawer from calendar views
* Launch preview drawer directly from tables
* Add preview types
* Fix types
* CLear data on close
* Fix transition
* Allow caller to pass preview component
* AttributeGrid
* Use a table component
* Display info items
* Navigate to detail page from drawer
* Updates
* Refactor to use part detail view
* Display parameters
* Fix image caching
* Apply same to StockItem
* Remove old component
* Refactor details grid component
* Preview panel for PurchaseOrder model
* Implement for SalesOrder
* Support ReturnOrder
* SupplierPart and ManufacturerPart
* Support preview in parameteric tables
* support Company and BuildOrder
* Fix numbervalue
* BuildOrder and SalesOrderShipment
* location and category
* add user setting
* Fix typing
* Handle link clicks within preview drawer
* fixes
* Implement onClose callback
* Handle row click when panel preview is disabled
* Support custom detail links
* update playwright tests
* UI tweaks
* Add CHANGELOG entry
* docs
* define default API params per model type
* Split out more docs pages
* Simplify state ref
* Refactoring
* Simplify PreviewDrawer component
* observe user setting in calendar view
* Enable PreviewDrawer from RowViewAction
* Push render functions onto ModelInformation dict
* Fix lib compilation
* Refactor internal uses of RowViewAction
* typescript fixes
* Simplify PreviewDrawer component structure
* remove TODO placeholders
* Add helper to bulk offload task
* bulk offload events
* Add unit test for bulk_offload_task
* Add context wrapper for bulk event creation inside looped funcs
* Add batching for stock tracking events
* Context wrapper for capturing offloaded tasks
* apply batching to other stock adjustment endpoints
* Add benchmarking tests for other API endpoints
* Benchmark test for serialize stock
* Reduce commet verbosity
* Apply benchmark to PO receive
* Refactor benchmarking
* PrefetchedPrimaryKeyRelatedField
- Provides O(1) lookup for serializer validation
- Significant improvements for large datasets
* Adjust unit test code
* Check for correct order of tracking operations
* Refactor API form fields
- Prevent reconstruction of all fields when single value changes
- Memoize components more intelligently
- Fix enter key callback ref
* memoize other field types too
* More memo
* Prevent duplicate API calls for related model field
* Add aria-label for IconField
* add playwright tests for form field coverage
* Adjust default behavior of "migrate" command
- Does not create new migration files automatically
* Add dummy field - ensure detected by CI
* Revert "Add dummy field - ensure detected by CI"
This reverts commit e7a101fe87.
* Fix typo
* Adjust contributing docs
* Add CHANGELOG entry
* Fix currency choices for PartPricing model
- Remove dynamic choices from model definition
- Move validation step to the serializer
- Add validator to ensure only valid currencies can be used
* Add regression test
* Bump API version
* Add "consumable" field to the Part model
* Add frontend integration
* Add badge
* Add docs
* Updated docs
* Add API filtering for new field
* Adjust API filters
* Update backend logic
* Adjust frontend
* Additional unit tests
* Update API version
* update test
* Add consumable icon
---------
Co-authored-by: Matthias Mair <code@mjmair.com>
* Implement generic serializer for custom model duplication
* Apply pattern to BuildOrder
* Add more generic options
* Bump API version
* Adjust default option
* Refactor existing implementations
* Dynamic class typing
* Add duplicate field to more model types
- Company
- ManufacturerPart
- SupplierPart
- SalesOrderShipment
* Implement parameter duplication for more models:
- Company
- ManufacturerPart
- SupplierPart
* Simplify code
* Refactor
* Display non-field errors in table field
* Refactor validation for build output completion
- Run validation BEFORE trying to complete (serializer validation)
- Refactor and simplify common code
* Adjust unit tests
* Fix typing
* Remove debug
* Add TreeField component
* Add chevrons in dropdown menu
* Custom node rendering
* Add childIdentifier
* Ensure full value gets displayed
* Fix for search results
* Refactor old renderers
* Override field types
* use definition filters
* Better location validation messages
* Tweaks
* Fix unit test
* Include icon
* Fix playwright test
* Fix call to onValueChange
* Updated playwright tests
* Use pathstring in selectedLabel (if available)
* Mark structural nodes
* Retain selected value when dropdown open
* Add better placeholder values
* Simplify field selection
* Use callback funcs
* Don't use idx to identify rows
* Add debug function for finding why a component re-rendered
* Do not pass 'control' through to each row
* Prevent unnecessary re-rendering of table rows
* Adjust order of operations for hooks
* Keep props hidden
* Use lightweight NumberInput
* Use NumberInput elsewhere
* Add comment
* use rowId instead of idx
* Generic row memos
* Compare errors too
* Fix for BomItemSubstituteRow
* Adjust more forms
* memoize quantity
* Memoize build lines
* Fix re-rendering issues for build allocation
* Fix for useConsumeBuildLinesForm
* Fix for transfer order table
* Fix useReceiveLineItems
* Remove memoized pattern
* Fix row keys
* Cleanup
* Create useStockItems hook for memoizing items
* Refactoring
* More refactoring
* Remove obj reference
- preventing shallow comparison from working
* Add error message to useWhyDidYouUpdate
* Cleanup
* Cleanup dead code
* Adjust modal width
* Change attr name
* Remove autoFillFilters prop
* Adjustments for serialized stock
* Fix typing
* Bump frontend version
* Adjustments for playwright testing
* Fix ref issue
* Remove debug entry
* Update CHANGELOG.md
* Reintroduce index to table header
* Refactor common component
* Add 'active' field to the ProjectCode model
- Allows retiring of old project codes without deleting
* Update UI table
* Refactor ProjectCodeField
* Add unit test
* Bump API version and CHANGELOG