* Add barcode buttons to related fields
- Only field types which support barcodes
* Add per-user settings for barcode support
* Fill form field with scanned data
* Updated docs
* Fix duplicate setting
* Add playwright tests
* Fix duplicate setting in docs
* Fix broken link
* Fix memo deps
* Fix typo
* Remove setting
* Updated playwright tests
* Improved typing
* Fix for string form fields
- replace null values with empty strings
* Expose more serializer metadata
* Check if null values are not allowed
* Fix type
* Try removing feature
* Reduce deltas
* Remove extra field attrs entirely (for testing)
* Comment out changes
* Tweak form values
* Fix for form validation
* Add ParameterTemplate model
- Data structure duplicated from PartParameterTemplate
* Apply data migration for templates
* Admin integration
* API endpoints for ParameterTemplate
* Scaffolding
* Add validator for ParameterTemplate model type
- Update migrations
- Make Parameter class abstract (for now)
- Validators
* API updates
- Fix options for model_type
- Add API filters
* Add definition for Parameter model
* Add django admin site integration
* Update InvenTreeParameterMixin class
- Fetch queryset of all linked Parameter instances
- Ensure deletion of linked instances
* API endpoints for Parameter instances
* Refactor UI table for parameter templates
* Add comment for later
* Add "enabled" field to ParameterTemplate model
* Add new field to serializer
* Rough-in new table
* Implement generic "parameter" table
* Enable parameters for Company model
* Change migration for part parameter
- Make it "universal"
* Remove code for ManufacturerPartParameter
* Fix for filters
* Add data import for parameter table
* Add verbose name to ParameterTemplate model
* Removed dead API code
* Update global setting
* Fix typos
* Check global setting for unit validation
* Use GenericForeignKey
* Add generic relationship to allow reverse lookups
* Fixes for table structure
* Add custom serializer field for ContentType with choices
* Adds ContentTypeField
- Handles representation of content type
- Provides human-readable options
* Refactor API filtering for endpoints
- Specify ContentType by ID, model or app label
* Revert change to parameters property
* Define GenericRelationship for linking model
* Refactoring some code
* Add a generic way to back-annotate and prefetch parameters for any model type
* Change panel position
* Directly annotate parameters against different model serializers
* remove defunct admin classes
* Run plugin validation against parameter
* Fix prefetching for PartSerializer
* Implement generic "filtering" against queryset
* Implement generic "ordering" by parameter
* Make parametric table generic
* Refactor segmented panels
* Consolidate part table views
* Fix for parametric part table
- Only display parameters for which we know there is a value
* Add parametric tables for company views
* Fix typo in file name
* Prefetch to reduce hits
* Add generic API mixin for filtering and ordering by parameter
* Fix hook for rebuilding template parameters
* Remove serializer
* Remove old models
* Fix code for copying parameters from category
* Implement more parametric tables:
- ManufacturerPart
- SupplierPart
- Fixes and enhancements
* Add parameter support for orders
* Add UI support for parameters against orders
* Update API version
* Update CHANGELOG.md
* Add parameter support for build orders
* Tweak frontend
* Add renderer
* Remove defunct endpoints
* Add migration requirement
* Require contenttypes to be updated
* Update migration
* Try using ID val
* Adjust migration dependencies
* fix params fixture
* fix schema export
* fix modelset
* Fixes for data migration
* tweak table
* Fix for Category Parameters
* Use branch of demo dataset for testing
* Add parameteric build order table
* disable broken imports
* remove old model from ruleset
* correct test
* Table tweaks
* fix test
* Remove old model type
* fix test
* fix test
* Refactor mixin to avoid specifying model type manually
* fix test
* fix resolve name
* remove unneeded import
* Tweak unit testing
* Fix unit test
* Enable bulk-create
* More fixes
* More unit test tweaks
* Enhancements
* Unit test fixes
* Add some migration tests
* Fix admin tests
* Fix part tests
* adapt expectation
* fix remaining typecheck
* Docs updates
* Rearrange models
* fix paramater caching
* fix doc links
* adjust assumption
* Adjust data migration unit tests
* docs fixes
* Fix docs link
* Fixes
* Tweak formatting
* Add doc for setting
* Add metadata view for parameters
* Add metadata view for ParamterTemplate
* Update CHANGELOG file
* Deconflict model_type fields
* Invert key:value
* Revert "Invert key:value"
This reverts commit d555658db2.
* fix assert
* Update API rev notes
* Initial unit tests for API
* Test parameter create / edit / delete via the API
* Add some more unit tests for the API
* Validate queryset annotation
- Add unit test with large dataset
- Ensure number of queries is fixed
- Fix for prefetching check
* Add breaking change info to CHANGELOG.md
* Ensure that parameters are removed when deleting the linked object
* Enhance type hinting
* Refactor part parameter exporter plugin
- Any model which supports parameters can use this now
- Update documentation
* Improve serializer field
* Adjust unit test
* Reimplement checks for locked parts
* Fix unit test for data migration
* Fix for unit test
* Allow disable edit for ParameterTable
* Fix supplier part import wizard
* Add unit tests for template API filtering
* Add playwright tests for purchasing index
* Add tests for manufacturing index page
* ui tests for sales index
* Add data migration tests for ManufacturerPartParameter
* Pull specific branch for python binding tests
* Specify target migration
* Remove debug statement
* Tweak migration unit tests
* Add options for spectacular
* Add explicit choice options
* Ensure empty string values are converted to None
* Don't use custom branch for python checks
* Fix for migration test
* Fix migration test
* Fix reference target
* Remove duplicate enum in spectactular.py
* Add null choice to custom serializer class
* [UI] Edit shipment details
- Pass "pending" status through to the form
* New migration strategy:
part.0144:
- Add new "enabled" field to PartParameterTemplate model
- Add new ContentType fields to the "PartParameterTemplate" and "PartParameter" models
- Data migration for existing "PartParameter" records
part.0145:
- Set NOT NULL constraints on new fields
- Remove the obsolete "part" field from the "PartParameter" model
* More migration updates:
- Create new "models" (without moving the existing tables)
- Data migration for PartCataegoryParameterTemplate model
- Remove PartParameterTemplate and PartParameter models
* Overhaul of migration strategy
- New models simply point to the old database tables
- Perform schema and data migrations on the old models first (in the part app)
- Swap model references in correct order
* Improve checks for data migrations
* Bug fix for data migration
* Add migration unit test to ensure that primary keys are maintained
* Add playwright test for company parameters
* Rename underlying database tables
* Fixes for migration unit tests
* Revert "Rename underlying database tables"
This reverts commit 477c692076.
* Fix for migration sequencing
* Simplify new playwright test
* Remove spectacular collision
* Monkey patch the drf-spectacular warn function
* Do not use custom branch for playwright testing
---------
Co-authored-by: Matthias Mair <code@mjmair.com>
* Refactor NumberField into separate component
* Add helper func to ensure a number is a number
* Use placeholder value for suggested sale price
* Fix for auto-fill
* Tweak price calculation
* Add UI testing for sales order price breaks
* Fix aria label name
* Annotate price breaks to supplier part
* Fetch price break data
* Support price breaks for purchase order pricing
* Fix required to prevent circular imports
* Add playwright tests for purchase order price breaks
* Bump API version
* Re-add output options for SupplierPriceBreakList
* Revert change
* Simplify unit test
* Form Field updates:
- Allow spec of leftSection prop
- Allow spec of rightSection prop
* Add ability to auto-fill text input with placeholder value
* Simplify stock form
* Better serial number placeholders
* Update other generator fields
* Add default placeholder to DateInput
* Enhance TextField
* Remove serial_numbers field for non-creation forms
* Update playwright tests
* Adjust playwright tests
* Further playwright adjustments
* Fix project code field for build serializer
* commit initial draft for supplier import
* complete import wizard
* allow importing only mp and sp
* improved sample supplier plugin
* add docs
* add tests
* bump api version
* fix schema docu
* fix issues from code review
* commit unstaged changes
* fix test
* refactor part parameter bulk creation
* try to fix test
* fix tests
* fix test for mysql
* fix test
* support multiple suppliers by a single plugin
* hide import button if there is no supplier import plugin
* make form submitable via enter
* add pui test
* try to prevent race condition
* refactor api calls in pui tests
* try to fix tests again?
* fix tests
* trigger: ci
* update changelog
* fix api_version
* fix style
* Update CHANGELOG.md
Co-authored-by: Matthias Mair <code@mjmair.com>
* add user docs
---------
Co-authored-by: Matthias Mair <code@mjmair.com>
* https://github.com/inventree/InvenTree/pull/6293
* refactor to a shared component
* refactoring container stuff to a wrapper
* move title to wrapper
* move logoff and loader to wrapper
* mvoe functions to general auth
* seperate login and register into seperate pages
* unify auth styling
* rename component
* adapt to new look
* check if registration is enabled
* feat(frontend):add authentication debug window
* clear state on logout
* add reload button
* reduce diff
* export helper
* move hover out
* only show to superusers
* fix state args
* fix merge
* fix merge
* clean up diff
* reduce diff
* re-diff
* fix shallow loading
* fix test
* fix umport
* Move session info to user settings panel
* Restrict to superuser accounts
---------
Co-authored-by: Matthias Mair <code@mjmair.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 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
* 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
* 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
* Add useStoredTableState zustand
* Store table page size in the zustand state
* Store tablesorting data in zustand state
* Actually provide records...
* Transfer table names state
* Store hidden columns too
* rename states to better fit naming conv
* fix name
* ensure splashscreen only loads after login check
this reduces a short splash of the splashscreen even if logged in
* move loader to the middle of the screen and remove fallback on a view screens
* Work in progress
- Seems to reset the columns on page refresh
- Probably related to the useLocalStorage hook
* Do not overwrite until the tablestate is loaded
* Prevent table fetch until data has been loaded from localStorage
* Improved persistance
* Adjust default column visibility
* Adjust playwright test
* add anchor element to tabs to enable opening in new tab
* simplify
* use unstyled button instead
* also enable linking on nav panels
* make sure metakey also works (reduces duplication)
* remove headers changes
* move check for modified key to lib
* render nav items as link
---------
Co-authored-by: Oliver <oliver.henry.walters@gmail.com>
* [FR] Improve Email handeling
Fixes#7950
* extend implementation of email thread and message models
* add missing args
* add unit test
* increase test coverage
* make key not necessary
* do not consider in coverage
* add email apis
* Add email admin
* fix email configuration check
* improve rendering
* squash migrations
* add config value overview
* log if mails were send
* add additional headers
* fix api unit test
* fix url resolving
* add InvenTree specific task to issue mails
required to extend sending options (prio, reply to)
* use internal sending task to keep telemetry cleaner
* add prio handling
* add plugin handling
* add setting
* factor plugin method out
* add typing
* move function
* bump version
* fix import path
* add a test for the test endpoint
* fix checking logic
* Add anymail sending / tracking handling
* add more ordering fields to api
* remove unneeded assingment
* add basic docs
* handle incoming emails with anymail
* Add inbox handling
Closes https://github.com/inventree/InvenTree/issues/7951
* add list of supported ESPs
* add better error transparency when sending fails
* add missing migration
* combine migrations back down
* fix todos
* fix qc export
* fix missing model props
* add tests
* ensure things are passed as a list
* fix list formatting
* fix deps
* move tests
* add testing with anymail
* allow handling of priority and headers
* add test for events
* add test for inbound messages
* rename variable
* increase coverage
* fix format
* add setting doc
* fix link
* rename fnc
* disable pro test
* make messages clearer
* fix doc syntax
* fix assign
* fix test
* revert test disablement
* add enum
* disable check for now
* try changing test around
* add incoming mail processing
* fix import
* add docs
* Fix mail.md
* bump deps
* fix api version
* feat: improve user management actions
add "open profile" actions
* add lock / unlock action
* add actions for password reset
* submit coverage info to codecov
no idea why this was turned off
* bump api version
* add frontend test
* add backend test
* fix test state
* move test
* fix style
* fix name
* hide password change if not superuser
* bump playwright
see https://github.com/microsoft/playwright/issues/35183
* fix test
* fix test order
* simplify test
---------
Co-authored-by: Oliver <oliver.henry.walters@gmail.com>
* Fix for stockOperationModal
* Re-check when opened status changes
* rename stockOperationModal -> useStockOperationModal
* Fix enabled status of query
* Add option to specify modalId
* Track modal state when open / close
* Prevent generators from running until forms are open
* Prevent double loading of tables
* Fix useQuery
* Fix queryKey
* Revert API change
* Provide mechanism for config to override global settings
* Ensure overrides are observed on save
* Refactor
* Add "read_only" field to serializer
* Prevent editing for read_only settings
* Bump API version
* Update docs
* Secure logs
* Override applies to default_value
* override get_setting method
* Add unit test
* Utilize new approach to override SITE_URL
* Docs updates
* Docs tweaks
* Shortcut for get_global_setting
* Remove previous change
- Allow validation to be performed within the InvenTreeSetting class
* Override INVENTREE_BASE_URL setting
* Handle error on worker boot
* Tweak unit test
* Provide callback function for barcode scan dialog
* Adds hook for barcode scan dialog
* Fix callback processing
* Add function to extract API URL for a model instance
* Tweak page titles
* Extract instance data when scanning a barcode
* Scan item into location
* Scan in stock location
* Remove notYetImplemented func
* Revert "Remove notYetImplemented func"
This reverts commit a35408380e.
* Add stock item action
* Add playwright tests
* Pass more stuff to window
* Expose form functions to plugin context
* Breaking: Render plugin component in context tree
- Required due to createRoot function
- Adds necessary context providers
* Fix context
* Provide MantineThemeContext
* Bundle mantine/core
* Hack for useNavigate within ApiForm
- Errors out if called within plugin context
- Workaround to catch the error
* Update build cmd
* Define config for building "Library" mode
* Update package.json
* Add basic index file
* Factor out ApiEndpoints
* factor out ModelType
* Factor out role enums
* Further refactoring
* More refactoring
* Cleanup
* Expose apiUrl function
* Add instance data to plugin context type def
* Tweaks for loading plugin components
- LanguageContext must be on the inside
* Tweak StylishText
* Externalize notifications system
* Update lingui config
* Add functions for checking plugin interface version
* Extract package version at build time
* Enhance version checking
* Revert variable name change
* Public package
* Add README.md
* adjust packge name
* Adjust name to include org
* Update project files
* Add basic changelog info
* Refactoring to expose URL functions
* Refactor navigation functions
* Update package and README
* Improve navigateToLink function
* Refactor stylish text
- Move into ./lib
- Do not require user state
* Revert changes
- StylishText throws error in plugin
- Low priority, can work out later
* expose function to refresh page index
* Provide RemoteComponent with a method to reload itself
* Bump version
* Cleanup tests
* Prevent duplicate --emptyOutDir arg
* Tweak playwright tests
* Expose role and permission enums
* Fix imports
* Updated docs
* Fix spelling, typos, etc
* Include more package version information
* Expose more version context
* Cleanup
* Probably don't need hooks
* Fix links
* Docs updates
* Fix links