* Bug fix for BarcodePOReceive endpoint
- Existing scan must match "stockitem" to raise an error
* bug fix: barcode.js
- Handle new return data from barcode scan endpoint
* Add barcode endpoint for allocating stock to sales order
* Improve logic for preventing over allocation of stock item to sales order
* Test for sufficient quantity
* Bump API version
* Bug fix and extra check
* Cleanup unit tests
* Add unit testing for new endpoint
* Add blank page for app sales orders docs
* Add docs for new barcode features in app
* Fix unit tests
* Remove debug statement
* Fix errors in variable names of examples
* Added drop down example
* Added drop down example
* Fixed picture name
* Fixed context variable in purchase order report
* Store data from example panel
* Store data from example panel
* Store data from example panel
* Add override fields for part pricing
* Allow pricing override values to be specified via the API
* Fix serializer
* Update pricing docs
* Add UI elements for manually overriding pricing data
* Increment API version
* Allow different image variations to be rendered in when using a part image in a report
* Use preview image in default test report
* Fix api_version
- Missed in https://github.com/inventree/InvenTree/pull/5906
* Update docstring
* Add similar functionality for company_image tag
* Update report documentation
* base-64 encode images for rendering in reports
- Allows image manipulation operations to be performed on the images
- Avoids any file pathing issues
* Update docs
* Fix unit tests
* More unit test fixes
* More unit test
* Handle missing file
* Instrument unit test
- Trying to determine what is going on here
* Fix for image resize
* Translate error messages
* Update default report templates
- Specify image size
* Fix errors in variable names of examples
* Added drop down example
* Added drop down example
* Fixed picture name
* Fixed context variable in purchase order report
* Embiggen search drawer
* Refactor search drawer queries:
- Use proper permission checks
* Actually check user settings
* Move StatusRenderer
* Update renderers
- Improve in-line render for different order types
* Update stockitem renderere
* Remove old renderer functions
* Better data handling in UserState
* Tweaks for settings pages
* "Fix" scanning page
- Rendering is a bit broken currently, as the barcode scan does not send back the model data
* "Fix" scanning page
- Rendering is a bit broken currently, as the barcode scan does not send back the model data
- Required refactoring enumerations out into separate files
- Some strange race condition / import loop was happening
* Fix incorrect imports
* Fixing hover card
- Use unique key
* fixes
* Fix urls.md
* More udpates
* Fix unused import
* Fixed error "Line 39 in Markdown file: Encountered unknown tag 'load'."
I did not include the statements {% raw %} and {% endraw %} to escape the code. I have been able to set up a dev server and can confirm this new md file works. My apologies!
* Added more documentation about Panels, and their role in `page_base.html`
* Added more sidebar documentation, and documentation about panels
* Fixed `Line 73 in Markdown file: Encountered unknown tag 'trans'.` error.
Also, made minor clarity improvements
* Reworded some sentences for clarity improvements.
Additionally, added more information about `onPanelLoad`
* Minor syntax updates
* Add skeleton for new label sheet plugin
* Add custom printing options serializer
* Render individual label outputs to HTML
* Extract page size and column size
* Check label dimensions before printing
* Split labels into multiple pages / sheets
* Render out multiple labels onto a single sheet
* Cleanup base label template
- Allow @page style to *not* be generated
- Pass through as optional context variable
- Check that it still works for single label printing (default behaviour unchanged)
- Prevents multiple @page styles from being generated on label sheet output
* Fix stylesheets for part labels
* Cleanup stock location labels
* Cleanup more label templates
* Check if label can actually fit on page
* Generate output to PDF and return correct response
* Update panel.md
* Fix unit tests
* More unit test fixes
I did not include the statements {% raw %} and {% endraw %} to escape the code. I have been able to set up a dev server and can confirm this new md file works. My apologies!
* Corrected report mixin example
* Remove unused file
* Added context variables for company and address
* Repair link in file
* Repair link in file
* Repair link in file
* Removed blank
* Added context variables for contacts to docs
* Typo in link
* Update .pre-commit-config.yaml
Revert version
* Delete InvenTree/order/migrations/0099_auto_20231101_1747.py
* Delete InvenTree/part/migrations/0119_auto_20231101_1747.py
---------
Co-authored-by: Oliver <oliver.henry.walters@gmail.com>
* Added backend changes to support printing options
* Pass printing options seperatly via kwargs for easier api refactor later
* Implemented printing options in CUI
* Fix js linting
* Use translations for printing dialog
* Added docs
* Remove plugin and template fields from send printing options
* Fix docs
* Added tests
* Fix tests
* Fix options response and added test for it
* Fix tests
* Bump api version
* Update docs
* Apply suggestions from code review
* Fix api change date
* Corrected report mixin example
* Remove unused file
* Added context variables for company and address
* Repair link in file
* Repair link in file
* Repair link in file
* Removed blank
* Add support for scanning digikey and mouser barcodes
* added small fixes if no part is found
* made small style cleanups
* Separate out ecia 2d barcode parser, Add quantity, PO number to response
* Use model instead of name for mouser supplier, add auto detection magic
* Add lcsc barcode support
* Move barcode plugins to new suppliers subdirectory
* Add get_supplier_part helper, Refactor plugins in preparation for #3791
* Add __init__.py to suppliers directory
* Improve formatting
* Add barcode integration tests
* Add api-barcode-po-receive endpoint
* Refactor supplier_barcode.py helpers into BarcodeMixin
* Implement the api-barcode-po-receive endpoint for all suppliers
* Always include lineitem in api response
* Fix location in response, only include quantity and location if set
* Check if barcode has already been assigned, Fix tests
* FIx quantity and location not being in lineitem reponse
* Use part.get_default_location() instead of part.default_location
* Fix fomatting again
* Fix type annotations for python 3.8
* Add get_supplier_part helper, check for barcode_data being a str
* Fix naming clash
* Clarify return type for scan_receive_item
* Improve model access using first() in two places
* Refactor a bunch of checks
* Improve selection of line item, if multiple line items match the SKU
* Add new api version for this PR
* Fix error if no line item exists
* Add debug print to investigate why tests are failing
* Remove the test print again
* Fix pre formatted log messages
* Test removing all plugins
* Test only with digikey plugin
* Test with all plugins, but without mouser "model" setting
* Test again without tests
* Test with simple tests
* Test with simple receive test
* Test with even more receive tests
* Test second receive test
* Test third receive test
* Test 4th receive test with debug prints
* Try deleting the stock item and stock locations
* Disable the test again
* Add SupplierBarcodeMixin to minimize shared code between plugins
* Add TME supplier barcode plugin
* Remove the TME tests again
* If this works the tests are broken, if this doesn't work the tests are broken too
* Add TME tests again
* Add back all tests again
* Fix TME purchase order number
* Fix TME qrcode regex
* Add documentation for this feature
* Fix TME qrcode regex
* Use Decimal instead of int for quantity
* Refactor get_supplier_parts, Add get_supplier method
* Improve docstrings
* Fix None type access
* FIx TME barcode detection, Improve supplier barcode handling
* Try to retrigger pipeline
* Refactor get_supplier_parts to not use lists
* Add DEFAULT_SUPPLIER_NAME to mouser plugin
* Add SUPPLIER_ID setting to other suppliers
* Fix supplier plugins not inheriting from settings mixin
---------
Co-authored-by: Matthias Mair <code@mjmair.com>
There shouldn't be any blank lines after the function docstring.
Remove the blank lines to fix this issue.
Co-authored-by: deepsource-autofix[bot] <62050782+deepsource-autofix[bot]@users.noreply.github.com>
- Until the new frontend is fully ready to be shipped, adding this option only serves to confuse users (and break the install process potentially)
- Remove this option entirely from the invoke script
- Update documentation accordingly
* Added example for barcode plugin
* Add some words in stock location reports
* Correct error in link
* Correct error in link
* Typo in link
* Style in code example
* Add plugin mixin class for supporting exchange rates
* Split some mixin classes out into their own files
- mixins.py is becoming quite bloated!
* Add some new settings for controlling currency updates
* Adds basic plugin implementation
* Refactor existing implementation
- Builtin plugin uses frankfurter.app API
- Better error / edge case handlign
* Add sample plugin for currency exchange
* Allow user to select which plugin to use for plugin updates
* Observe user-configured setting for how often exchange rates are updated
* Updates for some of the sample plugins
* Fix plugin slug
* Add doc page
* Document simple example
* Improve sample
* Add blank page for currency settings info
* More info in "config" page
* Update docs again
* Updated unit tests
* Fill out default settings values when InvenTree runs
* Add log messages
* Significant improvement in default settings speed
- Use bulk create
- Be efficient
- Dont' be inefficient
* More strict checks
* Refactor default values implementation
- Don't run at startup
- Run on list API
- Implement generic @classmethod
* add wants_process_event to EventMixin
in register_event this function get called and the task is just offload if the plugin returns true
* add tests for wants_process_event
* fix comments for register_event after code changes
* add documentation for EventMixin.wants_process_event
* avoid pre-formatting log messages
---------
Co-authored-by: Oliver Lippert <oliver@lipperts-web.de>