* Add BuildOrder reference to PurchaseOrderLineItem
* Add setting to enable / disable external build orders
* Fix for supplier part detail
* Update forms
* Filter build list by "external" status
* Add "external" attribute to BuildOrder
* Filter by external build when selecting against purchase order line item
* Add frontend elements
* Prevent creation of build outputs
* Tweak related model field
- Send filters when fetching initial data
* Fix migrations
* Fix some existing typos
* Add build info when receiving line items
* Logic fix
* Bump API version
* Updated relationship
* Add external orders tab for order
* Display table of external purchase orders against a build order
* Fix permissions
* Tweak field definition
* Add unit tests
* Tweak api_version.py
* Playwright testing
* Fix discrepancy in 'building' filter
* Add basic documentation
( more work required )
* Tweak docs macros
* Migration fix
* Adjust build page tabs
* Fix imports
* Fix broken import
* Update playywright tests
* Bump API version
* Handle DB issues
* Improve filter
* Cleaner code
* Fix column ordering bug
* Add filters to build output table
* Documentation
* Tweak unit test
* Add "scheduled_for_production" field
* Add helper function to part model
* Cleanup
* Add functionality to copy part test templates when duplicating a part instance
* Bug fixes
* Tweak part duplication fields
* Add simple playwright test
* Updated unit test for part duplication
* Bump API version
* Update mantine-datatable
* Improve table hook
* Fix for table name
- Table names must be unique
- Otherwise stored column data gets corrupted
* Click through on table
* Tweak unit tests
* Render whole stock location path
- Render location pathstring, not just name
- Brings tables into line with how location is displayed elsewhere
- Closes https://github.com/inventree/InvenTree/issues/9627
* Handle error on worker boot
* 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
* Add InvenTreeBarcodeMixin to SalesOrderShipment
* Barcode model type code method added for SalesOrderShipment class
* Add barcode data to SalesOrderShipment serializer
* Bump API version
---------
Co-authored-by: meenaraj22 <meena@blaze.ws>
Co-authored-by: Matthias Mair <code@mjmair.com>
* add hidden field and logic to reduce clicks for mfa logins
* refactor to seperate function to reduce complexity
* fix missing imports
* fix style
---------
Co-authored-by: Oliver <oliver.henry.walters@gmail.com>
* Add shell task
* Filter parts by parameter value
* Allow more operation types
* Working on table filtering
* Filter improvements
* Update on enter key
* Improved query logic
* Enable filter for "generic" parameter types
* Placeholder text
* Documentation updates
* Fix typo
* Fix for boolean part parameter field
* Add API unit testings
* Cleanup
* add playwright tests
* feat(frontend): Add control character handling to barcode text input.
Ports part of 8059fb1e05 to Platform UI.
Fixes#7529.
* feat(frontend): Submit barcode scan on EOT character.
Automatically submits 2D barcode scans when end of transmission character is input.
---------
Co-authored-by: Oliver <oliver.henry.walters@gmail.com>
* feat(frontend): Add grouping in the admin center
* fix name
* make sections more distinct
* re-arrange sections
* ensure plugin panels work
* fix missing key issue
* fix test name
* fix(backend): ensure deps are coupled
* bump deps
* more constraints
* run dep resolver
* expand resolve even more
* lower lxml / xmlsec
* lower allauth
* Ensure pagination limit is set on schema list queries
* Bump api version
* Update api_version.py
* Bump version again
---------
Co-authored-by: Matthias Mair <code@mjmair.com>
* 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
* feat(backend): better warning on missing migrations
* add debug info to some tasks
* ensure db would even be accessed before raising concerns
* add more markers
* Add decorator to log flow
* reduce calls
* reduce fnc down
* Fix for email sending
- Extract valid email for user
- Do not send if email not configured for user
* Improve email address filtering logic
* Fix return type hint
* 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
* Add checkClose function to forms
- Allow custom check for whether form should be closed
* Add form to jump to serial number
* Tweak stock detail display
* Remove dead field
(might fix later, but it's hard with the current API)
* Add some icons
* Enhance extract_int functionality
* Add API endpoint for "next" and "previous" serials for a given stock item
* Add serial number navigation on stock item page
* Add playwright tests
* Bump API version
* Fix for serial number clipping
* Another tweak
* Fix AllUnitList schema operation and serializer to match actual response
* Fix LicenseViewSerializer to match actual response
* Remove references to credits page (removed in #8811)
* Allow null commit_branch for detatched HEAD state
* Fix version formatting, add test, clean up parser
* Fix schema mapping and return type for VersionTextView
* Fix and test version off-by-one bug
* API version bump
* Merge version tests, enforce more formatting constraints for parsing
* Cleanup UserDetail page
* Cleanup display
* Re-use UserTable
* Add 'users' permission role
* Check user roles in "admin center"
* Revert "Add 'users' permission role"
This reverts commit 35b047b2f9.
* Improve display logic
* Expose group rule-sets to API
* Prefetch rule_sets
* Add 'label' to RuleSetSerializer
* Add basic RuleSet table
* Add API endpoints for RuleSet model
* Edit group roles via table
* Refactor user permissions checks
- Remove duplicate function calls
- Refactor permission checks into new file
* Further refactoring
* Even more refactoring
* Fix user settings permission
* Add TransferList component
* Tweak GroupDrawer
* Tweak UserDrawer
* adjust user groups via API / UI
* Allow "users" detail on Group API
* Bump API version
* Enumeration of RuleSet name
* Update
* Add permission check
* Update src/frontend/src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx
Co-authored-by: Matthias Mair <code@mjmair.com>
* uncomment warning
* Extend enum usage
* More checks
* Bug fix
* Fix permission checks
* Additional testing for user roles endpoint
* Updated permission classes
- RolePermission with read-only fallback
- RolePermission with additional staff requirement
* Do not allow creation of new RuleSet objects
* Cleanup permission checks and unit tests
* Cleanup UI permission checks
* Updated class dostrings
* Cleanup
* Cleanup permission checks for UserTable
* Add playwright tests for "permission" checks
- Basic for now
- Can be extended in the future
* Tweak unit tests
* Adjust layout of warning / error messages
* Tweak group table logic
* Table cleanup
* Display roles associated with a particular group
* Cleanup
* Tweak user detail page
---------
Co-authored-by: Matthias Mair <code@mjmair.com>
* Remove hardcoded currency enum from schema
* Convert schema custom key enums to int to allow customized keys to validate
* Convert stock status key enums to int to allow customizations to
validate in schema
* api version bump
* fix remaining operationId errors
* fix errors
* fix another error
* fix missing model
* ensure we do not ignore warnings anymore
* Restore enumerated help text for currencies
* Remove commented block of old code
* Restore custom key enumerated values to schema documentation
* Restore status key enumeration to schema documentation
* fix more enums
* Add debug definitions for schema generation
* fix schema generation for PluginRelationSerializer
* add migrations
* fix enum names for allauth schema duplications
* bump api version
---------
Co-authored-by: Joe Rogers <1337joe@gmail.com>
* Remove hardcoded currency enum from schema
* Convert schema custom key enums to int to allow customized keys to validate
* Convert stock status key enums to int to allow customizations to
validate in schema
* api version bump
* Restore enumerated help text for currencies
* Remove commented block of old code
* Restore custom key enumerated values to schema documentation
* Restore status key enumeration to schema documentation
* Updated type hints
* Fix tooltip bug
* Check user when sending notification
* Fix test
* Update unit test
* More unit test fixes
* Tweak playwright tests
* add search notes and tie user search settings to checkboxes in search drawer
* add user setting to optionally search the notes of objects
* add search filter test
* add PR link
* add limit parameter
* typo, meant to check part result
* resolve api_version.py conflict
* don't use search_whole and search_regex together
---------
Co-authored-by: Matthias Mair <code@mjmair.com>
* refactor(frontend): seperate Alerts into own component
* refactor debug mode info
* add error code for debug mode and render help links in alerts
* add error message for background worker
* add error code for server restart required
* Add error code for missing email settings
* fix various typings
* add error code for missing migrations
* Add default metadata model for schema generation
* Add type hints and annotations where needed for schema generation
* Bump api version
* Fix version bump
* Add request body to schema for bulk delete operations, deconflict list
vs single delete operation ids
* API version bump
* Fix variable name conflict
* Switch from post-processing hook to AutoSchema extension
* Loosen typing on filter dict, correct expected code in tests
* Filter by view class instead of path
---------
Co-authored-by: Oliver <oliver.henry.walters@gmail.com>
* Pass extra options through to data export plugins
* Add PartParameterExporter plugin
- Useful for including part parameter data in exporter
* Fix bug in InvenTreeTableHeader
* enable export for partparametertable
* Simplify tests
* Add typing hints
* Allow port 4173 (vite preview)
* Change 'base' attr based on vite command
* Allow api_host to be specified separately
* Harden API host functionality
* Adjust server selections
* Cleanup vite.config.ts
* Adjust playwright configuration
- Allow to run in "production" mode
- Builds the code first
- Runs only the backend web server
- Not suitable for coverage
* Tweak github actions
* Tweak QC file
* Reduce number of steps
* Tweak CI file
* Fix typo
* Ensure translation before build
* Fix hard-coded test
* Test tweaks
* uncomment
* Revert some changes
* Run with gunicorn, single worker
* Reduce log output in DEBUG mode
* Update deps
* Add global-setup func
* Fix for .gitignore file
* Cached auth state
* Tweak login func
* Updated tests
* Enable parallel workers again
* Simplify config
* Try with a single worker again
* Single retry mode
* Run auth setup first
- Prevent issues with parallel test doing login
* Improve test setup process
* Tweaks
* Bump to 3 workers
* Tweak playwright settings
* Revert change
* Revert change
* Improve custom maintenance mode backend
- Utilizing global settings functions
- Will use global cache if available
- Fewer DB hits per request
* Twaeak query limits
* Update node version
* Install nvm
* Use n instead of nvm
* Use same approach in devcontainer
* nvm -> npm
* Split commands
* Fix typo
* Workaround : install bash
* Tweak playwright tests
* Bump number of retries
* Update deps
* Only one worker
* SEcurity fix
* Adjust
* Refactor variable name
* Add part information when allocating serial numbers
- Easier identification of which part is being allocated
* Fix for part stock rendering
* Add function to star / unstar a part
* Also use with category
* Email notification when a part is changed
Fixes#7834
* enable disabling of recent checks
* Add error handler
* remove unneeded function
* Define which builtin plugins are always-active
* Adds 'mandatory' property to PluginConfig
* Update API / frontend
* Fix form method
* Tweaks
* Bump API version
* Tweak unit tests
* [UI] Change default web prefix
- Adjust default from "platform" to "web"
- Much more standard prefix
* Cleanup
* Fixes for playwright tests
* Fix unit tests
* Refactor base_url into getBaseUrl
* Move data export code out of "importer" directory
* Refactoring to allow data export via plugin
* Add brief docs framework
* Add basic DataExportMixin class
* Pass context data through to the serializer
* Extract custom serializer
* Refactoring
* Add builtin plugin for BomExport
* More refactoring
* Cleanup for UseForm hooks
* Allow GET methods in forms
* Create new 'exporter' app
* Refactor imports
* Run cleanup task on boot
* Add enumeration for plugin mixin types
* Refactor with_mixin call
* Generate export options serializer
* Pass plugin information through
* Offload export functionality to the plugin
* Generate output
* Download generated file
* Refactor frontend code
* Generate params for downloading
* Pass custom fields through to the plugin
* Implement multi-level export for BOM data
* Export supplier and manufacturer information
* Export substitute data
* Remove old BOM exporter
* Export part parameter data
* Try different app order
* Use GET instead of POST request
- Less 'dangerous' - no chance of performing a destructive operation
* Fix for constructing query parameters
- Ignore any undefined values!
* Trying something
* Revert to POST
- Required, other query data are ignored
* Fix spelling mistakes
* Remove SettingsMixin
* Revert python version
* Fix for settings.py
* Fix missing return
* Fix for label mixin code
* Run playwright tests in --host mode
* Fix for choice field
- Prevent empty value if field is required
* Remove debug prints
* Update table header
* Playwright tests for data export
* Rename app from "exporter" to "data_exporter"
* Add frontend table for export sessions
* Updated playwright testing
* Fix for unit test
* Fix build order unit test
* Back to using GET instead of POST
- Otherwise, users need POST permissions to export!
- A bit of trickery with the forms architecture
* Fix remaining unit tests
* Implement unit test for BOM export
- Including test for custom plugin
* Fix unit test
* Bump API version
* Enhanced playwright tests
* Add debug for CI testing
* Single unit test only (for debugging)
* Fix typo
* typo fix
* Remove debugs
* Docs updates
* Revert typo
* Update tests
* Serializer fix
* Fix typo
* Offload data export to the background worker
- Requires mocking the original request object
- Will need some further unit testing!
* Refactor existing models into DataOutput
- Remove LabelOutput table
- Remove ReportOutput table
- Remove ExportOutput table
- Consolidate into single API endpoint
* Remove "output" tables from frontend
* Refactor frontend hook to be generic
* Frontend now works with background data export
* Fix tasks.py
* Adjust unit tests
* Revert 'plugin_key' to 'plugin'
* Improve user checking when printing
* Updates
* Remove erroneous migration file
* Tweak plugin registry
* Adjust playwright tests
* Refactor data export
- Convert into custom hook
- Enable for calendar view also
* Add playwright tests
* Adjust unit testing
* Tweak unit tests
* Add extra timeout to data export
* Fix for RUF045
* Allow bulk selection of sales order shipment
* Tweaks
* Support bulk-edit for location parent and category parent
* Allow more login attempts for playwright
* Refactor BulkDeleteMixin
* Implement BulkUpdateMixin class
* Refactor NotificationsTable
- Use common bulkdelete operation
* Update successMessage
* Update metadata constructs
* Add bulk-edit support for PartList endpoint
* Implement set-category for part table
* Cleanup old endpoint
* Improve form error handling
* Simplify translated text
* Add playwright tests
* Bump API version
* Fix unit tests
* Further test updates
* 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):show if redirecting
* reduce diff
* fix missing import
* remove double warning
* Add deps for @fullcalendar
* Basic calendar setup
* Add locale support
* Add custom <SegmentedIconControl> component
* optional 'control' for panel
* Scaffolding out build index page
* Fetch build orders based on calendar dates
* Display builds
* Click to navigate to build
* Working on custom header
* Implement button functionality
* Display current month name
* Implement datepicker dropdown
* Adjust layout
* Custom rendering
* Include part detail
* Implement hook to track calendar state
* Clearing search causes immediate update
* Offload core functionality into hook
- Adds search input
* Spread props correctly
* Cleanup
* Allow build orders to be edited directly from calendar view
* Cleanup
* Fix for InvenTreeCalendarProps
* Improve date range filtering for Build model
* Simplify BuildFilter
* Refactoring
* PurchaseOrder calendar implementation
* Allow edit of purchase orders
* Refactor and implement for all order types
- Add missing "issue_date" field for SalesOrder
- Refactor API for other order types
- Fix rendering issues
* Bump API version
* Add playwright tests for calendar (simple)
* Fix migrations
* Simplify notifications
* Refactor filter components
- Make them more generic
* Enable custom filters for calendars
* Custom filters per table
* Display status label
* Refactoring
* Update playwright tests
* Update build order docs
* Bug fix for order date editing
* Update purchase order docs
* Return Order docs
* Update date formatting
* Ensure notes are not removed when generating schema
* Skip remaining conditional field removals when generating schema, remove removable fields from required lists
* Update API version, add schema gen state check for api-doc endpoint
* Add test for generate schema state
* Add test for schema postprocessing function
* Filter nullable + read_only fields out of schema required lists
---------
Co-authored-by: Matthias Mair <code@mjmair.com>
* Caddyfile: Redirect asset requests
- Ensure the static asset files are served by the proxy
- Reduce gunicorn / python load
- Significant server performance increase
* Allow CORS requests to 'assets' path
* Update static assets path for vite build
* Remove RedirectAssetView
* Specify relative base path
Ref: https://vite.dev/guide/build.html#relative-base
* Revert settings.py
* Revert caddyfile
* Remove defunct unit test
* Add timeout to test
* Add attributes to TableFilter type def
* Refactoring
* Refactor ProjectCodeFilter
* Provide simple string rendering of a dynamic filter
* Refactor ResponsibleFilter
* Further refactoring
* More refactoring
* Fix placeholder value
* [Bug] Fix search for StockTrackingList
- Removed invalid field
* Add unit test coverage for failing condition
* Fix 'notes' field for extra line item API
* increase character limits on all link fields to 2000
* update test to still trigger
* Don't fail when diff is too big for echo (#9205)
* Reduce severity of error message (#9209)
- Currently flooding sentry.io with reports
* Disable pagination for ConfigList class (#9210)
* [API] Auth login error (#9212)
Fixes#9211
* [UI] Table Update (#9220)
- Retain user selection for pageSize
* renumber migrations after merge from master
* Remove quick actions (#9222)
* Remove placeholder components
- No function
- Cleanup for 1.0.0
* Remove Placeholder.tsx
* feat(backend): Add user profile (#9116)
* Add user profile
* fix choice set
* ensure primary_group is valid
* add missing migrations
* fix tests
* merge migrations
* add migration test
* add new model to ruleset
* ensure changed to the m2m conenction also validate primary grups
* move signals
* fix import?
* patch user language through
* use set methods correctly
* bump api
* refactoring to make debugging and extending easier
* fix dum recurrsion problem
* fix user pk lookup
* rename migration
* add user and group page
* cleanup
* add hoverCard for user / owner / group render
* include owner_model in owner responses
* move user serializers to users
* add profile to list
* add brief serializer for profiles
* ensure profile is present in most apis
* extend rendered data
* store and observe langauge in profile
* reduce unneeded complexity
* enable access to full profle (including internal fields) in me serializer
* move theme to a single object
* persist theme settings
* fix radius lookup
* remove debug message
* fix filter
* remove unused field
* remove image fields
* add setting to control showing profiles
* fix settings
* update test
* fix theme reload
* Add contact UI
* Add profile edit screen
* fix test
* Add testing for user theme panel
* fix var name
* complete coverage of theme
* Add test for new pages
* make test more reliable in strict mode
* remove step
* fix ref
* add verbose names
* fix used setting
* extend tests
* fix permissions
* fix lookup
* use lookup to enuse ursls stay valid
* update migrations
* Add position field
* fix permissions
* Fix font size in location column (#9230)
* [WIP] Background reports (#9199)
* Update report generation progress
* Add shim task for offloading report printing
* Cleanup
* Add detail endpoints for label and report outputs
* Display report printing progress in UI
* Implement similar for label printing
* Reduce output for CI
* Add plugin slug
* Bump API version
* Ensure it works with machine printing
* Fix null comparison
* Fix SKU link
* Update playwright tests
* Massively reduce log output when printing
* handle null values in existing db data
* fix test to pass at max character limit again
---------
Co-authored-by: Matthias Mair <code@mjmair.com>
Co-authored-by: Oliver <oliver.henry.walters@gmail.com>
Co-authored-by: Joe Rogers <1337joe@users.noreply.github.com>
* Add user profile
* fix choice set
* ensure primary_group is valid
* add missing migrations
* fix tests
* merge migrations
* add migration test
* add new model to ruleset
* ensure changed to the m2m conenction also validate primary grups
* move signals
* fix import?
* patch user language through
* use set methods correctly
* bump api
* refactoring to make debugging and extending easier
* fix dum recurrsion problem
* fix user pk lookup
* rename migration
* add user and group page
* cleanup
* add hoverCard for user / owner / group render
* include owner_model in owner responses
* move user serializers to users
* add profile to list
* add brief serializer for profiles
* ensure profile is present in most apis
* extend rendered data
* store and observe langauge in profile
* reduce unneeded complexity
* enable access to full profle (including internal fields) in me serializer
* move theme to a single object
* persist theme settings
* fix radius lookup
* remove debug message
* fix filter
* remove unused field
* remove image fields
* add setting to control showing profiles
* fix settings
* update test
* fix theme reload
* Add contact UI
* Add profile edit screen
* fix test
* Add testing for user theme panel
* fix var name
* complete coverage of theme
* Add test for new pages
* make test more reliable in strict mode
* remove step
* fix ref
* add verbose names
* fix used setting
* extend tests
* fix permissions
* fix lookup
* use lookup to enuse ursls stay valid
* update migrations
* Add position field
* fix permissions
* Force label printing to background worker
* Refactor "check_reload" state of machine registry
- In line with plugin registry
- More work can be done here (i.e. session caching)
* Better handling of call_plugin_function
* Wrapper for calling machine function
* Use AttributeError instead
* Simplify function offloading
* Check plugin registry hash when reloading machine registry
* Cleanup
* Fixes
* Adjust unit test
* Cleanup
* Allow running in foreground if background worker not running
* Simplify call structure
* Add type hints for name, address, expired, and active
* Add nullable to various fields that return null in the test dataset
* Removed nullable type hint, add default boolean value instead of nullable
* Bump schema version
* Add schema version notes, add localized tags for doc string
---------
Co-authored-by: Oliver <oliver.henry.walters@gmail.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
* reduce diff
* reduce diff
* fix import
* add aria label to make more reliable
* make cap match
* ensure that confirm only works with valid inputs
* leave error for non-matching pwd to API
---------
Co-authored-by: Oliver <oliver.henry.walters@gmail.com>
* Remove 'url' field from serializers
- Not used in any official client
- Inconsistent use across models
* Bump API version
* Adjust unit tests
* Fix API version
* use ref pattern on PO duplicate
* use ref patterns on duplicate for other types of orders
* revert unintentional change to pre-commit
* add playwright tests
---------
Co-authored-by: Oliver <oliver.henry.walters@gmail.com>
* Remove legacy SettingsContentMixin
- Only used for rendering into old UI
- No longer useful
* Refactor path for NavigationMixin
* Fix typos
* Fix borked import
* Harden playwright tests
* Refactor search drawer
- Allow result groups to collapse
* Add tooltip
* Fix menu position
* Navigate through to complete list of results
* Refactor table headers
* Add index pages for SupplierPart and ManufacturerPart models
* backend: allow split search by company type
* Fix panel naming bug
* Fix model URLs
* Split company results by company type
- Allows better routing to results list
* Remove debug msg
* Fix 'button within button' issue
* Additional playwright tests
* Fix logic for adding items to SalesOrder
* Same thing for purchase orders
* Update serializers.py
Revert typo fix
- Otherwise, we need to do an API bump and the PR can't be back-ported!
* Fix default values for pricing override
* Fix broken calculation for sale pricing
- Was previously excluding COMPLETED orders
* Fix for PricingOverviewPanel
* Fix for InvenTreeMoneySerializer
- Numbers should be represented as numbers!
* Front-end wrangling too
* Fix unit test
* Revert to alpine3:20 / postgres:16
* Remove old hack
- No longer needed as we are using python 3.11
* Update package requirements for devcontainer
Also fixes some docker warnings from the alpine Dockerfile
* Specify SITE_URL
* Reduce log output during docker image testing
* move version tests
* factor out read_license_file
* add testing for license file
* ignore special case when we create the schema
* extent no found api tests
* extend info view tests
* try fixing test?
* fix?
* test user create api
* measure impact of removing bom import
* remove dead code
* Revert "measure impact of removing bom import"
This reverts commit bb31db05e3.
* remove dead code
* remove plugin tags that were made for CUI
* add testing for filters
* add test for config delete
* add more api tests
* adjust tests
* fix test
* use superuser
* adapt error code
* Add test for https://github.com/inventree/InvenTree/pull/9077
* add mixin_available mixin
* make check_reload more observable
* test check_reload too
* test clean_barcode
* reset after testing
* extend datamatrix testing
* debug print
* fix assertation
* [UI] Settings to contrl editing of "completed" orders
Fixes#8976
* only check for completness if locking is enabled
* also lock lines
* allow editing of status to get an order "free" again
* adjust breadcrumbs to include current item
* Add last breacdrumb to various pages
* Add user settings for last breadcrumb
* add breacrumbs to company subpages
* use getDetailUrl instead
* set default
* change description
* fix styles
* fix merge
* rename to camelCase
---------
Co-authored-by: Oliver <oliver.henry.walters@gmail.com>
* Add new global setting
* Convert to base currency on receipt
* Fix total price rendering in PO table
* Fix for tasks.py
* Update .gitignore
- Ignore auto-generated files
* Update docs
Improved documentation for pricing/currency support
* Updates
* Fix caching for default currency
- Now managed better by session caching
* Add unit test for new feature
* Playwright test fixes
* Validate copying of media files
* Validate media files
* Adjust playwright setup
* Allow multiple attempts to fetch release information
* Tweak unit tests
* Revert changes to .gitignore file
- Just trying stuff at this point
* Add debug msg
* Try hard-coded paths
* Remove debug prints
* Abs path for database
* More debug
* Fix typos
* Revert change to db name
* Remove debug statements (again)
* Cleanup playwright tests
* More test tweaks
---------
Co-authored-by: Matthias Mair <code@mjmair.com>
* Better handling of request object in serializers
* Pass request object through
- Required to extract user information
* Strip column header during import
- Prevent mismatch due to whitespace
* Fix for "minimum stock" field
* Fix for part serializer
* Extract default values on import
* Remove outdated migration message
* Bump API version
* Refactor label printing
- Move "print" method to template
- Allows for internal calls to printing (e.g. plugins)
* Generate dummy request
- Required to trick WeasyPrint
* Refactor reportprinting
* Add timeout for unit test
* More unit tests
* Tweak unit test
* Updated comment
* remove preference-view
* bump api
* move tag test to seperate file
* extend tests
* make tags more robust
* Revert "remove preference-view"
This reverts commit b95aaaff3c.
* Revert "bump api"
This reverts commit 8fc29186cf.
* more coverage
* re-enable test
* even more tests
* just ignore it
* moa test
* crude debugging
* more debugging
* adapt test
* reduce debugging
* fix test_part_image
* remove TemplatePrintBase
* fix style
* fix code
* fix check
* ensure none exsisting image to not cause issue
* reduce tags more
* remove splashscreen usage
* fix test
* reintroduce inventree_logo
* re-add splashscreen fnct
* re-add needed tag
* re-add date renderer
* simplify away user specific stuff - there are no users in reports
* and simplify a bit more
* increase coverage
* fix format
* and more coverage
* fix render_date
* more coverage
* Extend api to also include customize functions
* [FR] Re-Implement customize options
Fixes#8818
* re-implement header
* add splashscreen customisation
* make simpler
* fix rendering
* bump api
* add admindocs
* add tag export command
* add filter export
* switch to yaml
* upload meta info to artifacts
* format workflow file
* fix creation command
* keep all artifacts in schema repo
* fix namespace
* use one command for export
* include tags and filters in docs
* change default filename
* fix call
* fix itteration syntax
* clean up rendering
* fix formatting
* simple escape
* Unit test for SalesOrder data migration
* make field checks more stable
* Adjust migration strategy
* Fix for data migration
* Simplify login test for playwright
---------
Co-authored-by: Matthias Mair <code@mjmair.com>
* Middleware for caching against request
* Create helpers for setting / getting session cache
* Settings objects check session cache first
* Ensure setting is removed from session cache when updated
* Cleaner implementation
* Fix cache cleanup
- ONLY allow access if there is a request object
- Ensure cache is deleted once session is over
* Skip plugin registry reload check
* Add 'start_date' to Build model
* Add to serializer
* Add filtering and ordering
* Update BuildOrderTable
- Add new column
- Add new filtering options
* Add sanity check for start_date
* Add 'start_date' field to BuildOrder form
* Update docs
* Bump API version
* Tweak unit testing
* Display 'start_date' on build page
* Refactor UI tests
* Fix for 'date' field in forms
* Add additional unit tests
* Fix helper func
* Remove debug msg
* Increase upload timeout for attachments
* Increase default API timeout
- To account for distant connections
* Use longer timeout when uploading files
* Debug for RTD testing
* Adjust commit extraction
* Cleanup debug output
* Include more vars in output
* Move debug output to top of file
* Add useful link
* Slight tweak to <DetailsTable>
* Responsive layout for user settings
* Make menu links responsive
* Update <FactCollection />
* Update part pricing panels
* Adapt details column count
- Based on element width
* Pin minimum size of thumbnail
* Cleaner implementation
* Revert again
- Use element size, not screen size
* Add expiry on line item receive from PO
* add backend test
* reset pre-commit
* increment inventree api version
* use None as default expiry date
* check global setting STOCK_ENABLE_EXPIRY
* check for default expiry in line item receive
* use dayjs
---------
Co-authored-by: Matthias Mair <code@mjmair.com>
* Add 'created_by' field to order API endpoints
* Add 'created_by' filter
* Allow ordering by 'created_by' field
* Update UI tables
- Show "Created By" column
- Column sorting
- Column filtering
* Cleanup order detail pages
* Bump API version
* Refactor table filters
* Fix BuildOrderTable filters
* Create ApiContext provider
* Utilize new context
* Remove api from global context
* Refactor <InvenTreeTable>
- No longer need hard-coded API constant
* Refactor useInstance hook
* Refactoring
- QueryCountDatshboardWidget
- NotesEditor
- RenderInstance
* Refactor multiple tables
* Fix typos
* Refactor useFilters hook
- Allow plugins to use this hook!
* Further refactoring
* Refactor API forms
* Cleanup context routing
* Fix provision order
* Remove use_x_forwarded_port setting
- As per the docs, this is ignored in favour of use_x_forwarded_host
- So, is not being used anyway
* Add note on x_forwarded_host option
* Add warning message if SITE_URL not provided
* Add support for SECURE_PROXY_SSL_HEADER
* Update configuration template file
* Update SITE_URL docs
* Remove line
* Re-add use_x_forwarded_port
* Docs tweak
* Improve wording
* Fix broken link
* Update page permissions
- Add permission check to <InstanceDetail>
- HIde breadcrumbs and tree for part
- Hide breadcrumbs and tree for stock
* Additional permissions checks
* Enhancements for "custom state" form
- More intuitive form actions
* Improve back-end validation
* Improve table rendering
* Fix lookup for useStatusCodes
* Fix status display for SockDetail page
* Fix SalesOrder status display
* Refactor get_custom_classes
- Add StatusCode.custom_values method
* Fix for status table filters
* Cleanup (and note to self)
* Include custom state values in specific API endpoints
* Add serializer class definition
* Use same serializer for AllStatusView
* Fix API to match existing frontend type StatusCodeListInterface
* Enable filtering by reference status type
* Add option to duplicate an existing custom state
* Improved validation for the InvenTreeCustomUserStateModel class
* Code cleanup
* Fix default value in StockOperationsRow
* Use custom status values in stock operations
* Allow custom values
* Fix migration
* Bump API version
* Fix filtering of stock items by "status"
* Enhance status filter for orders
* Fix status code rendering
* Build Order API filter
* Update playwright tests for build filters
* Additional playwright tests for stock table filters
* Add 'custom' attribute
* Fix unit tests
* Add custom state field validation
* Implement StatusCodeMixin for setting status code values
* Clear out 'custom key' if the base key does not match
* Updated playwright testing
* Remove timeout
* Refactor detail pages which display status
* Update old migrations - add field validator
* Remove dead code
* Simplify API query filtering
* Revert "Simplify API query filtering"
This reverts commit 06c858ae7c.
* Fix save method
* Unit test fixes
* Fix for ReturnOrderLineItem
* Reorganize code
* Adjust unit test
* Add <ChangePassword> page
* Rename Set-Password to ResetPassword
* Add unit testing
* Ensure user is properly logged into page
* Update playwright tests
* Small tweaks
* Re-add html account base
Fixes#8690
* fix base template
* override dj-rest-auth pattern to fix fixed token model reference
* pin req
* fix urls.py
* move definition out to separate file
* fix possible issues where email is not enabled but UI shows that registration is enabled
* fix import order
* fix token recovery
* make sure registration redirects
* fix name change
* fix import name
* adjust description
* cleanup
* bum api version
* add test for registration
* add test for registration requirements
* Remove django-import-export requirement
* Update settings.py
* Clean up admin files
* Remove much of the old BOM exporter framework
* Add note for future self
* Remove dead unit test files
* Remove defunct AjaxView classes
* Remove InvenTreeRoleMixin
* Update docs for data import
* Export docs
* Refactor form fields
- Allow error message to be passed through via field definition
- Return error information to onFormError
* Fix debounce issue for text fields
* Fix for useForm hook
* Badge fix
- Fix badge rendering for SalesOrderShipment
* Cleanup unit test
* Use LABEL_ENABLE and REPORT_ENABLE settings in PUI
* Cleanup base.html
- Should reduce db hits slightly
* Remove defunct homepage settings
* Cleanup old settings
* Adjust unit test
* Remove custom context processors
- Only merge after 0.17.0 release
- Remove code which injects custom context variables into CUI requests
- Not needed for new API-based PUI code
- Speeds up requests - remove unnecessary DB hits
* Remove broken import
* Remove custom staticfile processing
- No longer needed as CUI is gone
* Start documentation chapter for plugin tests
* Added env variables to the doc
* Fix style errors
* Further style bugs
* Reformat environment variables
* Reformat environment variables
* Add comments from wolflu05
* Add text to the intro
* Added first example the plugin unit test
* Addred line it function
* Typo
* Typo
* Typo
* API fixes for SupplierPart
- Move API filtering into SupplierPartFilter class
- Correct field annotation for detail view
* Add "in stock" and "no stock" badges to SupplierPart detail
* Update details
* Annotate 'on_order' quantity for SupplierPart
* Add "has_stock" filter to SupplierPart API
* Improve API query efficiency
* Add 'has_stock' filter to table
* Update <SupplierPartDetail>
* Bump API version
* New pic
* Marked external icon in picture
* Added a comment on database creation for unittest
* Update contributing.md
---------
Co-authored-by: Oliver <oliver.henry.walters@gmail.com>
* Increase query limit
* Add "quantity" field to ReturnOrderLineItem model
* Add 'quantity' to serializer
* Optionally split stock when returning from customer
* Update the line item when splitting
* PUI updates
* Bump API version
* Add unit test
* Allow transfer of items independent of status marker
* Update test
* Display errors in stock transsfer form
* Add option to set status when transferring stock
* Fix inStock check for stock actions
* Allow adjustment of status when counting stock item
* Allow status adjustment for other actions:
- Remove stock
- Add stock
* Revert error behavior
* Enhanced unit test
* Unit test fix
* Bump API version
* Fix for playwright test
- Added helper func
* Extend playwright tests for stock actions
* Set status when returning from customer
* Fix default customer for return order table
* Set status when receiving items against a ReturnOrder
* Bump max query time for currency endpoint
* Bump API version
* Add 'stocktake_before' and 'stocktake_after' filters for StockItem API
* Enable new filters for StockItemTable
* Update CUI table filters
* Add more date filter options for orders
* Add date filters to BuildList
* Update BuildOrderTable filters
* Add more order date filters
* Cleanup PurchaseOrderFilter code
* Implement more PUI table filters
* Add "Completion Date" column to PurchaseOrderTable
* Update ReturnOrderTable
* Add 'text' option for TableFilter
* filter state management
* Bump API version
* Sorting for table filters
* Add playwright tests for stock table filtering
* Playwright updates
- Add some helper functions for common operations
* Refactoring for Playwright tests
* add PO wildcard default setting
* Revert "add PO wildcard default setting"
This reverts commit 6cc577fa73.
* use custom format spec for "wildcard with default" reference pattern
* add wildcard with default to docs
* add test for wildcard with default
* Append plugins dir to pythonpath
* Error handling in plugin helpers
* Install plugin into "plugins" directory
* Use plugins dir when installing from plugins.txt
* Implement removal of plugin from plugins dir
* Remove the dist-info dirs too
* Cleanup
* Catch errors
* Specify plugin location for CI
* Remove plugins.txt support
* Improve regex for plugin matching
* Revert "Remove plugins.txt support"
This reverts commit 0278350351.
* Remove PLUGIN_ON_STARTUP support
* Better error catching for broken packages
* Cleanup
* Revert "Cleanup"
This reverts commit a40c85d47d.
* Improved exception handling for plugin loading
* More logging
* Revert uninstall behaviour
* Revert python path update
* Improve check for plugins file
* Revert check on startup
* Better management of plugins file
- Use file hash to determine if it should be reloaded
* Fix docstring
* Update unit tests
* revert gh env
* No cache
* Update src/backend/InvenTree/plugin/installer.py
Co-authored-by: Matthias Mair <code@mjmair.com>
* Use hashlib.file_digest
* Remove --no-cache-dir
* Revert "Use hashlib.file_digest"
This reverts commit bf84c8155e.
* Add note for future selves
---------
Co-authored-by: Matthias Mair <code@mjmair.com>
* fix refreshInstance type and remove return
* Add seperate refresh function with promise as return
---------
Co-authored-by: Oliver <oliver.henry.walters@gmail.com>
* Add empty context menu
- For tables without "row actions"
- Show an "empty" menu
- For UX consistency across all tables
* Fix for playwright tests
- Recent changes to the demo dataset...
* Fix typo
* Fix for "installed in" display
- Allow "details" field to be passed custom params
* Add extra debug to link checking
* API: fix for StockTrackingList entry
* Display links for stock items in tracking entry table
* Generate absolute links for item renderers
* Revert "Generate absolute links for item renderers"
This reverts commit 878fba91d0.
* Bump API version
* Add playwright tests
* Add <PageTitle /> component
* Use useEffect to override hard-coded value
* Ensure page titles are tracked across the site
* Adjust unit tests
* Playwright test updates
* Tweak tests
* Update InvenTreeTable.tsx
Revert unused change
* Add level indicators and path to stock location dropdown
* Add level indicators and path to part category dropdown
* Updated stock location string to include location path
* Fix PUI form test (set location)
---------
Co-authored-by: Matthias Mair <code@mjmair.com>
* remove unneeded AjaxView usage
* add schema
* bump schema version
* make schema more acurate
* exclude not found view
* make script also axept base api
* Add new backend filters for BuildLine API
* PUI: Better display of part allocations against build orders
* Add 'order_outstanding' filter to SalesOrderLineItem API
* Add new table showing outstanding SalesOrder allocations against a part
* Update playwright test
* Cleanup
* Bump API version
* Add more table columns
* Tweak UsedInTable
* Another table tweak
* Tweak playwright tests
* Migration for SalesOrderAllocation
- Allow allocation against order with null shipment
* Enhaced query efficiency
* Further API cleanup
* Adjust serializer
* PUI updates
* Enable editing of allocation shipment
* Improve shipment filtering
* Add sub-table for salesorderlineitem
* Add helper method to SalesOrder to return pending SalesOrderAllocations
* Fix for CUI
* Update form for CUI
* Prevent SalesOrder completion with incomplete allocations
* Fixes for StockItem API
* Frontend refactoring
* Code cleanup
* Annotate shipment information to SalesOrder API endpoint
* Update frontend PUI
* Additional filtering for SalesOrderAllocation
* Bump API version
* Hide panel based on user permissions
* js linting
* Unit test fix
* Update playwright tests
* Revert diff
* Disable playwright test (temporary)
* View output from build table
* remove coupling of tests to cui
* all testing for PUI absolute urls
* remove overlapping test
* refactor middleware check
* move static things into global
* factor out test target
* re-add api exception
* keep using settings.js for now
* Adjustments to default template file
- Do not specify SAMESITE_COOKIE options by default
- Fallback to the values in settings.py
* Update config_template.yaml
* Add "active" filter to PurchaseOrderLineItem.part field
* Fix for allocation serial numbers to incoming items
* Validate serial numbers per line item
* Improved permission checking for data importing
- Permission checks on the imported model type
* Improved validation for DateField
* Ignore MissingRate errors
- Do not send these to sentry
* Improved permission checking for data importing
- Permission checks on the imported model type
* Improved validation for DateField
* Fix for unit test
* Refactor plugin components into <RemoteComponent />
* Clean up footer
* Allow BuildOrder list to be sorted by 'outstanding'
* Fix model name
* Update BuildOrderTable filter
* Add StockItemTable column
* Working towards new dashboard
* Cleanup unused imports
* Updates: Now rendering some custom widgets
* Define icons for model types
* Add icon
* Cleanup / refactor / delete
- Complete transfer of files into new structure
* Follow link for query count widgets
* Add some more widgets to the library
* Remove old dashboard link in header
* Remove feedback widget
* Bump API version
* Remove test widget
* Rename "Home" -> "Dashboard"
* Add some more widgets
* Pass 'editable' property through to widgets
* Cleanup
* Add drawer for selecting new widgets
* Allow different layouts per user on the same machine
* Fixes
* Add ability to *remove* widgets
* Add helpful button
* Add a keyboard shortcut
* Refactoring
* Add backend code for serving custom dashboard items
* Load dashboard items from plugins
* Tweak for dashboard item API query
- Refetch if user changes
- Tweak "loaded" value
- Prevent refetchOnMount
* Add message if no dashboard widgets are displayed
* Refactoring main navigation menu
- Group into sections
- Cleanup / consolidation
- General refactoring
* Remove playground
* Add backend field for storing dashboard layout
* Add extra type definitions for UseInstance
* Manual labels for builtin dashboard items
- Otherwise they will change with translation locale
* Shorten labels for more plugins
* Adjust DashboardMenu
* Reduce stored data
* Add widget filter by text
* Remove back-end settings
* Update playwright tests for dashboard
* Updated tests
* Refactor backend API for fetching plugin features
* Further fixes for back-end code
* More back-end fixes
* Refactor frontend:
- Custom panels
- Custom dashboard items
* Further backend fixes
* Yet more backend fixes
- Improve error handling
* Fix for custom plugin settings rendering
* Enable plugin panels for part index and stock index pages
* Cleanup
* Fix nav menu
* Update typing
* Helper func to return all plugin settings as a dict
* Update API version date
* Fix for UseInstancea
* typing fix
* Tweak layout callbacks
* Pass query parameters through to navigation functions
* Improve custom query display
* Add "news" widget
* Ensure links are prepended with base URL on receipt
* Update NewsWidget
* Bug fix
* Refactor template editor tests
* Refactor unit testing for test_ui_panels
* Unit test for dashboard item API endpoint
* Update comment
* Adjust playwright tests
* More playwright fixes
* Hide barcode scanning options if disabled
* Tweak dashboard widget
* Fix custom panel title
* Update documentation around UIMixin class
* Cleanup
* Additional docs
* Add icon def for 'error' ModelType
* Add error boundary to TemplateEditor component
* Fix so that it works with template editors and previews again
* Tweak error messages
* API unit test fixes
* Unit test fix
* More unit test fixes
* Playwright test tweaks
* Adjust error messages
* Add "destination" field to PurchaseOrder
* Add 'destination' field to API
* Add location to PurchaseOrderDetail page
* Display "destination" on PurchaseOrderDetail page
* Pre-select location based on selected "destination"
* Fix order of reception priority
* Auto-expand the per-line destination field
* Add "Purchase Order" detail to StockItemDetail page
* Bug fix in PurchaseOrderForms
* Split playwright tests
* Docs updates
* Bump API version
* Unit test fixes
* Fix more tests
* Backport to CUI
* Use PurchaseOrder destination when scanning items
* Prevent multiple background workers without global cache
* Documentation updates
- New page dedicated to InvenTree process stack
- Update links
- Consolidate information
* Update mkdocs.yml
* Fix for create_child_builds
- Account for concurrency between multiple worker processes
- Ensure db commits are atomic
- Add random delays between build creation
* Check for existing build order
* Initially force task off to background worker
* Revert force_async change
* Include actual model name in notification repot
* Include model_id in API
* Refactoring for NotificationDrawer
- Add error boundary
- Separate rendering func for individual entry
- Allow router navigation
- Better link introspection
- Add tooltip for notification description
* Add URL support for errors
* Allow navigation to an individual error in the admin center
* Updates
* Add rendering method for 'error' model type
* Add helpers methods for table row expansion
* Render a simplified "line item sub table"
- Akin to CUI implementation
- But like, better...
* Edit / delete individual stock allocations
* Improvements for BuildLineTable and BuildOutputTable
* Improvements for table fields
* Refactoring
* Refactor BuildLineTable
- Calculate and cache filtered allocation values
* Code cleanup
* Further fixes and features
* Revert new serializer field
- Turns out not to be needed
* Add playwright tests
* Bug fix for CUI tables
- Ensure allocations are correctly filtered by output ID
* Adjust CUI table
* Revert change to BuildItem API
- Requires "allocations" for build output table
- Probably can refactor this later
* Bug fix for BuildOutputTable in PUI
- Correct calculation for "fully allocated"
* Adjust annotations for serializer
* Bump API version
* Remove 'allocations' from BuildLineSerializer
- Expensive to have a "many" serializer automatically used
- Adjust existing tables accordingly
- Fetch on demand
* WIP: Add some unit tests
* Adjust BuildLine queryset annotation
- Multi-level annotation proves to be very expensive
- Reduce complexity, save a bunch of time on queries
- Remove 'total_allocated_stock' field
- Adjust API query filter
* Optimize query by deferring certain fields
* Further query refinements
* Bump API version
* Enforce lower case for model name checks
* Enhance settings validation
- Add support for "float" settings type
- Improve validation code and error handling
* Add 'group' to offload_task
- Make use of 'group' field in AsyncTask model
- Allows better db filtering
* Log error if low_stock check cannot be performed
* Ensure low-stock checks are performed by the background worker
* Change encoding of arguments to 'notify_low_stock_if_required'
- Pass part ID, not part instance
- Safer, but requires DB hit
* Fix typo
* Fix to allow tests to run
* Fix 'allocated' queryset annotation for SalesOrderLineItemSerializer
* Add 'allocated' filter for SalesOrderLineItemList
* Allow ordering by 'allocated' and 'shipped' values
* Updated unit testing
* Bump API version
* Update playwright tests
* Add "IPN" column to build order allocated stock table
* Allow sorting and searching by IPN
* Handle allocations where allocated but required == 0
* Add "no info available" message to part scheduling
* Adjust PartSchedulingTable
* Icon fix
* Add "latest serial number" information to PartDetail page
* Cleanup code for serial-number placeholder in forms
* Logic fix for displaying non-unity pack quantity
* Fix description field on SupplierPart page
* Fix duplicate table column
* Create simply PartSalesPanel component
* Updates
* Add API endpoint for SalesHistory
- And serializers
- Basic, needs lots of work still
* Fix for PartDetail page
* SalesOrder page updates
* More page updates
* Update API endpoint
* Backend improvements
* add API endpoint
* Front-end rendering
* Make frontend generic
* Fix for CompanyTable
* Make back-end API more generic
* More API improvements
* Implement history for purchasing
* API / UI fixes
* Remove debug statements
* Support file download
* Add endpoint for build order history
* Implement UI for build order history
* Revert backend
* Revert frontend
* Remove unsed imports
* Cleanup permission checks
* Bump API version
* Improve token management code
- Do not request token if other cookies are unavailable
- Do not fetch user data if token is unavailable
- Prevents connection error logs
* Fix for CompanyTable - onRowClick
* Error handling for plugin.increment_serial_number
* Improve error handling for plugin validation functions
* Add Part.get_next_serial_number method
- Simplify call for incrementing
* ValidationMixin: add "part" to increment_serial_number func
* Pass part information through to serial number functions
* Fix circular imports
* Allow "get_latest_serial_number" to use plugin system
* Better working example for plugin sample
* Update SampleValidatorPlugin
* Fix indent
* Add code comment
* Cleanup code logic
* Revert previous commit
* Update unit tests
* BuildOrderTable: Show variants
- Allow filtering of build orders by part variant
* Add "include_variants" filter for SalesOrder table
- A bit tricker!
* Add "include_variants" filter to PartPurchaseOrdersTable
* Enable filtering ReturnOrder by "part" attribute
* Add similiar functionality for SalesOrderAllocation
* Add similar filter for BuildAllocation table
* Add migration file
* Add "index" page for build orders
- Make consistent with other pages
- Allow plugin panels here
- Prepare for future development
* Rearrange URLs for "manufacturing"
- Provide same format as other order types
- Allow for other sub-pages under "manufacturing" in the future
* Fix breadcrumbs
* Adjust playwright tests
* Pass more information through in redirect after login
- Include query parameters in redirect
* InvenTreeTable: Update filters based on URL query parameters
* Add button to remove custom URL query filters
* Refactor "update_serial_number" method
* Refactor serial number validation
- Query is much more efficient now
- Does not have to check each serial number individually
- Makes use of existing Part class method
* Refactor creation of multiple stock items
* Fix for singular item creation
* Refactor serializeStock method:
- Push "rebuild tree" to background worker
- Use bulk_create actions
* Refactor createion of serialized build outputs
* Prevent 1+N DB hits
* Cleanup
* Cleanup
* Reinstate serial number checks
* Add limit for serial number extraction
* Fix cache config
* Revert cache settings
* Fix for unit tests
* Playwright tests
* Bug fix
* Force False cookie mode in testing
* Revert aria-label for PanelGroup items
- No longer works as expected with playwright locators
* Fix playwright vtest
* Further updates
* Playwright test adjustments
* Remove duplicate locator
* Add "in_stock" attribute to StockItem API
* Add "unavailable" badge to StockDetail page
* Hide stock actions menu for "unavailable" stock
* Fix renderer for StockItemTable
* refactor stock table display
* Add 'date' type details field
* Disable "expiry" information on StockDetailPage
* Icon fix
* Bump API version
* Refactor AttachmentPanel into common component
* Remove unused imports
* Add very basic implementation for SalesOrderShipmentDetail page
* Refactor NotesPanel into common component
* Fetch customer data
* Add some placeholder actions
* Updates for shipment detail page
* Adjust SalesOrderShipment API
* Add badges
* Implement API filter for SalesOrderAllocation
* Display allocation table on shipment page
* Add placeholder action to edit allocations
* Improvements for SalesOrderAllocationTable
* Improve API db fetch efficiency
* Edit / delete pending allocations
* Fix for legacy CUI tables
* API tweaks
* Revert custom attachment code for SalesOrderShipment
* Implement "complete shipment" form
* Allocate stock item(s) to sales order
* Fixes for TableField rendering
* Reset sourceLocation when form opens
* Updated playwrigh tests
* Tweak branch (will be reverted)
* Revert github workflow
* Adjust samesite cookie behaviour:
- In DEBUG mode, turn off entirely
- Allow False value (note: *not* a string)
- Force insecure cookie in DEBUG mode
* Change default value in config file template
* Update docs
* Adjust COOKIE_SECURE based on SAMESITE setting
* Translation fixes
- Simplifies translations strings
- Removes some similar duplicate strings
- Reduces passing of tokens into translation
* Adds script for detecting close matches in translation source strings
* Updates for custom script
* Detect duplicate strings (ignoring case)
* Fix some duplicate backend strings
* Fix duplicate strings in frontend
* Fix more duplicate strings
* Run check_source_strings in CI
* Fixes for unit tests
* Fix another broken string
* Revert some changes
* Fix f-string
* Fix old migration files
* Reduce front-end duplication
* Further updates
* Revert change
* Updates
* Refactor serial number allocation
* Refactor API query
Note: This should be further improved, not to automatically return *all* allocation data
* Push expensive operations off to background worker
* Bump API version
* add more admin testing
* fix assertations
* add test for importer admin
* Add tests for https://github.com/inventree/InvenTree/pull/7164
* add common/attachment test
* fix test
* add tests
* remove unused definition - the view is read only
* Revert "remove unused definition - the view is read only"
This reverts commit 4cad8d16f3.
* more tests in report
* Update tests.py
* make lookup dynamic
* make report assertation dynamic
* add migration test
* extend validation plugin tests
* disable flaky test
* Add test for barcode/uid transition
* test reverse migration
* cleanup new test
* remove empty action
* split and refactor API tests
* refactor test
* Add test for error conditions
* fix double entry
* more migration tests
* also test no history
* fix assertation
* add another migration test
* fix typo
* fix manufacturer filter
* test more filters
* even more filter tests
* move top level test to right place
* add todos for tests that could be more expressive
* add test for checking duplicate serials
* ignore cautious catches
* Add helper function for constructing URL to static file
* Fix PluginListTable
- Allow uninstallation of plugin
- Allow deletion of plugin config
* Move helper method to InvenTreePlugin class
* Bump API version info
* Handle simple string error message
* Add playwright test for form validation
* Render stock unit price / total value
* Fix for TextField:
- Prevent unnecessary value change
- This was removing the field error
* Add playwright test for supplier form validation
* Improve checks if "installed items" panel should be displayed
* Adds ability to exclude a given field from form data
* Implement form for installing stock item
* Add placeholder for uninstall action
* Add "note" field
* Add PUI form to uninstall stock item
* Add PUI form to serialize existing stock item
* Remove debug statement
* Ensure that stock item trees are rebuilt correctly after serialization
- No idea how this has not been detected previously
* Add unit test to ensure child_items annotation works as expected
* Add link to parent item in stock detail page
* Refactor to use new placeholder hook
* Enhancements for stock item form
* Edit stock item from "build output" table
* Rearrange menu items
* Fix build order line complete action
* Fix for other modals
* Cleanup dead code
* Reload build details after output state change
* Logic fix for plugin table
* Bump API version
* Adds hook for generating placeholder serial numbers
* Add playwright tests
* Remove unused imports
* Cleanup playwright tests
* Add server-side context for panel plugin rendering
* Add "context" to PluginContext type
* Pass server context through to client-side rendering
* Bump API version
* initial implementation to let plugins provide custom ui features
* provide exportable types
* refactor ref into renderContext to make it more generic and support template preview area ui plugins
* rename 'renderContext' -> 'featureContext' as not all features may render something
* allow to specify the function name via the source file string divided by a colon
* Bump api version
* add tests
* add docs
* add docs
* debug: workflow
* debug: workflow
* fix tests
* fix tests hopefully
* apply suggestions from codereview
* trigger: ci
* Prove that coverage does not work
* Revert "Prove that coverage does not work"
This reverts commit 920c58ea6f.
* potentially fix test???
* Refactor "stocktake" chart
- Format date axis correctly
- Better tooltips
* Fix datatable queries
- Prevent potential infinite loop
* Fix tooltip for BOM table
- Bug due to '.' char in names
* Do not reassign parameter
* Another fix
* Check global config value
* Cleanup tooltip for BOM pie
* Edit and refresh pricing from panel
* Placeholder part scheduling panel
* Add API endpoint definition
* Add defined serializer to scheduling endpoint
* Refactor add_schedule_entry
* Fix field type
* API tweak
* Render scheduling data
* Make links clickable
* Correctly account for dates in the past
* Cleanup table
* Bump API version information
* js linting
* Add model for recording barcode scan results
* Add "admin" interface for new model
* Add API endpoints for barcode scan history
* Add global setting to control barcode result save
* Add frontend API endpoint
* Add PUI table in "admin center"
* Add API filter class
* Enable table filtering
* Update model definition
* Allow more characters for barcode log
* Log results to server
* Add setting to control how long results are stored
* Table updates
* Add background task to delete old barcode scans
* Add detail drawer for barcode scan
* Log messages for BarcodePOReceive
* Add warning message if barcode logging is not enabled
* Add "context" data to BarcodeScanResult
* Display context data (if available)
* Add context data when scanning
* Simplify / refactor BarcodeSOAllocate
* Refactor BarcodePOAllocate
* Limit the number of saved scans
* Improve error message display in PUI
* Simplify barcode logging
* Improve table
* Updates
* Settings page fix
* Fix panel tooltips
* Adjust table
* Add "result" field
* Refactor calls to "log_scan"
* Display result in PUI table
* Updates
* Fix typo
* Update unit test
* Improve exception handling
* Unit test updates
* Enhanced unit test
* Ensure all database key config values are upper case
* Refactor some playwright helpers
* Adds playwright test for barcode scan history table
* Requires some timeout
* Add docs
* Refactor API endpoint for duplicating line items from a purchase order
- Previously was "hidden" (undocumented)
- Cleanup / refactor code
- Now matches part duplication options
- Generic implementation supports all order types
* Update forms
* Refactor line item duplication
* Implement front-end support for return orders
* Enable duplication of sales orders from PUI
* Bump API version
* Adds basic API endpoint for requesting plugin panels
* Split PanelType out into own file
* Placeholder for a plugin panel loaded dynamically
* Add some dummy data for the plugin panels
* Example of plugin panel selection based on page
* Expose some global window attributes
* Add new setting
* Disable panel return if plugin integration is not enabled
* Update hook to auto-magically load plugin panels
* Allow custom panel integration for more panel groups
* Remove debug call
* Tweak query return data
* async fn
* Adds <PluginPanel> component for handling panel render
* Cleanup
* Prevent API requests before instance ID is known
* Pass instance data through
* Framework for a sample plugin which implements custom panels
* offload custom panels to sample plugin
* Load raw HTML content
* Expand custom panel rendering demo
* Adjust API endpoints
* Add function to clear out static files which do not match installed plugin(s)
* Update static files when installing plugins from file
* Update static files when installing or uninstalling a plugin
* Update static files on config change
* Pass more information through to plugin panels
* Prepend hostname to plugin source
* Pass instance detail through
* Cleanup code for passing data through to plugin panels
- Define interface type
- Shorten variable names
* Update docs requirements
* Revert "Update docs requirements"
This reverts commit 63a06d97f5.
* Add placeholder for documentation
* Fix imports
* Add a broken panel which tries to load a non-existent javascript file
* Render error message if plugin does not load correctly
* Only allow superuser to perform plugin actions
* Code cleanup
* Add "dynamic" contnt - javascript file - to example plugin
* Remove default values
* Cleanup unused code
* PanelGroup updates
* Cleanup hooks for changing panel state
* More work needed...
* Code cleanup
* More updates / refactoring
- Allow dynamic hiding of a particular panel
- Pass target ref as positional argument
- Better handling of async calls
* Documentation
* Bump API version
* Provide theme object to plugin context
* Adjust sample plugin
* Docs updates
* Fix includefile call in docs
* Improve type annotation
* Cleanup
* Enable plugin panels for "purchasing index" and "sales index" pages
* Fix for plugin query check
* Improvements to panel selection
- Code refactor / cleanup
- Ensure that a valid panel is always displayed
- Allow plugin panels to persist, even after reload
* Playwright test fixes
* Update src/frontend/src/hooks/UsePluginPanels.tsx
Co-authored-by: Lukas <76838159+wolflu05@users.noreply.github.com>
* Update src/frontend/src/components/plugins/PluginPanel.tsx
Co-authored-by: Lukas <76838159+wolflu05@users.noreply.github.com>
* Update src/frontend/src/components/plugins/PluginContext.tsx
Co-authored-by: Lukas <76838159+wolflu05@users.noreply.github.com>
* Fix context
* Add more context data
* Docs updates
* Reimplement local state
* Fix mkdocs.yml
* Expose 'colorScheme' to plugin context
* Define CustomPanel type definition
* Add unit testing for user interface plugins
* Add front-end tests for plugin panels
* Add new setting to plugin_settings_keys
* Adds helper function for annotating build line allocations
* Improve query efficiency
- Especially around unit testing
- Ensure all settings are generated
- Do not auto-create settings during registry load
* Improve query efficiency for build order operations
* Reduce max query count for specific test
* Revert query count limit
* playwright test updates
---------
Co-authored-by: Lukas <76838159+wolflu05@users.noreply.github.com>
* Simplify user theme settings
* Cleanup
* Fix permission on user list endpoint
* Update AccountDetailPanel to use modal form
* Update components
* UI updates
* Implement default colors
* Display more user details (read only)
* Add specific "MeUserSerializer"
- Prevent certain attributes from being adjusted
* Add <YesNoUndefinedButton>
* Allow role checks to be bypassed for a given view
- Override the 'get_permission_model' attribute with None
* Enable 'GET' metadata
- Required for extracting field information even if we only have 'read' permissions
- e.g. getting table columns for users without write perms
- use 'GET' action when reading table cols
* Add info on new user account
* Fix boolean expression wrapper
* Ruff fixes
* Adjust icon
* Update unit test
* Bummp API version
* Table layout fix
* Add API endpoint for all defined units
Fixes#7858
* render all units in API
* bump API
* Add display for all units
* remove logging
* fix types
* ignore favicon errors
* fix for new pint version
* add tests
* prove against units that are not defined
* append trailing slash to url
* make pagination disableable again
* Improve logic for automatically updating part pricing
* Simplify logic
* Update unit tests to ensure pricing flows upwards
* Unit test update
* Add unit tests for handling of "multi level" BOM pricing
* ADjust unit tests
* Improve efficiency of operation
* Adjust testing for pricing
- Only allow pricing updates in testing if TESTING_PRICING flag is set
* Tweak when pricing updates are performed
* More tweaks
* Fix dynamic translation of ModelType labels
- Cannot be stored as a const, as the locale changes dynamically
- Return translated labels via lookup function
* Tweak inline rendering functions
* Remove references to old setting
- Now offloaded to plugins
* Remove REPORT_ENABLE_TEST_REPORT setting
* Cleanup
* Add new boolean setting to control whether reports are attached automatically
* Attach generated report to model instance
* Update unit testing
* Bump API version
* [PUI] Add placeholder action
- "Allocate Serials" action for sales order
- No functionality yet
* Implement form for allocating by serial numbers
* Improve validation of serial numbers in back-end
* Trim serial number string
* Namespaces for invoke tasks
Fixes#7852
* adjust various places that call re-namespaced tasks
* use full invoke command
easier for future refactors
* fix call name
* move worker to int
* adapt calls in tasks
* fix changed path
* ignore localhost links
* Avoid using internal names
* Support for thematic breaks
- Use the '-' character
* Improve "read only" mode
* Refactor markdown notes editor
- Revert back to simplemde
- Remove package dependencies for mdxeditor
- Fix up buttons / preview / save sequencing
* Update playwright tests
* Cleanup toolbar buttons
* Enable "side by side" mode
* Update UI text
* Make dropdowns better recogniseable
Closes https://github.com/invenhost/InvenTree/issues/98
* change to button with section
* only draw border if needed
* allign drowdowns in header
* use light instead of subtle
* refactor option dropdowns to reduce duplications
* add test for asset redirect
* fully cover spa_bundler
* test token api
* check without beeing authed
* not possible to be reached - no cover
* remove unneeded except
* fully test group apis
* move ignore
* add tests for admin site
* add full admin testing
* use output as ref
* ignore admin edge-case
* test display name settings
* refactor admin test
* add more admin testing
* fix tests assertation
* fix assertations
* add test for importer admin
* remove old test for function that will not be re-added for now
see https://github.com/inventree/InvenTree/pull/8018#discussion_r1734011050
* Add stock detail with wrong pk
* add a few stock tests
* Fix restriction for PartTestTemplate
- limit_choices_to should be "testable", not "trackable"
- ref: https://github.com/inventree/InvenTree/pull/7888
* Add migration file
* Fix validation check
* Fix API filter
* Fix for test fixture
* Fix another test
* Fixture data
* Fix comment
* More fixes
* More fixes
* Moar fix plz thx
* Add Link/Unlink Barcode action
Fixes#7920
* remove unneeded imports
* remove duplication
* simplify
* add testing
* refactor type
* wait for reload to add coverage
* Add warning if custom barcode is used
* Add Image based assign
* fix action button size
* fix selection to prevent wrapping
* use left section for button
* Refactor to seperate Input
* Add comment when not scanning
* Fix punctuation
* factor scan area out
* fix readonly arg
* make BarcodeInput more generic
* make button optional
* reduce code duplication by using BarcodeInput
* remove unneeded abstraction
* add table buttons to build line table
* Add deallocate row action
* Restrict row actions
* Add functionality to 'deallocate' stock from build order
* Implement 'auto-allocate'
* Table column cleanup
* Refactor code into new hook:
- Helper function to update a set of selected rows
- Callback function to remove row
* Refactor existing forms to use new hook
* Fix for RelatedModelField
- Handle callback for null value
* Memoize each field instance
* Cleanup dead code
* Define interfac for TableField row properties
* Handle processing of nested errors
* Pass form controller through to table field rows
* Pass row errors through to individual table rows
* Allow Standalone field to render errors
* Allow allocation against build lines
* Adjust quantity value when stock item is changed
* Fix issue related to field name
* Add "available" filter
* Add "remove row" button
* Add field for selecting source location
* Filter out consumable items
* Adjust form success message
* Revert changes from https://github.com/inventree/InvenTree/pull/7965
* Add error handling for wrong key
* Add e2e test case for error condition
Fixes#7964
* Better code code / flow
* [BUG] Order of states in schema descriptions is not stable
Fixes#7977
* Prevent template adjustment
* Prevent template from being edited
* Fix 'attachment' field for StockItemTestResultSerializer
- Allow 'null' value
* Bump API version
* Add custom user defined states
* make tests more reliable
* fix list options
* Adapt version
* do not engage if rebuilding
* remove unneeded attr
* remove unneeded attr
* fix enum imports
* adapt cove target
* Add status_custom_key to all other serializers
* fix serializer method
* simplify branching
* remove unneeded imports
* inherit read_only status from leader field
* Add more tests
* fix tests
* add test for function
* refactor for easier testing
* move test to seperate class
* Add options testing
* extend serializer
* add test for all states and refactor to reuse already build functions
* use custom field in PUI too
* reset diff
* style fix
* fix comparison
* Add test for str
* test color exceptions too
* remove user state from tracking
* Add intro from model fields too
* update docs
* simplify implementation
* update tests
* fix name
* rename test
* simplify tags and test fully
* extend test to machine status
* move logic for response formatting over
* extend api response with machine status
* ensure only direct subclasses are discovered
* test for length of total respone too
* use new fields on PUI too
* fix test assertion with plugins enabled
* also observe rendering in filters
* Add managment endpoints and APIs
* Add contenttypes to PUI renderes
* use filteres instead
* fix import order
* fix api route definition
* move status choices to serializer
* fix lookup
* fix filtering
* remove admin integration
* cleanup migration
* fix migration change
* cleanup code location
* fix imports
* Add docs for custom states
* add links to custom status
* Add "create_child_builds" field to BuildOrder serializer
- only when creating a new order
- write only field
* Update serializer field
* Add placeholder task for creating child build orders
* Add field to PUI forms
* Auto-create build orders as required
* Bump API vresion
* Add documentation
* Update unit tests