* Improvement and consolidation of various auth forms
* Update "disable 2FA" page to use form fields
Note: Requires merging of https://github.com/valohai/django-allauth-2fa/pull/135
* Update django-allauth-2fa requirements
* Updates for label printing settings:
- Make LABEL_ENABLE a global setting
- Add LABEL_DPI setting (default = 300)
- Add new global settings tab
* Use the configured DPI when printing labels
* Enable HTML escaping for all tables by default
* Enable HTML escaping for all tables by default
* Adds automatic escaping for bootstrap tables where custom formatter function is specified
- Intercept the row data *before* it is provided to the renderer function
- Adds a function for sanitizing nested data structure
* Sanitize form data before processing
* Delete category via the API
* Delete StockLocation via the API
* Delete StockItem via the API
- Removes the final instance of AjaxDelete
* Remove URL path
* Add missing code
* Adds new fields to the SupplierPart model:
- available
- availability_updated
* Allow availability_updated field to be blank
* Revert "Remove stat context variables"
This reverts commit 0989c308d0cea9b9405a1338d257b542c6d33d73.
* Increment API version
* Adds availability information to the SupplierPart API serializer
- If the 'available' field is updated, the current date is added to the availability_updated field
* Add 'available' field to SupplierPart table
* More JS refactoring
* Add unit testing for specifying availability via the API
* Display availability data on the SupplierPart detail page
* Add ability to set 'available' quantity from the SupplierPart detail page
* Revert "Revert "Remove stat context variables""
This reverts commit 3f98037f7947aa4c85cf4008c2d216d034987f2e.
* Catch DoesNotExist error
* Move notificationtable function to js file
* Fix for custom metadata class
- Previously only worked if a POST or PUT action was available on the endpoint
- So, a ListAPIView endpoint would not actually work!
- Adding in a BulkDelete mixin to a ListAPIView caused failure
* Add unit test to ensure new OPTIONS metadata updates are checked
* Expand functionality of the existing BulkDelete mixin
- Allow deletion by custom filters
- Allow each implementing class to implement custom filters
- Adds more unit testing for BulkDelete mixin class
* Add bulk delete operation for Notification API
- Ensure users can only delete their *own* notifications
* Improve notification tables / buttons / etc
* Adds unit testing for bulk delete of notifications
- Fixed API permissions for notifications list endpoint
* Update BulkDelete operations for the StockItemTestResult table
* Use filters parameter in attachments table to ensure that only correct attachments are deleted
* JS linting
* Fixes for unit tests
* Trigger a notification when a new SalesOrder is created
- Notify the "responsible" owners (excluding the creator)
- Add unit test for new notification
* Adds notification when a new PurchaseOrder is created
* Add notification when a new build order is created
- Includes unit tests
* Refactor order notification code
- Adds a "exclude users" option for sending notifications
* Fixes for notification refactoring
* make notification a helper
* reduce statements togehter
* make reuse easier
* Add docs
* Make context variables clearer
* fix assertation
* Fix set notation
Co-authored-by: Matthias <code@mjmair.com>
* Introduces a BulkDelete API mixin class
- Allows deletion of multiple items against a single API request
* Bump API version
* Adds BulkDelete mixin to StockItemTestResult API class
* refactor "multi BOM Item delete" to use new approach
* Refactor various attachment API endpoints
* Refactor multi delete for StockItem
* Convert remaining enndpoints over
* Fix for API test code
* Adds a background task to notify users when a PurchaseOrder becomes overdue
* Schedule the overdue purchaseorder check to occur daily
* Allow notifications to be sent to "Owner" instances
- Extract user information from the Owner instance
* add unit test to ensure notifications are sent for overdue purchase orders
* Adds notification for overdue sales orders
* Clean up notification display panel
- Simplify rendering
- Order "newest at top"
- Element alignment tweaks
* style fixes
* More style fixes
* Tweak notification padding
* Fix import order
* Adds task to notify user of overdue build orders
* Adds unit tests for build order notifications
* Refactor subject line for emails:
- Use the configured instance title as a prefix for the subject line
* Add email template for overdue build orders
* Fix unit tests to accommodate new default value
* Logic error fix
* Add new global setting to control auto-upload of test reports
* Adds callback to attach a copy of the test report when printing
* Fix for all attachment API endpoints
- The AttachmentMixin must come first!
- User was not being set, as the custom 'perform_create' function was never called
* Remove duplicated UserSerializer
* display uploading user in attachment table
* Add unit test to check the test report is automatically uploaded
* Refactor function to enable / disable submit button on modal forms
* Category selection now just uses the AP
* Remove unused forms / views
* JS linting fixes
* remove outdated unit test
* Updates for the PartRelated model
- Deleting a part also deletes the relationships
- Add unique_together requirement
- Bug fixes
- Added unit tests
* Adds JS function to delete a part instance
* Remove legacy delete view
* JS linting
* Moving PartCategoryParameterTemplate model to the API
- Add detail API endpoint
- Add 'create' action to LIST endpoint
* Update settings page to use the new API forms
* Remove old views / forms
* Update API version
* Fix table buttons
* Add title to deletion form
* Add unit tests for new API views
* Adds detail API view for the PartParameterTemplate model
* Use API methods rather than server-side forms
* Remove old views / forms
* Update API version
* Refactor out 'ordering' serializer annotation field
* Refactor BomItem serializer annotations
* Factor out MPTT OuterRef query
* Add 'available_stock' annotation to SalesOrderLineItem serializer
- Allows for better rendering of stock availability in sales order table
* Improve 'available quantity' rendering of salesorderlineitem table
* Bump API version
* Add docstring
* Allow part list API to be searched by SKU
* Enable manufacturer parts and supplier parts search preview
* Increment API version
* Remove whitespace
* Remove more whitespace
* Add pre-commit to the stack
* exclude static
* Add locales to excludes
* fix style errors
* rename pipeline steps
* also wait on precommit
* make template matching simpler
* Use the same code for python setup everywhere
* use step and cache for python setup
* move regular settings up into general envs
* just use full update
* Use invoke instead of static references
* make setup actions more similar
* use python3
* refactor names to be similar
* fix runner version
* fix references
* remove incidential change
* use matrix for os
* Github can't do this right now
* ignore docstyle errors
* Add seperate docstring test
* update flake call
* do not fail on docstring
* refactor setup into workflow
* update reference
* switch to action
* resturcture
* add bash statements
* remove os from cache
* update input checks
* make code cleaner
* fix boolean
* no relative paths
* install wheel by python
* switch to install
* revert back to simple wheel
* refactor import export tests
* move setup keys back to not disturbe tests
* remove docstyle till that is fixed
* update references
* continue on error
* use relativ action references
* Change step / job docstrings
* Enable 'tree view' for build order table
* Ensure we pass locale code to the build table
* Adjust button class based on current context
* Fix display of 'child builds' table on build page
* Force a rebuild of the entire table when the filters are refreshed
* Refactor PurchaseOrder table also
* Refactor existing SalesOrder table also
* JS linting
* Refactor 'DeleteManufacturerPart' form
- Remove duplicated forms
- Update style to match other forms
- Block on each deletion before progressing to the next one
* PEP fix
* Adds deleteSupplierParts function
* Refactor all instances of supplier part deletion
* Refactor tractor : use convenience function for bootstraptable.getSelections
* Add deleter for manufacturerpartparameter.
Refactor existing code into a single function
* Refactor deletion for stock items
* JS linting
* Adds two new fields to SalesOrderShipment model:
- Invoice number (char)
- Link (URL)
* Bump API version
* Update API / serializer / JS
- Allow entry of new fields at time of shipping
* PEP fixes
* Actually fix the PEP issues
* Unit testing: check some more fields
* Fix display of stock labels
- If 'shipped' or 'installed', don't display 'allocated' flag
* Switch stock item data around
* Add 'available' and 'allocation' information to the StockItem detail page
- Cache some context data to the view renderer
* Stock table now also displays allocation informatoin
* Allow user to select shipment date when shipping a salesorder
- Defaults to 'today'
* Retain the tracking number information through the from
* JS linting
* Add unit testing for the SalesOrderShipmentComplete serializer / API endpoint
* Added order reference to line item options
* Basic working version implemented
* Re-execute fields function in secondary modals
* Added missing argument and parameter
* Added missing parentheses
* Fixed hidden field name for depth > 0
Secondary buttons can be added to modal footers beside Close and Submit
Buttons can be linked to callback functions
Callback functions can access options arguments passed to constructForm