* fix remove mfa task
* add test for command
* clean up after schema test
* add assert to esure authenticators are really present/removed
* simplify handler
* improve error message
* make more readable
* Add wrapper function for machine registry
* Decorate entrypoint functions
* Docstrings
* Fix for boolean setting
* Add playwright tests
* Use proper entrypoints
* Ensure settings are fetched correctly
* Prevent recursion of machine registry decorator
* Fix machine status display
* Enhanced warning msg
* Add simple machine sample printer
* Adds playwright tests for machine UI
* re-throw exception
* Define 'machine' plugin mixin class
* Adjust machine discovery
* Use plugin mixins for registering machine types and drivers
* Adjust unit test
* Remove plugin static files when deactivating
* Force machine reload when plugin registry changes
* Add plugins specific to testing framework
* Add test for plugin loading sequence
* Add session caching
- Significantly reduce DB hits
* Enhanced unit testing and test plugins
* Refactor unit tests
* Further unit test fixes
* Adjust instance rendering
* Display table of available drivers
* Cleanup
* ADjust unit test
* Tweak unit test
* Add docs on new mixin type
* Tweak machine overview docs
* Tweak playwright tests
* Additional unit test
* Add unit test for calling machine func
* Enhanced playwright tests
* Account for database not being ready
* fix remove mfa task
* add test for command
* clean up after schema test
* add assert to esure authenticators are really present/removed
* simplify handler
* Add field to "update" existing records
* Ensure the ID is first
* Prevent editing of "ID" field
* Extract db instance
* Bump API version
* Prevent edit of "id" field
* Refactoring
* Enhanced playwright tests for data importing
* Update docs
* Update src/backend/InvenTree/importer/models.py
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Update src/frontend/src/forms/ImporterForms.tsx
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Fix silly AI mistake
* Fix for table pagination
- Ensure page does not exceed available records
* Bug fix for playwright test
* Add end-to-end API testing
* Fix unit tests
* Adjust table page logic
* Ensure sensible page size
* Simplify playwright test
* Simplify test again
* Tweak unit test
- Importing has invalidated the BOM?
* Adjust playwright tests
* Further playwright fixes
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Adds "consumed" field to BuildLine model
* Expose new field to serializer
* Add "consumed" column to BuildLineTable
* Boolean column tweaks
* Increase consumed count when completing allocation
* Add comment
* Update migration
* Add serializer for consuming build items
* Improve build-line sub-table
* Refactor BuildItem.complete_allocation method
- Allow optional quantity to be specified
- Adjust the allocated quantity when consuming
* Perform consumption
* Add "BuildConsume" API endpoint
* Implement frontend form
* Fixes for serializer
* Enhance front-end form
* Fix rendering of BuildLineTable
* Further improve rendering
* Bump API version
* Update API description
* Add option to consume by specifying a list of BuildLine objects
* Add form to consume stock via BuildLine reference
* Fix api_version
* Fix backup colors
* Fix typo
* Fix migrations
* Fix build forms
* Forms fixes
* Fix formatting
* Fixes for BuildLineTable
* Account for consumed stock in requirements calculation
* Reduce API requirements for BuildLineTable
* Docs updates
* Updated playwright testing
* Update src/frontend/src/forms/BuildForms.tsx
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Update src/frontend/src/tables/build/BuildLineTable.tsx
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Add unit test for filters
* Add functional tests
* Tweak query count
* Increase max query time for testing
* adjust unit test again
* Prevent consumption of "tracked" items
* Adjust playwright tests
* Fix table
* Fix rendering
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Enhance CompanySerializer to use Prefetch for for better performance
* Refactor CompanySerializer to improve address handling and add schema fields
* implement changes suggested by joe
Co-authored-by: Joe Rogers <1337joe@users.noreply.github.com>
* Update src/backend/InvenTree/company/serializers.py
Co-authored-by: Joe Rogers <1337joe@users.noreply.github.com>
* Update src/backend/InvenTree/company/serializers.py
Co-authored-by: Joe Rogers <1337joe@users.noreply.github.com>
---------
Co-authored-by: Matthias Mair <code@mjmair.com>
Co-authored-by: Joe Rogers <1337joe@users.noreply.github.com>
* Enhance 'count_queries' helper
* Add threshold
* Update typing
* Better rendering
* Improve StockItem
- Make model operations more efficient
* improve with_mixin
- Cache config map against the session cache
* Refactor receive_line_item
- Pass multiple line items in simultaneously
- DB query optimization
- Use bulk_create and bulk_update operations
* Remove extraneous save call
* Fix for unit tests
* Fix return type
* Fix serializer return type
* Refactor part pricing updates
* UI tweaks
* Use bulk_create
* Refactor API and endpoints
* Bump API version
* Fix unit tests
* Fix playwright tests
* Remove debug msg
* Fix for table filter hover
* Adjust unit test
* Run full docker build if full_run specified
* Debugging
* Update migration test
* Fix migration test
* Fix typo
* Debug logging
* Add log info
* Disable the test in docker
* Remove debug prints
* Revert docker ci test
* Fix annotations/pagination on StockApi itemSerialize and BuildApi outputCreate
* Add (to schema) field to specify serial numbers on create for stock item
* Return list on StockItem creation
* Update api version
* Update test to expect list return when creating stock items
* Add note about breaking changes to api version
* Add handling for stockitem list return on creation
* Update api version
---------
Co-authored-by: Oliver <oliver.henry.walters@gmail.com>
Co-authored-by: Matthias Mair <code@mjmair.com>
* add warning that the log is useless by default
* Add setting to enhance email log again
* add missing test for #10109
* add test for delete protections
* add error code
* Update email.md
* Update email.md
* Bulk creation of test results
- Add BulkCreateMixin class
- Add frontend support
* Refactor test result serializer
- Allow lookup by template name
* Updated unit test
* Add unit tests
* Add row actions
* Docs
* Fix failing tests
* Bump API version
* Fix playwright tests
* Enhance stock item rendering
- Show location in forms
- Allow differentiation between items
* Unit test fixes
- Account for longer query time in docker mode
* Cast to string
* Improved rendering
* Add "StockReturn" API endpoint
- Provide multiple items
- Provide quantity for each item
* Add frontend form
* update frontend forms
* Refactor frontend
* Allow splitting quantity
* Refactoring backend endpoints
* cleanup
* Update unit test
* unit tests
* Bump API version
* Fix unit test
* Add tests for returning build items to stock
* Playwright tests
* Enhanced unit tests
* Add docs
* Fix value type for settings API endpoints
- Cast to 'native' value
* Check for numerical type casting
* Additional unit tests
* Tweak unit tests
* Fix 'to_native_value' funcs
* Refactor native value casting
---------
Co-authored-by: Matthias Mair <code@mjmair.com>
* chore(backend): increase coverage
* add a full api based install / uninstall test
* fix asserted code
* delete unreachable code
* clean up unused code
* add more notification tests
* fix test
* order currencies
* Remove STOCKTAKE ruleset
* Adjust wording of settings
* Cleanup
* Improve text for global settings
* Add BulkDeleteMixin to "stocktake" endpoint
* Frontend updates
* Migrations
- Remove field 'last_stocktake' from Part model
- Remove fields 'user' and 'note' from PartStocktake model
- Remove model PartStocktakeReport
* Frontend cleanup
* Rename global setting
* Rewrite stocktake functionality
* Cleanup
* Adds custom exporter for part stocktake data
* Frontend cleanup
* Bump API version
* Tweaks
* Frontend updates
* Fix unit tests
* Fix helper func
* Add docs
* Fix broken link
* Docs updates
* Adjust playwright tests
* Add unit testing for plugin
* Add unit testing for stock history creation
* Fix unit test
* Adds error code for transition handler issues #10088
* Adds error codes for mandatory plugins #10094
* add more links
* Add error code for global overrides
* disable coverage for a case that can not happen
* Improve formatting for <ConfigValueList>
- Only used for email settings currently
* API updates:
- Allow delete operations of email record
- Allow bulk delete operations of email record
* Table updates:
- Improved table rendering
- Allow delete ops
* Display timestamp in email table
* Add setting to control email cleanup interval
* Add scheduled task to delete old emails
* Bump API version
* feat(cache): Add support for cache password in Redis configuration
* Add cache password configuration option to documentation
* Fix the complaints from CI checks
* Format <BuildLineTable />
* More formatting
* Add helper function for running playwright tests
* Fix playwright test
* Further formatting updates
* Adjust order tables
* Add setting for "mandatory" plugins
* Add 'is_active' method to PluginConfig model
* Check against plugin config object by priority
* Prevent plugin from reporting its own 'active' status
* Refactor get_plugin_class for LabelPrint endpoint
* Fix typo
* Mark internal plugin methods as "final"
- Prevent plugins from overriding them
* Enhanced checks for bad actor plugins
* Enhanced unit test for plugin install via API
* Playwright tests for plugin errors
* Test that builtin mandatory plugins are always activated
* Force mandatory plugins to be marked as active on load
* API unit tests
* Unit testing for plugin filtering
* Updated playwright tests
- Force one extra plugin to be mandatory in configuration
* Adjust unit tests
* Updated docs
* Tweak unit test
* Another unit test fix
* Fix with_mixin
- Checking active status first is expensive...
* Make with_mixin call much more efficient
- Pre-load the PluginConfig objects
- Additional unit tests
- Ensure fixed query count
* Fix the 'is_package' method for PluginConfig
* Tweak unit test
* Make api_info endpoint more efficient
- with_mixin is now very quick
* Run just single test
* Disable CI test
* Revert changes to CI pipeline
* Fix typo
* Debug for test
* Style fix
* Additional checks
* Ensure reload
* Ensure plugin registry is ready before running unit tests
* Fix typo
* Add debug statements
* Additional debug output
* Debug logging for MySQL
* Ensure config objects are created?
* Ensure plugin registry is reloaded before running tests
* Remove intentional failure
* Reset debug level
* Fix CI pipeline
* Fix
* Fix test mixins
* Fix test class
* Further updates
* Adjust info view
* Test refactoring
* Fix recursion issue in machine registry
* Force cache behavior
* Reduce API query limits in testing
* Handle potential error case in with_mixin
* remove custom query time code
* Prevent override of is_mandatory()
* Prevent unnecessary reloads
* Tweak unit tests
* Tweak mandatory active save
* Tweak unit test
* Enhanced unit testing
* Exclude lines from coverage
* (final)? cleanup
* Prevent recursive reloads
---------
Co-authored-by: Matthias Mair <code@mjmair.com>
* Enhanced permission checks for API
- Ensure user is authenticated
- Raise PermissionDenied
* Add unit test for unauthenticated user
* Exclude lines from coverage
* Refactor notification concept
- Notifications handled by plugins
* Cleanup
* Only send email if template provided in context
* Logic cleanup
* Fix log_error call
* Refactor error logging
- Ensure plugin slug is correctly attached
- Consistent format
- Logic fixes
* More robust plugin lookup
* Refactor calls to tringger_notification
* Tweak for build stock notification
* Low stock notification refactor
- Actually *use* the notification system
- Fix for email template
* Check stock only when build is issued
* Updated documentation
* Add PluginUserSetting class
- Allows plugins to define per-user settings
* Add API endpoints for PluginUserSetting model
* Placeholder for user-plugin-settings page
* Refactoring frontend code
* Placeholder panel
* Adds user interface for changing user-specific plugin settings
* Tweaks
* Remove old model
* Update documentation
* Playwright tests
* Update API version
* Fix unit test
* Fix removed arg
* Fixes for email notifications
- Track status of sending notifications
- Add helper "activate" method for plugin class
- Update unit tests
* Fix barcode tests
* More unit test fixes
* Test fixes
* Fix for settings models with extra fields
* Enhance unit test
* Remove old test file
* Check for null target_fnc
* Improve DB query efficiency
- Provide a flat list of active keys to plugin.is_active
- Prevents DB fetching (in certain circumstances)
- Add registry.active_plugins() method
* Bump query limit up for test
- In practice, this API endpoint is ~10 queries
* Handle potential errors
* Increase query limit for API test
* Increase query limit for some tests
* Bump API version
* Tweak unit test
* Tweak unit test
* Increased allowed queries
* fix user plugin settings
* Fix for unit test
* Update debug msg
* Tweak API
* Fix endpoint
* Remove "active plugin keys" code
* Restore previous behaviour
* Fix unit tests
* Tweak unit test
* Update src/backend/InvenTree/build/tasks.py
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Update src/backend/InvenTree/plugin/base/integration/NotificationMixin.py
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Func updates
* Format
* Add notification settings
* Refactor plugin settings groups
* Fix func type
* Adjust message
* Additional unit tests
* Additional playwright tests
* Additional playwright test
---------
Co-authored-by: Matthias Mair <code@mjmair.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Expose lingui modules to plugins
* Add i18n object to plugin context
* Expose form types
* Update package.json requirements
* Externalize react and mantine when building @inventreedb/ui components
* Externalize lingui packages too
* Extern <AddItemButton />
* Enable form auto-fill
- If a single value is available, pre-fill
- Must be enabled per-field
* Tweak playwright tests for increased reliability
* Fix deps
* Fix rendering glitch in tables
- Table render could glitch based on cached column order
- React does not handle array dependencies well sometimes
- Change when column order is recalculated
* Simplify effect chain
- Memoize columns order
- Simply overwrite with columns order
* Tweak SalesOrderAllocations table
* Refactor "include_variants" filter
* Improved API filtering for "SalesOrderLineItem" endpoint
* Fetch part detail for table
* Fix email template
- Referenced template which does not exist
* Refactor the "requirements" endpoint
- Include variant part requirements too
* Updated starred notifications
* Adjust column name
* Update PartDetail
- Extract information from partRequirements query first
* Cache BOM items
* Improve PartDetail page
* Enhance isGeneratingSchema
- Call inspect as late as possible
* Adjust PartDetail
* Improve BuildOrderAllocations table
* Exclude common.newsfeedentry when exporting
* Updated playwright tests
* Bump API version
* Add mixin for storing user who last updated an instance
* Add mixin to "PartParameter" model
* Fix typo
* Fix strings
* Refactor mixin class
* Update part parameter table:
- Add "user" filter
- Add "updated_by" column
- Add "update" column
- Add "note" column
* Fix for updating date
* Add user information when saving parameter
* small refactors
* Bump API version
* Add unit test for "updated" and "updated_by" fields
* Check for 'note' field
* Update docs image
* Hide "consumed stock" panel if not required
* Docs updates
* Hide allocation fields if the build has no required parts
* Additional serializer options
* More efficient call
* Tree save fix
- Do not rebuild tree when not required
- Reduce DB count for API test
* Reduce query count even further
* Reduce query limit for other tests
* Fix for parent getter
* Added condition
* Remove duplicate check
* Don't pre-fill tree values
* perform atomic delete
* Adjust unit tests
* feat: add tax_id field to Company model and related forms
* Update 0075_company_tax_id.py to fix typo
* Update models.py to fix typo
* Update tests.py to increment 'column_mappings.count()' to 15
* Update api_version.py
* Add --keepdb option for unit test
* Reduce server launch overhead
- isGeneratingSchema was EXPENSIVE
- Running a single unit test reduced from 30s to 3s
* Option to disable check
* Better item extraction
* Improve query efficiency
* Further queryset improvements
* Return correct data format
* Test with hugh number of serials
* Improve serialization UX
* Revert changes to unit tests
* Refactor InvenTreeTree model structure
- Allow for tree with null items
* Refactor pathstring
* Factor pathstring out into a separate mixin
- Keep tree operations separate (in InvenTreeTree)
- Pathstring operations are now in PathStringMixin
* throw error
- Ensure that this func gets removed in future commit
* Fix node delete code
* Migrate "Build" model to new structure
* Add unit tests for Build tree structure
* Refactor StockLocationTreeTest
* Implement tree rebuild test for StockItem model
* Add unit test for stock item serialization
* Refactor "Part" model to use mixin
* Add unit tests for part variant tree
* Add test for node deletion
* Adjust unit tests
* Ensure items are not created with null tree_id
* Further unit tests and updates
* Fix unit tests
* Remove duplicate check
* Adjust build fixture
* Remove rebuild call
* Fixing more tests
* Remove calls to rebuild part tree
* Add test for tree fixtures
* Report tree rebuild errors to sentry
* Remove helper func
* Updates for splitStock
* Cleaner inheritance
* Simpilfy test
- tree_id is somewhat ephemeral
* Handle null parent
* Enforce partial rebuild if parent changes
* Fix
* Remove hard-coded "parent" references
* Fix order of delete operations
* Fix unit test
* Unit test tweaks
* Improved handling for deleting a root node
* Only set tree_id if not already specified
* Only rebuild valid tree_id values
* Cast to list
* Adjust unit test
- Test values were wrong, due to bad data in fixtures
* Do not bulk delete
- mysql no likey
* Enhanced rebuild logic
* Fix for unit test
* Improve logic for _create_serial_numbers
* Unit test fix
* Remove unused function
* use better email check
* add error code for missing email settings
* Add note when not registration is enabled
* fix wrong call
* fix tests - might be worth checking if the blank check for testing is a good idea
* capture issues and print to find out what the duck is going on
* exend log
* fix context check
* Better handling of URLs when loading plugin source
- Handle complex URLs more cleanly
- Support loading from actual external host
- Support loading with specified port
* Fix URL rendering - handle "local" and "remote" components
* Use default host if not provided
* Simplify code
* Add "category" filter for BomItem API endpoint
* Filter BOM table by part category
* Tweak filter label
* Bump API version
* Schema annotation
* Fix playwright test
* Add setting to show location path as plain text in tables
* Use the Location Path setting also for Default Location in the PartTable
* Add setting to show PartCategoty as plain text
* Set DefaultLocationColumn defaultVisible to false
* Fix typo
* Simplify settings keys
* Simplify the name attribute
* Fix typo
---------
Co-authored-by: Oliver <oliver.henry.walters@gmail.com>
* Add "serialize" form to build output table
* Fix dependencies for useGenerator hook
* Improve serializing of stock
- Copy test results
- Ensure fields get copied across
* Fix rendering for StockItemTestResultTable
* Enhanced playwright test
* Fix code
* Fix for unit test
* Logic fix for plugins
- Prevent tasks being run for disabled plugins
* Adjust default value for "get_plugin" method
* Fix return type
* Update typing
* Tweak unit test
* Update unit tests
* More test updates
* Logic fix for LOCK_SETTING
- Because the setting is to "allow editing", it is really an UNLOCK setting
- This setting had to be DISABLED (false) to allow editing of completed orders
* Updated logic
* Tweak unit tests
* Filter incomplete outputs by location
* Filter build allocated stock by location
* Filter sales order allocations by location
* Bump API version
* Fix API version
* Fix annotations
* Refactor stock actions into a hook
* Cleanup hooks
* Allow transfer of "incomplete" outputs
* Simplify even further
* Enable transfer of stock allocated to build order
* Remove StockItemBriefSerializer entirely
* stock actions for items allocated to sales order
* Refactor <PartDetail> page
* Refactor <StockDetail>
* Refactor <LocationDetail>
* Bump API version
* Control serializer arguments
* Refactor stock actions into a hook
* Cleanup hooks
* Allow transfer of "incomplete" outputs
* Simplify even further
* Enable transfer of stock allocated to build order
* Remove StockItemBriefSerializer entirely
* stock actions for items allocated to sales order
* Refactor <PartDetail> page
* Refactor <StockDetail>
* Refactor <LocationDetail>
* Bump API version
* SO button text
- Observe the "SALESORDER_SHIP_COMPLETE" value
* Fix palywright tests