* 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
* 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
* 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???
* 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
* 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
* 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 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
* Update function signature for 'validate_serial_number'
- Pass through stock item parameter
- Required if we want to exclude a particular item from that test
* Update documentation
* Docs fixes
* Add type annotations
* updated translation base
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
---------
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
* updated translation base
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
---------
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
* Add API bump
* [PUI] Add theme setting to navbar
Closes https://github.com/invenhost/InvenTree/issues/106
* Rename to the same as ColorToggle
* Change action text
Co-authored-by: @SchrodingersGat
* updated translation base
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
---------
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
* Add "testable" field to the Part model
- Default = False
- Determines whether a particular part can have tests defined against it
* Adds data migration to set default 'testable' state
* Update part serializers
* CUI: Update table filters
* PUI: Update tables and filters
* CUI: Update part detail page
* PUI: Update part detail page
* Update CUI
* Update build pages
* Update BuildLine serializer
* Bump API version
* Update docs
* Add 'testable' to fieldset
* updated translation base
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
---------
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
* Add helper func to check user permission against a given model type
* Validate bulk delete of attachments
- Check permissions against linked model type(s)
* Check permission when creating or editing an attachment instance
* Fix typo
* Fix AttachmentSerializer to allow editing
* Update unit tests accordingly
* Remove unused custom permission classs
* Bump API version
* updated translation base
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
---------
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
* updated translation base
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
---------
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
* Add new global setting
* Check if there are open children before completing a build
* Adds management command to export settings definition
* Fix settings export
* Extract settings data into documentation
* Add global settings spec
* User settings
* Revert strict mode
* Tweak unit test
* Remove unreachable code
* Always export settings first
* Remove unused macro
* Remove old images
* Re-add missing docs strings
* Tweak docs
* Remove unused import
* Create build order from sales order table
* Allow creation of child build order from build page
* Add production and purcahse order quantitres to sales order item serializer
* Bump API version
* Fix playwright test
* updated translation base
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
---------
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
* Add "ON_HOLD" status code for orders
* Add placeholder buttons for purchase order status change
* Adds hooks for introspecting status code enumerations
* Refactor status codes for import session
- Remove hard-coded values
* Refactor into <PrimaryActionButton />
* Cleanup
* more permission checks
* Add placeholder actions for SalesOrder
* Placeholder actions for ReturnOrder
* Placeholder actions for build order
* Actions for "return order"
* Update actions for return order
- Add "on hold" transition
* Implement transitions for SalesOrder
* Allow control over SalesOrderLineItemTable
* Implement PurchaseOrder actions
* Improve API query lookup efficiency
* UI cleanup
* CUI cleanup
* Build Order Updates
- Implement StateTransitionMixin for BuildOrder model
- Add BuildIssue API endpoint
- Add BuildHold API endpoint
- API query improvements
- PUI actions
* Increase timeout
* Bump API version
* Fix API version
* Fix sales order actions
* Update src/backend/InvenTree/order/serializers.py
Co-authored-by: Matthias Mair <code@mjmair.com>
* Adjust build filters
* PUI updates
* CUI refactoring for purchase orders
* Refactor CUI sales order page
* Refactor for return order
* Refactor CUI build page
* Playwright tests for build order
* Add playwright test for sales orders
* Add playwright test for purchase orders
* js linting
* Refactor return order page
* Add missing functions from previous commit
* Fix for "on order" badge on PartDetail page
* UI tweaks
* Fix unit tests
* Update version check script
* Fix typo
* Enforce integer conversion for BaseEnum class
* Unit test updates
- Includes improvement for equality comparison for enums
* Update documentation
---------
Co-authored-by: Matthias Mair <code@mjmair.com>
* Add placeholder for more sales order actions
* Add <SalesOrderShipmentTable />
* Allow filtering by date fields
* Add <ReturnOrderLineItemTable />
- Add label rendering for ReturnOrderLineItem
* Add placeholder actions
* Edit / delete / add line items for return order
* Fix for duplicate action
* Cleanup unused code
* Bump API version
* Update playwright tests
* Build allocation API updates
- Improve API query efficiency
- Add extra export fields to the BuildItemSerializer
* Remove commented code
* Improve query efficiency for BuildLine serializer
* Further improvements
* Improve StockList API endpoint
- Reduce from ~700ms to ~300ms with 250 results
* Improve query efficiency when fetching part parameter data
* Bump API version
* make tree searchable by pathstring
* fix related model field colors in dark mode
* remove unused import
---------
Co-authored-by: Oliver <oliver.henry.walters@gmail.com>
* Add new "ON_HOLD" status code to order models
* Update legacy migration for build status
- Pin it to the "live" build status codes
* Fix legacy migrations for order status codes
* Revert "ON_HOLD" status codes
- Just limiting this PR to cleanup
* updated translation base
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
---------
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
* Add limit to default location annotation
Limits the number of results from the default_location filter to 1
* Add unit test to verify annotation functionality
* Skeleton for "test results" panel on build detail page
* Generate table columns based on test templates
* Fill out test result table in build panel
* Fix for form submission with files attached
- Better determination of "hasFiles"
- Ignore undefined values
* Add modal form to create a new test result
* Add button for creating a new test result
* Fix for build output table
* Add extra API filtering options to BuildLine API endpoint
* Improve table rendering
* Adjust form fields
* Account for multiple test results
* Add "location" column
* Docs updates
* playwright tests
* Added test statistics
Fixed#5995
* Bump API version
* Fix javascript varible scopes
* Fix javascript exports
* Remove duplicated import
* Add files modified by the pre-commit scripts
* Move test statistics API urls to a separate endpoint
* Merge test-statistics urls
* Undo unrelated changes
* Formatting fix
* Fix API urls for test statistics in PUI
* Fix prefixing in test statistic functions
---------
Co-authored-by: Oliver <oliver.henry.walters@gmail.com>
* add plugin_static template tag
* don't load plugins for collectstatic anymore as they are now collected seperatly
* fix clear plugin staic files bug with nested folder path
* updated translation base
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
---------
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
* Included substitute IPN to BOM export
* Added Part Revision to BOM export
* removed trailing whitespace
* Update test_bom_export.py
Added Part Revision to test
---------
Co-authored-by: Matthias Mair <code@mjmair.com>
* Add permissions to group API
* factor out permission formatting
* add group permission details to UI
* add nicer accordions with permissions
* add group to models
* Add Admin button to change permissions
* add missing instance renderer
* turn off default view permission to everything
* add migration
* fix rule assigment
* Add now missing view permissions
* Adjust test for the now new default permission count
* add missing view permission
* fix permissions for search test
* adjust search testing to also account for missing permissions
* adjust to new defaults
* expand role testing
---------
Co-authored-by: Oliver <oliver.henry.walters@gmail.com>
* initial implementation of barcode generation using plugins
* implement short QR code scanning
* add PUI qrcode preview
* use barcode generation for CUI show barcode modal
* remove short qr prefix validators and fix short qr detection regex
* catch errors if model with pk is not found for scanning and generating
* improve qrcode templatetag
* fix comments
* fix for python 3.9
* add tests
* fix: tests
* add docs
* fix: tests
* bump api version
* add docs to BarcodeMixin
* fix: test
* added suggestions from code review
* fix: tests
* Add MinLengthValidator to short barcode prefix setting
* fix: tests?
* trigger: ci
* try custom cache
* try custom cache ignore all falsy
* remove debugging
* Revert "Add MinLengthValidator to short barcode prefix setting"
This reverts commit 76043ed96b.
* Revert "fix: tests"
This reverts commit 3a2d46ff72.
* Adjust caching key to be numeric for user
* Add strong usermodel to colortheme
* switch to using user model everywhere for colortheme
* re-enable ColorTheme tests
* fix call
* remove old migratin
* fix directory discovery
* updated translation base
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
---------
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
* Fix typo
* Adds new field to DataImportSession model
- field_filters
- Allows custom API field filters to be specified
* Update serializer
* Add button to import purchase order line items
* Fix instance renderer
* Make use of "filters" attribute
* Specify default currency for import
* Update serializer
* Bump API version
* Rename purchaseorderline -> purchaseorderlineitem
* Allow override of packaging field when receiving items against a PurchaseOrder
* Allow editing of batch code and packaging when transferring stock
* Bump API version
* Translate table headers
* [PUI] Update receive items form
* [PUI] Allow packaging adjustment on stock actions
* Hide packaging field for other actions
* JS linting
* Add 'note' field when receiving item against purchase order
* [CUI] implement note field
* Implement "note" field in PUI
* Comment out failing tests
* Add "field_overrides" field to DataImportSession model
* Adjust logic for extracting field value
* Add import drawer to BOM table
* Enable download of BOM data
* Improve support for hidden errors in forms
* Improve form submission on front-end
- Handle a mix of files and JSON fields
- Stringify any objects
* Update backend validation for data import session
- Accept override values if provided
- Ensure correct data format
- Update fields for BomItem serializer
* Add completion check for data import session
* Improvements to importer drawer
* Render column selection as a table
* Add debouncing to text form fields
- Significantly reduces rendering calls
* Fix for TextField
* Allow instance data to be updated manually
* Allow specification of per-field default values when importing data
* Improve rendering of import
* Improve UI for data import drawer
* Bump API version
* Add callback after bulk delete
* Update playwright test
* Fix for editRow function
* Expose batch code field to StockItemSerializerBrief
* Expose more fields to PartBriefSerializer
* Additional export fields to BuildItemSerializer
* Bump API version
* Fix playwright test
* Fix machine request pickeling
* fix precommit
* fix: shared state between workers and main thread for machine registry
* remove last usage of legacy PUI form framework to fix machine edit/delete modal
* reset cache before initialization
* update documentation
* fix: invalidating cache
* implement machine registry hash to check if a reload is required
* trigger: ci
* fix: request bug
* fix: test
* trigger: ci
* add clear errors and improve restart hook
* auto initialize not initialized machines when changing active state
* fix: tests
* Bump djangorestframework from 3.14.0 to 3.15.2 in /src/backend
Bumps [djangorestframework](https://github.com/encode/django-rest-framework) from 3.14.0 to 3.15.2.
- [Release notes](https://github.com/encode/django-rest-framework/releases)
- [Commits](https://github.com/encode/django-rest-framework/compare/3.14.0...3.15.2)
---
updated-dependencies:
- dependency-name: djangorestframework
dependency-type: direct:production
...
Signed-off-by: dependabot[bot] <support@github.com>
* fix req
* fix deps again
* patch serializer
* bump api version
* Fix "min_value" for DRF decimal fields
* Add default serializer values for 'IPN' and 'revision'
* Add specific serializer for email field
* Fix API version
* Add 'revision_of' field to Part model
* Add validation checks for new revision_of field
* Update migration
* Add unit test for 'revision' rules
* Add API filters for revision control
* Add table filters for PUI
* Add "revision_of" field to PUI form
* Update part forms for PUI
* Render part revision selection dropdown in PUI
* Prevent refetch on focus
* Ensure select renders above other items
* Disable searching
* Cleanup <PartDetail/>
* UI tweak
* Add setting to control revisions for assemblies
* Hide revision selection drop-down if revisions are not enabled
* Query updates
* Validate entire BOM table from PUI
* Sort revisions
* Fix requirements files
* Fix api_version.py
* Reintroduce previous check for IPN / revision uniqueness
* Set default value for refetchOnWindowFocus (false)
* Revert serializer change
* Further CI fixes
* Further unit test updates
* Fix defaults for query client
* Add docs
* Add link to "revision_of" in CUI
* Add playwright test for revisions
* Ignore notification errors for playwright
---------
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>
* fix possible access to None value
* fix possible access to empty valie
* fix possible access to empty value
* define exception
* remove old todo
* fix trigger on none
* merge condition
* remove empty object pattern
* fix typo
* fix usage of var
* add missing import
* use for of itterator instead
* use let instead of var
* move declaration to ensure logger is accessible
* Revert "remove empty object pattern"
This reverts commit 4701cc97ec.