* 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