* Optional 'locale' arg to format_money
- Allows override of system locale when generating reports
* Updated documentation
* Add unit tests
* Handle invalid locale
* Handle invalid locale
* Add new global setting to control currency locale in reports
* Use setting in reports
* Add CHANGELOG entry
* Further unit tests
* Add unit tests for new setting
* Update docs
* More docs
* Refactoring:
- Change REPORT_CURRENCY_LOCALE to REPORT_LOCALE
* Extend unit testing
* Refactor format_number
* Add unit tests for explicit format strings
* Update examples for format_date
* Updated unit tests
* Cleanup unit tests
* Fix more tests
* Adjust wording
* Remove global setting - simplify code
* Simplify unit tests
* Revert 'min_digits' to 'leading'
* Fix docs
* Refactor the render_currency function
- Move all functionality into report.py
* Cleanup duplicate code
* Updated docs
* Allow user to specify date_format
* Add support for 'leading' digits in render_currency
* Bug fix
* Fix unit test
* Add tests for "include_symbol"
* Hide expand icon for items without children
* Add searching to CategoryTree API
* Add "level" filter
* Automatically include parent tree when searching
* Include tree_id field
* Add search input to NavigationTree
* Add more API filters
* Load child nodes iteratively
* Fix dynamic loading of nodes
* Highlight selected item
* Include pathstring
* Fix insertion order
* Auto-expand to the selected ID
* Add "no results" message
* Refactor into generic components
* Expand to multi level
* Use async node loading functionality
* Add hovercard
* Implement same functionality for StockLocationTree API endpoint
* Adjust spacing
* Add connecting lines
* Add playwright test
* Bump API version
* Add CHANGELOG entry
* Update docs
* Update screenshot
* [API] Adjust permissions for machine restart
Can only be actioned by a staff user
* Fix import
* Wrong class
* Extend unit test
* Bump API version
* Update CHANGELOG
* Prevent double-save when creating an order
* Prevent double-save for BuildOrder
* More fixes
* Additional unit tests
* Revert code, remove create method against StockTrackingList
* Fix mixins
* Raise error on multiple matches
* add new field to handle lookup_field selection
* Add unit tests
* Update frontend
* Bump API version
* Ensure string-iness of lookup field
* Tighten API permissions
- Require authenticated user for NotFoundView
- Hide 'active_plugins' behind is_authenticated
* Patch permissions hole in GlobalSettingsPermissions
* Additional API unit tests
* Require auth for observability endpoint
* Add explicit permission for PluginAdminDetail
* Bump API version
* Update unit tests
* Revert changes
* Update data importer child permissions
- Row data
- Column data
* Add unit tests
* Cleanup session data after import is completed
* Further scope narrowing
* Adjust panel layout
* edit list on click
* Optionally fetch selection list items
* Display in DetailDrawer
* Fix component locations
* Refactor entry table
* Add new entry
* Disable if locked
* Only validate choices if provided via API
* Mark "choices" as read-only
* Prevent delete of locked items
* Add more API unit tests
* Bump API version
* Adjust unit tests
* Default include choices
* Updated playwright test
* Improve test robustness
* Add custom URL fetcher for PDF rendering
* Fix for report helper functions
* Use new fetcher
* Additional unit tests
* Add new setting to control remote URL fetching
* validate URLs against SSRF
* Add global setting to disable URL fetching entirely
* Update docs
* Fix capitalization
* Fix logging backend
* Update CHANGELOG
* Handle missing machine location
- e.g. if location PK is invalid or has been deleted
* Add spotlight action for machine management panel
* Add unit test for code change
* Enable in-column filtering for model type
* Enable sorting by label size
* Enable backend ordering
* Improve filtering for report template table
* Update API version
* Check model permissions for printing
* Add unit tests
* Prevent printing of disabled reports
* Updated unit test
* Adjust unit test for printing
* Update API and CHANGELOG
* Expose HMR plugin
* Expose function for localizing a plugin component
* Update npm version
* better docs
* Plugin provides i18n instance
* Expose HMR plugin on different path
* Bump version (again)
* Ensure HMR plugin is properly built
* Bump (again)
* Specify callback function
* Bump package version
* Improved docstrings
* Stricter type hinting
* Expose properties for column based filtering
* Adjust renderers
* Hide filter if name does not match
* Allow multiple filters on same column
* Better formatting
* Add filtering support for multiple tables
* Revert yarn.lock changes
* Fix date input props
* Updated column
* Add filter to PartTable
* Add playwright tests for new column filters
* Update CHANGELOG
* Updated docs
* Reduce padding
* Update more table filters
* More filter columns
* Adjust playwright test
* Simplify playwright test
* Robustify playwright tests
* Add some delay
* Add some buffer time
* Framework for overriding plugin settings
* Update serializer
* Prevent writing of plugin setting values
* Unit tests
* Update API version and CHANGELOG
* Update docs
* Vertical scrolling calendar view
* Add new setting to control calendar horizon
* Keep refetching data as user scrolss
* Adjust view based on configured setting
* Reduce padding
* Simplify calendar layout
* Docs tweak
* Split out display settings
* Adjust playwright test
* Reduce reliance on transient dialogs
* Add Tag API endpoints
* Enable filtering by model type
* Remove old tags filters against Part endpoint
* Add generic tags filter for filtering against tagged items
* Add API unit tests for the tags API endpoints
* Create generic mixin class for adding tags support
* Update existing tagged models
* Add tags to more model types
* Enable new tags API filtering for multiple models
* Add support for tag filtering in part table
* Update transfer table filters
* Add tags filter to more places
* Allow multiple values to be selected as filters
* Add a new 'tags' type form field
* Display tags on part page
* tags support for orders
* Add support for SalesOrderShipment
* build order
* Company support
* SupplierPart and ManufacturerPart
* support StockItem
* Enable tag filtering for attachments
* Make tagslist readonly
* docs
* Mark props as read only
* Update API version
* Update CHANGELOG
* force tags to be case insensitive
* Add playwright test for build order tags
* more playwright testing
* Fix docs link
* Fix for RenderInstance
- Do not call useNavigate within RenderInstance
- This breaks any plugins which try to use RenderInstance
- Pass navigate func through to <RenderInstance />
* Add playwright test for hover in forms
* Add translated plugin test
* Improve playwright tests
* Further unit test fixes
* Update docstring
* [bug] Various fixes
- Add get_api_url to EmailThread model
- Prevent setting creation during import
- Tweak BarcodeScanHistoryTable
* Tweak barcode history table tests
* Bump API version
* Add CustomStatusSerializerMixin
- Caches custom status values
* Add unit test for PurchaseOrder model
* Implement changes for StockItemSerializer
* Implement changes for BuildOrder
* Fix unit test
* Bump API version
* Add serializer field type hint
* Tweak task offloading
- Improved function splitting
- Remove call to eval
* Read-only ScheduledTask admin
- Prevent admin users creating / editing / deleting scheduled tasks
* Add action for immediate trigger
* Prevent editing of UserSession via django admin
- Allow only read or delete
- No create or edit permissions
* Make StockTrackingAdmin read-only
* Reduce permission scope on common admin models
* Additional unit tests for task offloading
* Only superuser can change certain user fields
* Adjust unit test
---------
Co-authored-by: Matthias Mair <code@mjmair.com>
* Adjust default postgres connection settings
* Support tcp_user_timeout
* Set application name based on running context
* Add CONN_MAX_AGE and CONN_HEALTH_CHECKS
* Add connection timeout option for mysql
* Migrations
* Add to serializer
* Set the "creation_date" field to auto_now_add
* Ordering and filtering
* Add unit test
* Add "has_stocktake" filter
* Add test for data migration
* Additional unit tests for StockItem API endpoint
* Udpate API and CHANGELOG
* Add basic auto-allocate functionality
- backend code
- background task
- API endpoint
* Add new endpoint enum
* add frontend components
* Tweak auto-allocate output
* Allow specifying of individual line items
* Tweak error boundary
* Enable bulk-delete of allocated items against sales order
* Refactor stock sorting options
* Allow user to select how to handle serialized stock
* Backport new functionality to BuildOrder allocation
* Refactor sorting options to use enumerated values
* Implement functional unit tests for new feature
* Update API and CHANGELOG
* Additional unit test
* Add playwright testing
* Documentation
* Update docs for build auto-allocate
* Fix dependencies
* Adjust build line filtering
* Fix serializer
* Offload build output functions:
- cancel output
- scrap output
- complete output
Perform these in the background worker, and monitor for progress on the frontend.
* Refactor "build cancel"
- Offload expensive ops to background worker
* Offload build complete task
* Remove @atomic decorator from functions
- Allows operations to be performed "incrementally"
- If one task times out, the next task will get the rest
* Bug fix
* Bump API version
* Fix isInTestMode check
* Handle case where task returns immediately
* Fix docstring
* fix test_api
* Tweak order of operations
* additional unit testing for further coverage
* Adjust unit tests
* Offload order completion tasks
* Remove bad code
* Updated playwright test
* Robustify playwright tests
* Bump number of allowed queries
* Revert "Remove bad code"
This reverts commit 3a3ac3bdc7.
* Revert "Offload order completion tasks"
This reverts commit 6066dabe43.
* Add new global setting
* Update lock checks
* Bug fix for task comparison
* Update user interface
* Hide locked field if locking not enabled
* Update existing unit tests
* Update docs
* Add new Attachment model fields:
- is_image
- thumbnail
* Cache if the attachment is an image
* Add new setting for controlling max upload size
* Validate uploaded attachment file
* Add tqdm for progress bars
* Refactor migrations
- Don't need is_image field
- Can introspect from the thumbnail
* Data migration for existing attachments
* Bump API version
* Update tests and validators
* Add "is_image" field to the Attachment model
* Offload to background task
* Implement unit tests
* Docs
* Add unit test for data migration
* Additional unit test
* Omit migration tests from code coverage
* Additional unit tests
* Add API serializer for deleting a location
* Add serializer for part category delete
* Bump API version
* Fix unit tests
---------
Co-authored-by: Matthias Mair <code@mjmair.com>
* Remove image download support
- Helper function remains (it is used in the supplier plugin mixin)
- No longer available to user
- Close massive security hole entirely
- Will be defunct soon anyway (moving to generic attachments)
* Update CHANGELOG.md
* Bump API version
* Fix for unit tests
* Implementation
* Update API and CHANGELOG
* Annotate response type
* Simplify attachment renaming
- Use the existing API endpoint
* Capture the actual saved path
* Tweak attachment table fields
* Use built-in validation
* Update docs
* Unit testing
* Ignore some lines from coverage
* Check if file exists before deleting