* Enhanced filtering for parameter templates
- Allow filtering by model ID as well as model type
* Enhanced filtering for ParameterTemplate
- Required for the parameteric data tables
- Enable filtering by base model ID
- Enable filtering by related model ID
* Bump API version
* Remove outdated comments
* Fix typo
* Remove debug statement
* Added unit tests
* Playwright tests
* Fix unit test
* Bump requirements
* Revert
* Prevent migration check if performing DB update operations
* Prevent settings write during data imports
* Prevent exchange rate update during migration processes
* Allow exchange rate updates during tests or shell session
* invoke command updates
- wait for db before migrating data
- improve task state reporting
- early return from isGeneratingSchema
* Disable warning message (for now)
* Fix typo
- This caused large delay when restoring data
* Remove debug statement
* Add warning message if isGeneratingSchema called falls through unexpectedly
* add better tracing through the frontend
* extend allowed headers
* add endpoint to end the trace
* end traces correctly in backend
* end trace
* early cop-out if not tracing is enabled
* Update API version link for v447
* Add "install_into_detail" to BuildItem serializer
* Enhance the "resolveItem" function
* Add "StockColumn" renderer
* Fix output column for BuildAllocatedStockTable
* Replace column in stock item table
* More column refactoring
* Bump API version
* Add InvenTreeOutputOption descriptions
* Prefetch for better API performance
* Updated playwright testing
* Additional filtering options for stock list
* Fix ordering for stock table
* Ordering fix for build order table
* Ordering for supplier parts and manufacturer parts
* SalesOrderLineItem: Order by IPN
* ReturnOrderLineItem table:
- Order by part name
- Order by part IPN
* Update API version to 451
Increment API version to 451 and update changelog.
* Add playwright tests for column sorting
* Add backend tests for API ordering
---------
Co-authored-by: Matthias Mair <code@mjmair.com>
* Data migrations for StockItemTracking
- Propagate the 'part' links
* Enable filtering of stock tracking entries by part
* Enable filtering by date range
* Display stock tracking for part
* Table enhancements
* Bump API version
* Display stock item column
* Ensure 'quantity' is recorded for stock tracking entries
* Add new global settings
* Adds background task for deleting old stock tracking entries
* Docs updates
* Enhanced docs
* Cast quantity to float
* Rever data migration
* Ensure part link gets created
* Improved prefetch for API
* Playwright testing
* Tweak unit test thresholds
---------
Co-authored-by: Matthias Mair <code@mjmair.com>
* Allow part queryset to be passed to 'perform_stocktake' function
* Add new options to perform_stocktake
* Allow download of part stocktake snapshot data
* API endpoint for generating a stocktake entry
* Simplify code
* Generate report output
* Dashboard stocktake widget
- Generate stocktake snapshot from the dashboard
* Force stocktake entry for part
* Add docs
* Cleanup docs
* Update API version
* Improve efficiency of stocktake generation
* Error handling
* Add simple playwright test
* Fix typing
* add more debugging and remove possible problematic inheritance
* remove unused functions
* remove extra conversion
* ensure cirrect type is used
---------
Co-authored-by: Oliver <oliver.henry.walters@gmail.com>
* [API] Allow sorting of test results by start/finish time
- Bring API in line with UI expectation
* Bump API version
* Allow ordering by "test_station" field
---------
Co-authored-by: Matthias Mair <code@mjmair.com>
* Added "allocated_lines" to the backend and frontend tables
* Remove incorrectly added UI panels from Sales Order Detail
* bump api version
---------
Co-authored-by: Oliver <oliver.henry.walters@gmail.com>
* small refactor
* add inventree vendor extension
* bump api version
* Add control over schema to settings
* add more details
* disable config as requested
* adjust 3.14 diff
* cleanup diff
* add docs on the new feature
* revert bumping of api version - there is no cahnge by default
* feat: matrix testing
* remove unneeded args
* remove hashes for now
* remove require-hashes for now
* try manually fixing cffi for now
* remove wrong cache syntax
* remove cache for now
* move to 3.14?
* make version specific install req
* re-add hashes
* Revert "remove require-hashes for now"
This reverts commit 7a7e12130a.
* also compile requirements-dev
* move more install commands
* fix generation setting
* more logging
* remove cache exception
* remove cffi fix
* remove hash inforcement for now
* remove dev for now
* default to 3.14 to val
* Revert "default to 3.14 to val"
This reverts commit 7a28e46604.
* fix constraints
* remove pin requirement from plugins.txt
* do not use uv for now
* do not use uv for now
* fix test file format
* revert small change
* use 3.14 for benchmarks
* keep tests on 3.11
* use invoke for install
* try 3.14 for performance testing again
* prolong time for slower CI on 3.14
* adjust dep versions
* Keep performance ci on 3.12
Updated the Python version in the QC checks workflow.
* match custom status tracking entry in edit
* add old_status to stockitemtracking
* test old_status tracking
* use vars for readability
* split custom status test
* move custom status from fixture to setup
* add old status to tracking table
* fallback to logical status if custom removed
* avoid shared deltas reference in loop
* track old status in stock add/remove/count/transfer
---------
Co-authored-by: Matthias Mair <code@mjmair.com>
* Add a explicit confirm when MFA Enforcing is turned on
https://github.com/inventree/InvenTree/issues/10754
* add error boundary for the case of a login enforcement
* ensure registration setup is redirected to
* fix auth url
* adjust error boundary
* update test
* be more specific in enforcement flow
* ensure we log the admin also out immidiatly after removing all mfa
* small cleanup
* sml chg
* fix execution order issues
* clean up args
* cleanup
* add test for mfa change logout
* fix IP in test
* add option to require an explicit confirm
* adapt ui to ask before patching
* bump API version
* reduce noise in docker
* refactor path infos
* add more info during local frontend build
* add frontend info during release build
* ignore "special" import
* change var name
* Improve prefetching
* Cache user groups for permission check
* Use a GET request to execute search
- Prevent forced prefetch
- Reduce execution time significantly
* Fix group caching
* Improve StockItemSerializer
- Select related for pricing_data rather than prefetch
* Add benchmarking for search endpoint
* Adjust prefetch
* Ensure no errors returned
* Fix prefetch
* Fix more prefetch issues
* Remove debug print
* Fix for performance testing
* Data is already returned as dict
* Test fix
* Extract model types better
* Matmair/issue10740 (#497)
* reduce noise in docker
* refactor path infos
* add more info during local frontend build
* add frontend info during release build
* Revert "Matmair/issue10740 (#497)" (#498)
This reverts commit 415c52813b.
* bum pre-commit and update to new formatting rule
* fix style
* Add parameter support for StockLocation model
* Serialize parameters for stock location
* Frontend support
* Bump API version
---------
Co-authored-by: Matthias Mair <code@mjmair.com>
* replace individual metadata endpoints with a generic endpoint an a lot of permanent redirects
* remove more names
* reduce duplication more
* remove now unneeded tests
* update remaining tests to use urls
* bump api
* follow redirects in tests
* reduce new fncs
* fix redirect setup
* fix test
* update to fix schema collissions
* fix permission check
* simplify and fix lookup
* clone fork for now
* add changelog entry
* update api version date
* remove temporary change to python lib
* update docs
* Matmair/issue10740 (#497)
* reduce noise in docker
* refactor path infos
* add more info during local frontend build
* add frontend info during release build
* Revert "Matmair/issue10740 (#497)" (#498)
This reverts commit 415c52813b.
* use walltime
* switch measure mode
* dummy change
* dummy change
* ensure npm works
* pin needed version
* split out performance test to also use walltime
* roll back split, is too slow
---------
Co-authored-by: Oliver <oliver.henry.walters@gmail.com>
* Only look at query_params for top-level serializers
- Nested serializers should *not* look at query params
* Prevent all fields when exporting data
* Add unit test for large dataset export
* Fix code
* Pass through via context rather than primary kwarg
* Fix for file download
* Ensure request is passed through to the serializer
* ensure query params are passed through when exporting data
* Fix code comment
* Fix for unit test helper func
* Increase max export time
* feat(backend): add performance test
ref #11002
* feat(backend): add performance test (#486)
* chore(deps): bump the dependencies group across 1 directory with 2 updates (#11003)
* chore(deps): bump the dependencies group across 1 directory with 2 updates
Bumps the dependencies group with 2 updates in the /src/backend directory: [django-q2](https://github.com/GDay/django-q2) and [sentry-sdk](https://github.com/getsentry/sentry-python).
Updates `django-q2` from 1.8.0 to 1.9.0
- [Release notes](https://github.com/GDay/django-q2/releases)
- [Changelog](https://github.com/django-q2/django-q2/blob/master/CHANGELOG.md)
- [Commits](https://github.com/GDay/django-q2/compare/v1.8.0...v1.9.0)
Updates `sentry-sdk` from 2.46.0 to 2.47.0
- [Release notes](https://github.com/getsentry/sentry-python/releases)
- [Changelog](https://github.com/getsentry/sentry-python/blob/master/CHANGELOG.md)
- [Commits](https://github.com/getsentry/sentry-python/compare/2.46.0...2.47.0)
---
updated-dependencies:
- dependency-name: django-q2
dependency-version: 1.9.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: dependencies
- dependency-name: sentry-sdk
dependency-version: 2.47.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: dependencies
...
Signed-off-by: dependabot[bot] <support@github.com>
* fix style
---------
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Matthias Mair <code@mjmair.com>
* Rearrange python package installs in are metal setup (#11005)
* Reorder pip installation steps in bare metal setup
* Reorder pip installation steps in bare metal setup
* remove unused lines
* Fix docs formatting (#11008)
* Remove prefetch_related from parametric data filter (#11007)
- Not required as we do not process the parameter fields in python
* [refactor] Generic status API (#11009)
* Fix docs formatting
* [refactor] cache custom states
- Generic state API endpoint executed query for each state type
- We can run a single database query and cache these in memory
- Reduces query time by ~50%
* [refactor] Build list (#11010)
- Prefetch project_code
- Annotate parameter data
* Improve the documentation installation instructions. (#11011)
Co-authored-by: Mitch Davis <mjd@afork.com>
* [refactor] Improve primary_address annotation for Company API (#11006)
* Refactor primary_address annotation
- Remove SerializerMethodField
- Better cache introspection
* Allow address detail to be optional
* Refactor address caching
* Fix primary_address annotation
* Remove "address_count" field
- Pointless annotation which is not used anywhere
* Update API version
* Tweak docs page
* Tweak unit tests
* feat(backend): add performance test
ref #11002
---------
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Michael <michael@buchmann.ruhr>
Co-authored-by: Oliver <oliver.henry.walters@gmail.com>
Co-authored-by: Mitch Davis <mjd+github@afork.com>
Co-authored-by: Mitch Davis <mjd@afork.com>
* add oidc perm
* fix run setup
* add gitignore
* pin action
* enable DB for test
* patch test detection
* move test argument into tasks
* seperate performance testing into own step
* add automigration
* update test
* Increase MAX_QUERY_TIME to 60 seconds
* use newer python for better prerformance / measurement options
* skip plugin install step
* add debug step
* add debug stmt
* make version import safe
* fix command
* more debugging
* move import
* rollback changes
* do full install
* rollback skip_plugins too
* hide version
* new debug try
* add more debug
* try 3.13
* try reinstalling the cffi
* reinstall cffi?
* reset debug
* rollback debug steos
* add initial tests
---------
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Michael <michael@buchmann.ruhr>
Co-authored-by: Oliver <oliver.henry.walters@gmail.com>
Co-authored-by: Mitch Davis <mjd+github@afork.com>
Co-authored-by: Mitch Davis <mjd@afork.com>
* Improve prefetch fields for API
* Cache ContentType queryset for getModelsWithMixin
- Called a LOT of times for an options request
- Store the list in the session cache
- Much faster than redis - and expires after the session is complete
* Skip optional prefetch for options requests
* Custom implementation of DjangoModelPermission
- Cache the queryset against the view
- Prevents multiple hits for OPTIONS request
- Saves > 100ms on /stock/ options request
* Automatic prefetch of related fields for enable_filter
- Allows us to *not* prefetch fields (expensive) when they are not going to be used
- Enables re-usable components for common detail fields
* Refactor "project_code_detail" filter into common component
- Automatically apply correct prefetch fields
* Refactor 'parameters' annotation
- add 'enable_parameters_filter' function
- Prefetch parameters only when needed
- Refactor / consolidate code
* Refactor SupplierPartSerializer
- Make fields switchable
- Ensure correct prefetch_related
* Refactor serializer for ManufacturerPart
* Refactor BuildSerializer
* Refactor PurchaseOrderSerializer
* Refactor SalesOrderSerializer
* Refactor ReturnOrderSerializer
* Remove debug statements
* Tweaks
* Simplify custom filterable fields
* Bump API version
* Fix for data export
* Additional unit tests
* Remove unused "prefetch_func" option
* Refactor PurchaseOrderLineItemList
* Refactor SalesOrderLineItemList
* Refactor ReturnOrderLineItem
* Cleanup "pretty_name"
* Fix for build list
* Refactoring StockItem API endpoint
- Needs significant work still
* Refactoring for BuildLineSerializer
* Keep all optional fields when exporting data
* Improve "UserRoles" API endpoint
- Prefetch roles
- Prevents significant number of db hits
* Prefetch Parameter API list
* Bug fix for exporting logic
* Specify InvenTreeOutputOption
* Optional prefetch for primary_address
* Fix typing
* Fix unit test
* fixes for playwright tests
* Update Part API
- Improved prefetching
* Fix for prefetch
* Refactor primary_address annotation
- Remove SerializerMethodField
- Better cache introspection
* Allow address detail to be optional
* Refactor address caching
* Fix primary_address annotation
* Remove "address_count" field
- Pointless annotation which is not used anywhere
* Update API version
* Tweak docs page
* Tweak unit tests
* Fix docs formatting
* [refactor] cache custom states
- Generic state API endpoint executed query for each state type
- We can run a single database query and cache these in memory
- Reduces query time by ~50%
* 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
* Enable input controls in PDF reports
Modify options passed to WeasyPrint.
* Changelog update for issue #10969.
* Add usage notes for PDF forms to report docs (#10969).
* 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
* Update version checks:
- Add error code for old python version
- Fix min python version in docs
- Various spelling fixes in docs
* Fix docs link
* Revert change to docs version string
* Bug fix
* 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>
* Fix for currency functions
- Prevent database access until after the 'common' app has loaded
* Add decorator to selectively ignore warnings
* Add reference to PR
* Fix variable assignment
* Use functools.wraps
* Add wrapper for loading machine registry
* Move decorator to ready.py
* Add missing code
* Set backup values to match default currency codes
* Bump API version
* [plugin] Add printing delay to sample machines
- Useful for testing
- Default is zero
* Add backup_value to MachineSetting.get_setting
* Fix call to machine.get_setting
* Fix for printing logic
* Simplify code
* 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
* Bug fix for getMediaUrl
- Proper check for file type
- Fix "fully_qualified_url" for Attachment model
* Add unit test
* Fix typo
* Fix unit test
---------
Co-authored-by: Matthias Mair <code@mjmair.com>
* Additional checks for virtual parts in sales order process
* Prevent allocation against virtual parts
* Fix order of operations
* Adjust part form fields based on selections
* Prevent order locking
* Updated playwright tests
* Add unit test
* Fix for setting custom status
* Fix for setting custom status when receiving stock items
* Allow caching for set_status
* Updated code and unit tests
* Auto-fill supplier parts in order wizard
* Copy supplier part SKU from order parts wizard
* Add "on_order" filter to BuildLine table
* Allow ordering by production and ordering quantities
* Allow specification of purchase price
* Bump API version
* Adjust UI testings
* feat(backend): bump to 5.2 lts / python 3.11
This will give us support till 2027-10 (PEP 664)
* bump dependencies
* fix dflt version
* remove 3.9 precaution
* changes for 5.2
* changes for py 3.10
* debug command
* lower crypto again
* another lowering
* fix version string
* lower minimum version to 3.11
* update refs
* fix text
* reaking: remove now unsupported OS
* disable break
* remove temp changes
* fix ruff call
* fix remaining ruff warnings
* remove old arg
* lower allauth reqs
* replace old method
* fix issue with args passing beeing depreceated
* add changelog entries
* bump dependencies a bit further
* fix broken image init for now
might need a refactor
* fix another test
* refactor image name lookup
* mroe refactoring
* ensure str does not cause an issue
* update referenced function
* fix cal sig
* simplify method and add test
* refactor
* ignore wrong typings
* fix deprecated feature
* simplify
* ensure image tests do their job
* simplify
* re-add type check
* fix test
* fix assertations - wonder how long this was broken
* bump to newer versions
* bump deps
* fix assertation
* simplify
* fix return type
* handle token (app access)
* reduce lookup amount
* add positive test again
* add poisitive test
* move out settings
* add tests for Check2FAMiddleware
* add test for auth_request
* add a reverse name for auth_request
* auth tests refactors
* move test
* disable check for things that do not trigger
* fix typing for python 3.9
* make names clearer and add comments
* finish tests
* fix call
* re-enable mfa test without the timing component
* cleanup helper
* ignore easy out
* ignore scenario that can not happen
* Add "Category" column to BOM Table
* Enable sorting by category in BOM table
* Add Category column to Buildline table
* Add Category filter to BuildLineTable
* Adjust queryset prefetch
* Bump API version and update CHANGELOG
* New report functions:
- create_currency: Create a new Money object
- convert_currency: Convert from one currency to another
* docs
* More checking on report tags
* Better formatting of report errors
* Add unit tests
* Remove error message
* Fix pathing for docs
* Add type hints
* Adjust unit tests
* Enhancement for metadata OPTIONS checks
- Handle case where custom `role_required` attribute is set
- Allows integration for plugin views not associated with an internal model
* Cleanup logic
* Cleaner handling of inputs
* Fix for frontend form:
- Fix typo in field
- Better option defaults
* Tweak part category delete form
* Add frontend tests
* remove duplicate template tag
* Add "multiplier" argument to render_currency
* Improve render_currency
- Enable conversion of non-money values to a Money instance
* Improve maths tags
- Convert values to Decimal
- Ability to cast result to different type
* Updated docs
* Improved feedback from maths tags
* Updated unit testing
* Improved rendering of printing errors
* Add extra test for render_currency tag
* Enfoce multiplier type
* Fix docstrings
* Improved error handling
* Remove defunct unit test
* Fix unit tests
* Add project code to line items
* Refactor AbstractOrderSerialiazer
* Refactor AbstractOrderLineItem serializer
* Refactoring for AbstractExtraLineSerializer
* UI elements for extra line item project code
* UI for ReturnOrderLineItems
* UI elements for SalesOrderLineItem
* UI elements for PurchaseOrderLineItem
* Docs updates
* Update API version and CHANGELOG
* Add "checked" column to SalesOrderStatus table
* Add API filter for "checked" status
* Add Checked / Not Checked badge
* Add actions to check / uncheck shipment
* Add modal for changing checked_by status
* Display checked_by user
* Tweak wording
* Bump API version
* Update CHANGELOG file
* Update docs
* Add new global setting
- Prevent shipment completion which have not been checked
* Test if shipment has been checked
* Updated unit tests
* Updated type hinting
(may as well while I'm here)
* Adjust shipment icon
* Add "order_outstanding" filter for SalesOrderShipment table
* Adds "shipment_address" attribute to the SalesOrderShipment model:
- Allows different addresses for each shipment
- Defaults to the order shipment address (if not specified)
* Add unit testing for field validation
* Update SalesOrderShipment serializer
* Edit shipment address in UI
* Render date on shipment page
* Improve address rendering
* Update docs
* Bump API version
* Update CHANGELOG.md
* Fix API version
* Remove 'project_code' from optional fields
- enable_filter overrides field options
- Field does not auto-describe as a related field any more
- Breaks front-end forms
* Unit tests
* Include fix for currency
- Ref: https://github.com/inventree/InvenTree/pull/10645
* Cleanup import
* Adjust unit tests
* move filtering of serializer fields out of functions into mixin
* fix def
* temp fix
* rollback rollback
* more adoption
* fix many serializer behaviour
* optimize mro
* set many serializer
* adjust default filtering
* fix import
* add missed field
* make can_filter suppport more complex scenarios:
- different filtername from fieldname
- multiple fields with one filtername
* fix removal
* fix schema?
* add missing def
* add test
* fix schema fields
* fix another serializer issue
* further fixes
* extend tests
* also process strings
* fix serializer for schema
* ensure popped values are persisted
* move test around
* cleanup
* simplify tests
* fix typo
* fix another test
* var tests
* disable additional tests
* make application of PathScopedMixin more intentional -> more efficient
* make safer to use with various sanity checks
* fix list serializer
* add option to ignore special cases
* generalize addition
* remove generalize addition
* re-add missing schema generation exception
* remove new duplication
* fix style
* adjust naming and docs, add typing to clean stuff up
* simplify more
* fix ref calc
* Add generic test for serializer
* enable query based filtering
* enable previously disabled filters
* test failure modes
* reduce diff
* make check more robust
* add more INVE-I2 checks
* improve check
* make check and test more robust
* enable controlling query parameters per field
* ignore in coverage
* Remove project_code filter from BuildSerializer
Removed project_code filter from BuildSerializer.
* fix style
* Revert "Remove project_code filter from BuildSerializer"
This reverts commit 504eff0fd7.
* Revert "fix style"
This reverts commit 8e31db95d3.
* [docker] Allow HTTPS port to be specified for Caddy proxy
* Fix naming collision for INVENTREE_WEB_PORT
* Push InvenTree version first
* Adjust Caddyfile
- Change backup server
* Fix docstring
* Tweak for site URL check:
- Ignore port if SITE_LAX_PROTOCOL_CHECK is set
- Invert logic for readability
* Additional checks for port mismatch
* Adjust middleware checks
- Allow for less strict checking of CSRF_TRUSTED_ORIGINS
* Slight refactor
* updated part api mixin and part serializer to include salepricebreaks when explicitly queried
* fixed bug in ApiForm that prevents form field value from updating correctly
* CreateSalesOrderLineItem form now automatically applies price break based on currency and quantity for a part
* bumped API version due to PartsList api price_breaks query param
* fixed incorrect field names
* Remove whitespace
* Increase database query limit from 20 to 25
* updated ApiForm to propagate false and 0 as values to their respective fields, updated ApiFormField to eagerly apply AdjustValue to apply adjustments when onChange does not fire (when the value does not truly change)
* updated pagination number check to a range instead of discreet values.
---------
Co-authored-by: Matthias Mair <code@mjmair.com>
Co-authored-by: Oliver <oliver.henry.walters@gmail.com>
* 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
* move filtering of serializer fields out of functions into mixin
* fix def
* temp fix
* rollback rollback
* more adoption
* fix many serializer behaviour
* optimize mro
* set many serializer
* adjust default filtering
* fix import
* add missed field
* make can_filter suppport more complex scenarios:
- different filtername from fieldname
- multiple fields with one filtername
* fix removal
* fix schema?
* add missing def
* add test
* fix schema fields
* fix another serializer issue
* further fixes
* extend tests
* also process strings
* fix serializer for schema
* ensure popped values are persisted
* move test around
* cleanup
* simplify tests
* fix typo
* fix another test
* var tests
* disable additional tests
* make application of PathScopedMixin more intentional -> more efficient
* make safer to use with various sanity checks
* fix list serializer
* add option to ignore special cases
* generalize addition
* remove generalize addition
* re-add missing schema generation exception
* remove new duplication
* fix style
* adjust naming and docs, add typing to clean stuff up
* simplify more
* fix ref calc
* Update django-dbbackup version
* Specify STORAGES option for dbbackup
* Add more backup configuration
* Support custom date formats
* Add connector options
* Extend functionality of invoke backup
* Add extra options for restore task
* Add invoke task for finding additional backups
* Small tweaks
* Add docs around backup / restore
* Fix typo
* Add example for GCS storage
* More docs
* 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>
* Add filters for manufacturer parts table
* Refactor <ManufacturerPartTable />
* Fix typo
* Additional filter options for StockList:
- Filter by ManufacturerPart ID
* Stock table view for ManufacturerPart
* Bump API version
* Adjust config template
- Don't hard-code cookie mode into template
- Revert to the "default" values (which are the same)
* [ui] better feedback on login error
- Show error code, at least
* Revert removed code
* Adjust playwright tests
* show warning text
* fix formatting
* try to gather site-url correctly
* protect envs that are set in the config
* raise issue if they appear
* prefer app setting over file config
* preserve setting if injected via envs
* Handle partial completion of build output
* Add 'quantity' field to BuildOutputComplete API endpoint
* Allow partial scrapping of build outputs
* Adjust column text
* Adjust "complete build output" form
* Change order of operations when completing build output
- Run validation checks *before* potentially splitting stock item
* Extract quantity from serializer
* Documentation
- Update screenshots
- Add note on partial completion
- Add note on partial scrapping
* Update CHANGELOG.md
* Update API version
* Add unit test for partial scrapping
* Tweak text
* Unit test for partial output completion
* Fix validation check for quantity field
* Adjust playwright tests
* add output options for PurchaseOrder, SalesOrder, and ReturnOrder endpoints
* add output options for PurchaseOrder, SalesOrder, and ReturnOrder endpoints
* add serializer context handling and update sales order fixture with additional line item
* bump API version to 398 and update output options tests for PurchaseOrder endpoint
* refactor(backend): move serializer context enrichtment to mixin
* cleanup other get_serializer instances
* add output options tests for SalesOrder and ReturnOrder detail endpoints
* fix typo
* fix api
---------
Co-authored-by: Silver <reza.sh.7798@gmail.com>
* Add serializer fields to fix missing return types in schema
* Bump api version
* Fix api version bump
---------
Co-authored-by: Matthias Mair <code@mjmair.com>
* add output options for PurchaseOrder, SalesOrder, and ReturnOrder endpoints
* add output options for PurchaseOrder, SalesOrder, and ReturnOrder endpoints
* add serializer context handling and update sales order fixture with additional line item
* bump API version to 398 and update output options tests for PurchaseOrder endpoint
* add output options tests for SalesOrder and ReturnOrder detail endpoints
* fix typo
---------
Co-authored-by: Matthias Mair <code@mjmair.com>
* feat: add output options to Stock API and corresponding tests
* feat: update API version text with recent refactor details
---------
Co-authored-by: Matthias Mair <code@mjmair.com>
* fix mysql apply order
* improve error message capabilites for InvenTreeAPITestCase
* Revert "fix mysql apply order"
This reverts commit ef6d9bd99d.
* fix message
* add output options for StockLocation and StockItemTestResult endpoints
* add output options tests for StockLocation and StockItemTestResult endpoints
* add filters for include_installed and stock_item in StockItemTestResultFilter; update tests for new filter options
* update stock test.py
* update api_version.py
* fix test_installed_tests
* Enhance error handling and add tests for stock_item and include_installed filters
---------
Co-authored-by: Oliver <oliver.henry.walters@gmail.com>
Co-authored-by: Matthias Mair <code@mjmair.com>
* refactor(api): cascade and category filters in PartList
* Refactor exclude and relate parts in PartFilter
* add output options for Part and BOM endpoints
* add NumericInFilter for excluding parts by ID and related parts
* refactor: clean up unused code and improve output options in API
* Bump API version to 395 and update changelog with recent endpoint refactors
* Fix formatting of API version history in api_version.py
* Update API version history dates in api_version.py
* Enhance NumericInFilter tests: add handling for non-existent IDs, empty strings, and invalid inputs
* feat: add output options for BuildLine and BuildItem endpoints
* enhance output options for BuildLine and BuildItem endpoints with detailed descriptions and tests
* update test
* .
* update API version to v394 and modify related build fixtures and tests
* create separate build_line.yaml fixture
* .
* roll back context in BuildLineMixin
---------
Co-authored-by: Matthias Mair <code@mjmair.com>
* Enhance Owner model filtering with optimized search and active status filtersI
* enhance output options for Group API endpoints and add tests for GroupDetail
* update api_version
* Fix "unallocated_quantity" calculation
- Take "consumed" quantity into account also
* Account for consumed quantity in:
- build.is_fully_allocated
- build.is_overallocated
* Additional unit tests
- Ensure the new calculations work properly
* Adjust API filter
* Try splitting query
* Another fix
* Try ExpressionWrapper
* Change order of operations?
* Refactor
* Adjust filtering strategy
* Change ordering
* Use Max wrapper
* Add comments
* refactor output options for SupplierPart endpoints
* Add output options schema generation and corresponding tests for SupplierPart
* Bump API version to 392 and update version history; remove unused parameters in SupplierPartMixin
* Update API version to 392 and adjust version history with new release date
* Enhance output options handling in SupplierPart API
---------
Co-authored-by: Matthias Mair <code@mjmair.com>
* fix(backend): simplify siteurl testing
* add multi-site test
* pass off site_url check if more than one trusted origin is set
* split up testing
* add temporary debug info
* fix test enviorment
* Add ty for type checking
* fix various typing issues
* fix req
* more fixes
* and more types
* and more typing
* fix imports
* more fixes
* fix types and optional statements
* ensure patch only runs if it is installed
* add type check to qc
* more fixes
* install all reqs
* fix more types
* more fixes
* disable container stuff for now
* move typecheck to seperate job
* try to use putput for path
* use env instead
* fix typo
* add missing install
* remove unclear imports - not sure why this was done
* add kwarg names
* fix introduced issue in url call
* ignore import
* fix broken typing changes
* fix filter import
* reduce change set
* remove api-change
* fix dict
* ignore typing errors
* fix more type issues
* ignore errors
* style fix
* fix type
* bump ty
* fix more
* type fixes
* update ignores
* fix import
* fix defaults
* fix ignore
* fix some issues
* fix type
* Update software version to 1.1.0 dev
Bump master branch to 1.1.0 dev version
* Update MAX_VERSION to '2.0.0' in version.py
---------
Co-authored-by: Matthias Mair <code@mjmair.com>
* remove unneeded helper
* remove unnecessary coverage
* ignore catch-all pervisions in app setup
* remove unused function
* this was replaced by get_model_permission_string
* Prevent virtual parts from being linked in a BuildOrder
* Hide "stock" tab for virtual parts
* Filter out virtual parts when creating a new stock item
* Support virtual parts in sales orders
* Add 'virtual' filter for BomItem
* Hide stock badges for virtual parts
* Tweak PartDetail page
* docs
* Adjust completion logic for SalesOrder
* Fix backend filter
* Remove restriction
* Adjust table
* Fix for "pending_line_items"
* Hide more panels for "Virtual" part
* Add badge for "virtual" part
* Bump API version
* Fix docs link
* add output filter to BuildItemFilter and optimize queryset retrieval
* add NumberOrNullFilter to handle filtering by numeric values or 'null'; update BuildItemFilter to use new filter and add tests for output filtering
* update api_version
* fix(tests): Add missing stock fixture to build tests
---------
Co-authored-by: Matthias Mair <code@mjmair.com>
* fix remove mfa task
* add test for command
* clean up after schema test
* add assert to esure authenticators are really present/removed
* simplify handler
* improve error message
* make more readable
* Add wrapper function for machine registry
* Decorate entrypoint functions
* Docstrings
* Fix for boolean setting
* Add playwright tests
* Use proper entrypoints
* Ensure settings are fetched correctly
* Prevent recursion of machine registry decorator
* Fix machine status display
* Enhanced warning msg
* Add simple machine sample printer
* Adds playwright tests for machine UI
* re-throw exception
* Define 'machine' plugin mixin class
* Adjust machine discovery
* Use plugin mixins for registering machine types and drivers
* Adjust unit test
* Remove plugin static files when deactivating
* Force machine reload when plugin registry changes
* Add plugins specific to testing framework
* Add test for plugin loading sequence
* Add session caching
- Significantly reduce DB hits
* Enhanced unit testing and test plugins
* Refactor unit tests
* Further unit test fixes
* Adjust instance rendering
* Display table of available drivers
* Cleanup
* ADjust unit test
* Tweak unit test
* Add docs on new mixin type
* Tweak machine overview docs
* Tweak playwright tests
* Additional unit test
* Add unit test for calling machine func
* Enhanced playwright tests
* Account for database not being ready
* fix remove mfa task
* add test for command
* clean up after schema test
* add assert to esure authenticators are really present/removed
* simplify handler
* Add field to "update" existing records
* Ensure the ID is first
* Prevent editing of "ID" field
* Extract db instance
* Bump API version
* Prevent edit of "id" field
* Refactoring
* Enhanced playwright tests for data importing
* Update docs
* Update src/backend/InvenTree/importer/models.py
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Update src/frontend/src/forms/ImporterForms.tsx
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Fix silly AI mistake
* Fix for table pagination
- Ensure page does not exceed available records
* Bug fix for playwright test
* Add end-to-end API testing
* Fix unit tests
* Adjust table page logic
* Ensure sensible page size
* Simplify playwright test
* Simplify test again
* Tweak unit test
- Importing has invalidated the BOM?
* Adjust playwright tests
* Further playwright fixes
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Adds "consumed" field to BuildLine model
* Expose new field to serializer
* Add "consumed" column to BuildLineTable
* Boolean column tweaks
* Increase consumed count when completing allocation
* Add comment
* Update migration
* Add serializer for consuming build items
* Improve build-line sub-table
* Refactor BuildItem.complete_allocation method
- Allow optional quantity to be specified
- Adjust the allocated quantity when consuming
* Perform consumption
* Add "BuildConsume" API endpoint
* Implement frontend form
* Fixes for serializer
* Enhance front-end form
* Fix rendering of BuildLineTable
* Further improve rendering
* Bump API version
* Update API description
* Add option to consume by specifying a list of BuildLine objects
* Add form to consume stock via BuildLine reference
* Fix api_version
* Fix backup colors
* Fix typo
* Fix migrations
* Fix build forms
* Forms fixes
* Fix formatting
* Fixes for BuildLineTable
* Account for consumed stock in requirements calculation
* Reduce API requirements for BuildLineTable
* Docs updates
* Updated playwright testing
* Update src/frontend/src/forms/BuildForms.tsx
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Update src/frontend/src/tables/build/BuildLineTable.tsx
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Add unit test for filters
* Add functional tests
* Tweak query count
* Increase max query time for testing
* adjust unit test again
* Prevent consumption of "tracked" items
* Adjust playwright tests
* Fix table
* Fix rendering
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Enhance CompanySerializer to use Prefetch for for better performance
* Refactor CompanySerializer to improve address handling and add schema fields
* implement changes suggested by joe
Co-authored-by: Joe Rogers <1337joe@users.noreply.github.com>
* Update src/backend/InvenTree/company/serializers.py
Co-authored-by: Joe Rogers <1337joe@users.noreply.github.com>
* Update src/backend/InvenTree/company/serializers.py
Co-authored-by: Joe Rogers <1337joe@users.noreply.github.com>
---------
Co-authored-by: Matthias Mair <code@mjmair.com>
Co-authored-by: Joe Rogers <1337joe@users.noreply.github.com>
* Enhance 'count_queries' helper
* Add threshold
* Update typing
* Better rendering
* Improve StockItem
- Make model operations more efficient
* improve with_mixin
- Cache config map against the session cache
* Refactor receive_line_item
- Pass multiple line items in simultaneously
- DB query optimization
- Use bulk_create and bulk_update operations
* Remove extraneous save call
* Fix for unit tests
* Fix return type
* Fix serializer return type
* Refactor part pricing updates
* UI tweaks
* Use bulk_create
* Refactor API and endpoints
* Bump API version
* Fix unit tests
* Fix playwright tests
* Remove debug msg
* Fix for table filter hover
* Adjust unit test
* Run full docker build if full_run specified
* Debugging
* Update migration test
* Fix migration test
* Fix typo
* Debug logging
* Add log info
* Disable the test in docker
* Remove debug prints
* Revert docker ci test
* Fix annotations/pagination on StockApi itemSerialize and BuildApi outputCreate
* Add (to schema) field to specify serial numbers on create for stock item
* Return list on StockItem creation
* Update api version
* Update test to expect list return when creating stock items
* Add note about breaking changes to api version
* Add handling for stockitem list return on creation
* Update api version
---------
Co-authored-by: Oliver <oliver.henry.walters@gmail.com>
Co-authored-by: Matthias Mair <code@mjmair.com>