* 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
* 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
* 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
* Hide expand icon for items without children
* Add searching to CategoryTree API
* Add "level" filter
* Automatically include parent tree when searching
* Include tree_id field
* Add search input to NavigationTree
* Add more API filters
* Load child nodes iteratively
* Fix dynamic loading of nodes
* Highlight selected item
* Include pathstring
* Fix insertion order
* Auto-expand to the selected ID
* Add "no results" message
* Refactor into generic components
* Expand to multi level
* Use async node loading functionality
* Add hovercard
* Implement same functionality for StockLocationTree API endpoint
* Adjust spacing
* Add connecting lines
* Add playwright test
* Bump API version
* Add CHANGELOG entry
* Update docs
* Update screenshot
* Adjust panel layout
* edit list on click
* Optionally fetch selection list items
* Display in DetailDrawer
* Fix component locations
* Refactor entry table
* Add new entry
* Disable if locked
* Only validate choices if provided via API
* Mark "choices" as read-only
* Prevent delete of locked items
* Add more API unit tests
* Bump API version
* Adjust unit tests
* Default include choices
* Updated playwright test
* Improve test robustness
* UX: Disable standard allocation for trackable parts and add tooltip (#11811)
* Test: Update Playwright tests for disabled trackable allocation
* Fix: Align trackable allocation logic and tests based on review
* Test: Fix incorrect assumption of trackable Red Widget in pui_build.spec.ts
---------
Co-authored-by: Matthias Mair <code@mjmair.com>
* Expose properties for column based filtering
* Adjust renderers
* Hide filter if name does not match
* Allow multiple filters on same column
* Better formatting
* Add filtering support for multiple tables
* Revert yarn.lock changes
* Fix date input props
* Updated column
* Add filter to PartTable
* Add playwright tests for new column filters
* Update CHANGELOG
* Updated docs
* Reduce padding
* Update more table filters
* More filter columns
* Adjust playwright test
* Simplify playwright test
* Robustify playwright tests
* Add some delay
* Add some buffer time
* Vertical scrolling calendar view
* Add new setting to control calendar horizon
* Keep refetching data as user scrolss
* Adjust view based on configured setting
* Reduce padding
* Simplify calendar layout
* Docs tweak
* Split out display settings
* Adjust playwright test
* Reduce reliance on transient dialogs
* Add Tag API endpoints
* Enable filtering by model type
* Remove old tags filters against Part endpoint
* Add generic tags filter for filtering against tagged items
* Add API unit tests for the tags API endpoints
* Create generic mixin class for adding tags support
* Update existing tagged models
* Add tags to more model types
* Enable new tags API filtering for multiple models
* Add support for tag filtering in part table
* Update transfer table filters
* Add tags filter to more places
* Allow multiple values to be selected as filters
* Add a new 'tags' type form field
* Display tags on part page
* tags support for orders
* Add support for SalesOrderShipment
* build order
* Company support
* SupplierPart and ManufacturerPart
* support StockItem
* Enable tag filtering for attachments
* Make tagslist readonly
* docs
* Mark props as read only
* Update API version
* Update CHANGELOG
* force tags to be case insensitive
* Add playwright test for build order tags
* more playwright testing
* Fix docs link
* Fix for RenderInstance
- Do not call useNavigate within RenderInstance
- This breaks any plugins which try to use RenderInstance
- Pass navigate func through to <RenderInstance />
* Add playwright test for hover in forms
* Add translated plugin test
* Improve playwright tests
* Further unit test fixes
* Update docstring
* Add basic auto-allocate functionality
- backend code
- background task
- API endpoint
* Add new endpoint enum
* add frontend components
* Tweak auto-allocate output
* Allow specifying of individual line items
* Tweak error boundary
* Enable bulk-delete of allocated items against sales order
* Refactor stock sorting options
* Allow user to select how to handle serialized stock
* Backport new functionality to BuildOrder allocation
* Refactor sorting options to use enumerated values
* Implement functional unit tests for new feature
* Update API and CHANGELOG
* Additional unit test
* Add playwright testing
* Documentation
* Update docs for build auto-allocate
* Fix dependencies
* Adjust build line filtering
* Fix serializer
* Offload build output functions:
- cancel output
- scrap output
- complete output
Perform these in the background worker, and monitor for progress on the frontend.
* Refactor "build cancel"
- Offload expensive ops to background worker
* Offload build complete task
* Remove @atomic decorator from functions
- Allows operations to be performed "incrementally"
- If one task times out, the next task will get the rest
* Bug fix
* Bump API version
* Fix isInTestMode check
* Handle case where task returns immediately
* Fix docstring
* fix test_api
* Tweak order of operations
* additional unit testing for further coverage
* Adjust unit tests
* Offload order completion tasks
* Remove bad code
* Updated playwright test
* Robustify playwright tests
* Bump number of allowed queries
* Revert "Remove bad code"
This reverts commit 3a3ac3bdc7.
* Revert "Offload order completion tasks"
This reverts commit 6066dabe43.
* initial skel commit for transfer orders
* initial transfer order backend model
* add some serializers, rename PLACED to ISSUED for TransferOrders
* adding from admin console works
* simple table list almost working, but we need to add order line items....
* add other cols to table
* add Transfer Order from table view
* moving towards a detail view
* wip: adding detail view
* add take from and destination serializer details
* add other detail grid items
* edit/duplicate transfer order
* more action buttons
* first crack at adding line items
* add to line item
* add filters
* starting work on row actions
* more action buttons for line items
* fix copy lines in duplicate
* basic allocation works
* allocations table actions
* allocate serials
* allocated serial row expansion
* add transferred qty to serializers
* move items on complete, show in tracking
* change panel to transferred stock upon complete
* allow incomplete line items
* disable edit allocations when completed
* add ref pattern and to settings
* add admin to line item inline
* add calendar and parametric view
* basic transfer order report
* add transfer order ruleset
* starting allocation buisness logic throughout for TOs
* disable accept incomplete logic, which was incorrect, until I fix
* fix incomplete allocation option
* add transferred col to default report
* add transfer order to calendar ics view
* chain condition for readability
* add transfer order allocations table to stockitem view
* don't account TO allocations in availability
* add transfer orders table for a part
* 'consume' option by doing take_stock
* squash migrations
* starting to test transfer order
* more transfer order tests
* add transfer order consume test
* wip, more tests
* more transfer order tests
* had to refresh_from_db
* switch "to" to "transfer-order" in url paths
* only select non-virtual parts from transfer order
* add transfer order docs
* deconflict migrations
* fix frontend build error
* fix validation on transfer order reference pattern
* add oath2 scope for transfer order
* fix state test to include transfer order state
* add barcode_model_type_code for transfer order
* bump api version
* check view role for transfer order, remove debug/commented out lines
* add serialized allocation test
* Fix migrations
* Frontend fixes
* Implement required 'company' attribute
* transfer order report context
* attempt to fix tests
* delete transfer order allocations on cancel
* add a few playwright tests, more incoming
* more playwright
* add source and destination locations to table
* deconflict migrations
* Fix build issue
* attempt to fix flaky transfer order test
* duplicate transfer order before running tests
* Adjust playwright tests
* Fix migration dependency order
---------
Co-authored-by: Oliver <oliver.henry.walters@gmail.com>
Co-authored-by: Matthias Mair <code@mjmair.com>
* realign user API endpoints to make it clearer which one are only applicable to the current user
* fix name
* bump api
* fix test
* fix reference
* fix test exception
* update ref
* reduce breakage
* re-add legacy urls till next `breaking`
* Add new "raw_amount" field to BomItem model
* Batch process data migration
* Update migration
* Calculate 'quantity' from 'raw_amount' field
* Improve decimal formatting in migration
* Allow raw_amount in serializer
* Adjust frontend form
* API validation and unit tests
* Additional playwright tests
* Update API version and CHANGELOG
* Updated docs
* Fix docstring
* Better handling of empty values
* Tweak unit tests
* Tweak unit test
* Fix unit test
* Adjust form field text
* Adjust migration file
* Tweak playwright tests
* Fix unit test
* Adjust serializers / import-export / playwright
* Fix migration
* Fix validation
* Loosen comparison
---------
Co-authored-by: Matthias Mair <code@mjmair.com>
* Fix: preserve existing widget sizes when adding a dashboard widget
When adding a new widget from the drawer, addWidget called
updateLayoutForWidget with overrideSize=true on every existing layout
key. That flag forces w/h on every layout entry to the widget's
minWidth/minHeight, which silently reset all user-customised widget
sizes back to their minimums.
Pass overrideSize=false instead. Existing widgets retain their layout
entries (and therefore their user-set sizes); the newly added widget
has no entry yet, so react-grid-layout auto-places it at default size.
Adds a Playwright regression test that resizes a widget, adds a second
widget, and asserts the first widget's height is preserved.
* Make widget-resize regression test reliable
Replace the previous drag-based test with a deterministic check that
manipulates the persisted layout directly. The resize handles only
exist when isResizable={editing} is true, so the previous test's
attempt to grab .react-resizable-handle returned null in CI.
The new test inflates the first widget's layout entry in
localStorage, reloads to rehydrate zustand, then adds a second widget
via the menu and asserts the first widget retained its enlarged
dimensions. This directly exercises the addWidget code path without
needing edit mode or mouse simulation.
* Apply biome formatting
* Patch backend profile to inflate widget; fix unused non-null assertion
Updating localStorage was wiped out by observeProfile() on reload, so
inflate the widget on the backend user profile instead.
---------
Co-authored-by: tigger2000ttfn <tigger2000ttfn@users.noreply.github.com>
* Fix ApiFormFIeldType docstring
* Case fix
* Add sub-forms for company creation
* Tweak component def
* Add new company for manufacturer-part and supplier-part
* Create new parameter template directly from parameter view
* Add tooltip
* Add playwright tests
* Consolidate translation
* Revert to left side
* Fix title case
---------
Co-authored-by: Matthias Mair <code@mjmair.com>
* Add search capability to selection list entry endpoint
* Use API lookup for selection entries
* Add renderer func
* Allow API filtering
* Fetch selectionentry data related to the selected data item
* remove now unneeded entry
* add missing modelinfo
* fix ref
* add api bump
* Provide optional single fetch function to API forms
- Useful if we need to perform a custom API call for initial data
* django-admin support for SelectionList
* Docstring improvements
* Apply 'active' filter
* Tweak api version entry
* Playwright tests
* Tweak docs wording
* Fix incorrect docstring
* Adjust playwright tests
---------
Co-authored-by: Matthias Mair <code@mjmair.com>
* Add 'parameter' support for SalesOrderShipment model
* Add "parameters" tab for shipment view
* Playwright test
* Update CHANGELOG
* Update API version
* Install gettext
* Try yaml format
* Revert "Try yaml format"
This reverts commit 394a5551c8.
---------
Co-authored-by: Matthias Mair <code@mjmair.com>
* Handle receive of virtual parts
- Update line item quantity
- Do not add any stock
* Add unit test
* Additional unit test
* UI form improvements
* Add playwright test
* Updated playwright tests
* Fix complete_sales_order_shipment task
- Perform allocation *before* marking shipment as complete
- Ensure task is not marked as complete before it is actually done
* Add unit test
* Provide task status tracking for shipment completion
* Add integration testing
* Address unit test issues
* Bump API version
* Enhance playwright test
* Add new build task
* Refactor background task for consuming build stock
- Run as a single task
- Improve query efficiency
* Refactor consuming stock against build via API
- Return task_id for monitoring
- Keep frontend updated
* Task tracking for auto-allocation
* Add e2e integration tests:
- Auto-allocate stock
- Consume stock
* Bump API version
* Playwright test fixes
* Adjust unit tests
* Robustify unit test
* Widen test scope
* Adjust playwright test
* Loosen test requirements again
* idk, another change :|
* Robustify test
* Enhance docstring
* Return the ID of an offloaded task
* Add API endpoint for background task detail
* Add UI hook for monitoring background task progress
* Handle queued tasks (not yet started)
* Improve UX
* Update frontend lib version
* Bump API version
* Fix notification
* Simplify UI interface
* Implement internal hook
* Fix API path sequence
* Add unit tests for task detail endpoint
* Refactor code into reusable model
* Explicit operation_id for API endpoints
* Further refactoring
* Use 200 response code
- axios does not like 202, simplify it
* Return task response for validation of part BOM
* Fix schema
* Cleanup
* Run background worker during playwright tests
- For full e2e integration testing
* Improve hooks and unit testing
* Rename custom hooks to meet react naming requirements