* Add flag to API which allows using pack size when adding stock items manually
* Check for use_pack_size before pop
* Add test data and tests
* Improve data handling
* Add form field for use_pack_size when adding stock
* Add description of pack size to docs
* Don't check for supplier part if it is None
* Move form field to after supplier part, for better logic
* Fix wrong function
* Fix tests
* Adjust purchase price when using pack size
* Adjust help text for purchase price
* Adjust help text for purchase price some more
* Fix tests for purchase price of added stock
* Update api_version.py
* collect mixins dynamically
* remove unfinsihed option to reorder mixins
* clean up settings
* fix text
* fix mixin lookup
* stupid error
* fix assertations
* use regustered function instead of private dict
* switch to dict for reg
* fix test
* makke sure mixins also works with class
* cleanup
* fix reqs
* fix test assertations
* Added empty problemMatchers to prevent vscode from asking
* Added first draft for devcontainer docs
* Add 3rd space to tips
* Fix wording
* Add 4rd space to tips
* Refphased intro text
* Fixed spelling mistakes and added note
* Added dynamic variables for devcontainer
* Added missing containerWorkspaceFolder vars other devcontainer files
Co-authored-by: Oliver <oliver.henry.walters@gmail.com>
* Added note for inventree core intelicense for plugin devs
* Added where is dev data stored question to faq
* Update docs/docs/start/devcontainer.md
* update toc
---------
Co-authored-by: Oliver <oliver.henry.walters@gmail.com>
Co-authored-by: Matthias Mair <code@mjmair.com>
* updated translation base
* 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 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 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>
The shopping cart icon for parts already on order was originally
implemented in 1b421fb59a but got broken in 27aa16d55d as the return
value of `makeIconBadge` is discarded.
Additionally, the FontAwesome JS renderer doesn't seem to like
non-empty content for this, so even when adding it back to `icons`,
it didn't get rendered properly. Instead, the count has to be added
to the title.
* Add option to hide plugin setting from auto-generated plugin setting page
* Change hide to hidden
* Added small note to docs about hidden settings
Co-authored-by: Oliver <oliver.henry.walters@gmail.com>
---------
Co-authored-by: Oliver <oliver.henry.walters@gmail.com>
* Simplify query filtering for determining list of parts which require a component to build
* Fix .devcontainer file
(cherry picked from commit d4bd8ea0a9)
* Catch ValueError
* Add 'clean' method to MetadataMixin class
- Ensure that the "metadata" is a valid dict object
* Add "overwrite" option for set_metadata method
* Update unit tests
* full_clean -> clean
* Cleanup
* Fix for MetadataMixin
* Updates for unit tests
* Test
* Allow stock items to be transferred into the same location
* Add new code when moving into same location
* Update unit test
* Further unit test fixes
* updated translation base
* 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 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 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>
* 'Tag' management
Fixes#83
* Add for ManufacturerPart, SupplierPart
* Add tags for StockLocation, StockItem
* fix serializer definition
* add migrations
* update pre-commit
* bump dependencies
* revert updates
* set version for bugbear
* remove bugbear
* readd bugbear remove isort
* and remove bugbear again
* remove bugbear
* make tag fields not required
* add ruleset
* Merge migrations
* fix migrations
* add unittest for detail
* test tag add
* order api
* reduce database access
* add tag modification test
* use overriden serializer to ensuer the manager is always available
* fix typo
* fix serializer
* increae query thershold by 1
* move tag serializer
* fix migrations
* content_types are changing between tests - removing them
* remove unneeded fixture
* Add basic docs
* bump API version
* add api access to the docs
* add python code
* Add tags to search and filters for all models
* Ignore variant stock when performing stocktake
- Including variant stock can cause duplicate counts of items
- Causes valuation numbers to be incorrect
* Fix unit tests
* Further unit test fixes
* Improve construct_absolute_url method
- Look for hard-coded site URL if provided
- Otherwise look for specified site URL
- Otherwise look at the provided request object
* Refactor existing code which used base URL setting
* Update docs
* Validate that a provided base URL is valid
* remove markuplint
* remove dedicated html step - will be done by pre-commit
* add djlint for django template linting
* Fix T003: Endblock should have name
* Fix H013: Img tag should have an alt attribute
* Fix H014: Found extra blank lines
* Fix T003: Endblock should have name
* Fix H013: Img tag should have an alt attribute
* small fixes
* Fix T001: Variables should be wrapped in a single whitespace
* Fix T003: Endblock should have name
* small fixes
* fix form method
* add entry to contributing
* fix template changes
* another fix
* use current version
* updated translation base
* Fix: New translations django.po from Crowdin
---------
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
* Add clipboard to tables and external link changes
* Clipboard icon added to tables for screens >1200px wide. Enables
copying of SKU/MPN/IPN from table cells where these otherwise are
hyperlinks
* External links now open in new tabs with noreferrer
* Move external links into separate template
* All statically rendered external links have been moved out to a new
template.
* merge doc checks into main QC checks
* rename
* well both APIs are closed now so this would be useless
* make header more concise
* add check if server code changed - make run conditional
* reformat
* Clean up comments
* Bug fix
- Pass options.modal through if provided when creating new barcodeDialog
* Fix for scanning from item context into location
* "Install Plugin" via GUI fails to add plugin to plugins.txt correctly for first plugin
Fixes#4719
* remove old change as it was not the root issue
* make sure plugins are always written on a new line
* Adds extra unit test for exporting sales orders
- Exporting sales orders to .xls currently throws exception
* Fix 'total_price' field when exporting orders
* Fix for unit test
* Write function to catch sentry.io events before sending
- Will let us ignore certain types of errors which we are not interested in
* Cleanup
* Include release info
* Allow sentry reporting in debug mode
* Consolidate DRF sentry code into InvenTree/sentry.py
* Add more error types to ignore
* update docs