* Fix docs for INVENTREE_SITE_URL
* Adjust default SITE_ID
* Optional support for multi-site
- Disable by default
* Prevent site setting from being changed if set by config parameter
* Update site url setting on server launch
* Update log messages
* Update RULESET_MODELS
* Update unit tests
* More fixes for unit tests
* Update docs
* Update SSO image
* Fix API endpoint URLs
* Adds "authenticated" field to root API endpoint
* Load global status data separately
- Create new global state manager
- Load *after* login
- Prevents auth popup dialog and failure messages
* Add launch config for frontend dev
* Update docs
* Clear token auth if no token is defined
* remove unneeded import
* Revert format of InfoView endpoint
* Remove "authenticated" from InfoView
* Refactor is_staff token check
- Using new get_token_from_request method
* Cleanup code
- return early
* URL fixes
- More fixes for incorrect api calls
* Better tracking of authenticated status
- track an internal flag in apiState
* Prioritize token auth
* Only fetch userState if authenticated
* Force unauthenticated state on first launch
* Updates to login procedure
- Rename doClassicLogin to doBasicLogin (reflecting "basic" auth)
- Add "loggedIn" attribute to sessionState
- Cleanup procedure for securing a token
* Abort early on checkLoginState
- Prevent failed calls to user_me
* Refactoring
- Simpler to just track token state
- No need for separate status tracker
- Works much cleaner this way
* Remove debug messages
* Cleanup unused imports
* Fix unused variable
* Revert timeout to 2000ms
* Rename doClassicLogout -> doLogout
* Improvements for checkLoginState
- Account for the presence of a CSRF session cookie
- If available, use it to fetch a token
* Clear CSRF cookie on logout
- Forces logout from session
- Tested, works well!
- Clean up notifications
* Cleanup setApiDefaults method
* fix global logout (PUI -> CUI)
---------
Co-authored-by: Matthias Mair <code@mjmair.com>
* move more paths to basic path
* changed url route to only match fully - fixed test
* revert path changes on labelprint pages
* fix not found/redirect
* revert test change
* Remove support for django-debug-toolbar
- Will not be effective with new react interface
- Performance is too slow for use anyway
* Fix requirements-dev.txt
* factored out user creation step
* [FR] Support creating reading initial superuser account password from file
Fixes#5471
* added docs
* use env too with password file
* do not warn if passwordfile is set
* Patch for django-allauth 0.55.0
- Some breaking changes here
- Add logger error if auth provider cannot be imported
- Fix for API endpoints
* Only provide URLs for configured plugins
* Update for django-allauth 0.56.0
- Remove support for keycloak
- Remove example from configuration template
* Update django-allauth in requirements.txt
* Update requirements.in
* Refactor SSO functions into common file
* Update config template file
* Update docs
* Fix template files
* Log SSO exceptions to the database
- WIll help greatly with debugging installs
* Add note about error handling in docs
* 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>
* Change for DEFAULT_FROM_EMAIL
- Use USERNAME if not specified
(cherry picked from commit 487ac917c90e9fe3da4effaa9326b707ceecd321)
* Email configuration fails if DEFAULT_FROM_EMAIL not set
(cherry picked from commit 01e573c3a2702e7c21ed13b0cb44280c89d3dee1)
* Docs update
* Add info for installer, branch, publisher
* include version info
* fix permissions
* fix typo
* add more info
* use GH url
* fix node
* remove publisher
* remove more logging
* Add info to version view
* enable branch discovery when not set
* fix ref to github version
* add branch to about dialog
* use precise plattform information - if no env is set
* fix ref names
* load VERSION info
* rename plattform to target
* extend installer var
* add generic plattform info
* add docs for version info
* add more info
* add installer codes
* Add DIO code
* Add SPA views for react #2789
* split up frontend urls
* Add settings for frontend url loading
* add new UI scaffold
* remove tracking insert
* add platform app
* ensure static indexes work too
* add lingui
* add lingui config
* add mgmt tasks
* add base locales
* settings for frontend dev
* fix typo
* update deps
* add pre-commit
* add eslint
* add testing scaffold
* fix paths
* remove error - tests trip correctly
* merge workflow
* cleanup samples
* use name inline with other tests
* Add real worl frontend tests
* setup env
* tun migrations first
* optimize setup time
* setup demo dataset
* optimize run setup
* add test for class ui
* rename
* fix typo
* and another typo
* do install
* run migrations first
* fix name
* cleanup
* use other credentials
* use other credentials
* fix qc
* move envs to qc
* remove create_site
* reduce testing env
* fix test
* fix test call
* allaccess user
* add ui plattform check
* add better check
* remove unneeded env
* enable debug
* reduce wait time
* also build frontend on static
* add sort plugin
* fix order
* run pre-commit fixes
* add node min version
* Docker container (#129)
* Fix allocation check for completing build order (#5199)
- Allocation check only applies to untracked line items
* docker dev
Install required node packages to docker development image
* add import order settings
* cleanout built ui
* remove default arg from build
* remove eslint
* optimize svg
* add build step for plattform UI
* fix install command
* use alpine commands
* do not use cache when creating image
* Added release pipeline
* trigger: ci
* Fix ci
* Fix ci
* Fix ci
* fix: workflow
* fix: workflow
* fix: doubble zipping
* fix: doubble zipping
* fix: doubble zipping
* fix: doubble zipping
* fix: doubble zipping
* Added frontend-download helper to tasks.py
* revert unrelated change
* Add frontend step to update task
* add frontend stuff to version info
* small change to trigger ci
* keep terminal output clean
* return found versions
* fix suggested command
* revert small change
* move to multiline
* add flag to stop frontend compile
* make node building optional on static
* add node trans to transalte task
* ammend commands to use new flag
* remove unneeded flag
* add warning
* add yarn bypass
* docstrings
* check for docker env
---------
Co-authored-by: Oliver <oliver.henry.walters@gmail.com>
Co-authored-by: wolflu05 <76838159+wolflu05@users.noreply.github.com>
* Add database model for defining custom units
- Database model
- DRF serializer
- API endpoints
* Add validation hook
* Custom check for the 'definition' field
* Add settings page for custom units
- Table of units
- Create / edit / delete buttons
* Allow "unit" field to be empty
- Not actually required for custom unit definition
* Load custom unit definitions into global registry
* Docs: add core concepts page(s)
* Add some back links
* Update docs
* Add unit test for custom unit conversion
* More unit testing
* remove print statements
* Add missing table rule
* Add skeleton for builtin label printing plugin
* Force selection of plugin when printing labels
* Enhance LabelPrintingMixin class
- Add render_to_pdf method
- Add render_to_html method
* Enhance plugin mixin
- Add class attribute to select blocking or non-blocking printing
- Add render_to_png method
- Add default method for printing multiple labels
- Add method for offloding print job
* Simplify print_label background function
- All arguments now handled by specific plugin
* Simplify label printing API
- Simply pass data to the particular plugin
- Check result type
- Return result
* Updated sample plugin
* Working on client side code
* Cleanup
* Update sample plugin
* Add new model type
- LabelOutput model
- Stores generated label file to the database
- Makes available for download
* Update label printing plugin mixin
* Add background task to remove any old label outputs
* Open file if response contains filename
* Remove "default printer" option which does not specify a plugin
* Delete old labels after 5 days
* Remove debug statements
* Update API version
* Changed default behaviour to background printing
* Update label plugin mixin docs
* Provide default printer if none provided (legacy)
* Update unit test
* unit test updates
* Further fixes for unit tests
* unit test updates
* Added required attribute to settings/plugins, refactor: allValues
- added 'required' attribute to InvenTreeBaseSetting
- added 'check_all_settings'
- added 'all_settings' to get a list of all defined settings
- refactored 'allValues' to use new 'all_settings' function
- added docs for new 'check_setting' function on plugin SettingsMixin
* Fix typing to be compatible with python 3.9
* trigger: ci
* Fixed **kwargs bug and added tests
* Change the description of `File Storage Locations` variables
* Remove `INVENTREE_BACKUP_DIR` that is already explain on the backup documentation and bellow in this documentation
* Change docker dev server install
* Added --rm to docker compose run commands
This deletes the one-time-use container after exiting
* Added --dev to setup-test. This runs setup-dev as a part of
setup-test.
* Revisions
* Updates
* Add context
* Update docs
* Tyops :)
* Remove reference to action that has not happened yet
* Add initial model structure
* Initial Address model defined
* Add migration and unit tests
* Initial migration for Address model generated
* Unit tests for Address model added
* Move address field to new model
* Added migration to move address field to Address model
* Implement address feature to backend
* API endpoints for list and detail implemented
* Serializer class for Address implemented
* Final migration to delete old address field from company added
* Tests for API and migrations added
* Amend migration file names
* Fix migration names in test
* Add address property to company model
* Iinital view and JS code
* Fix indents
* Fix different things
* Pre-emptive change before merge
* Post-merge fixes
* dotdotdot...
* ...
* iDots
* .
* .
* .
* Add form functionality and model checks
* Forms require a confirmation slider to be checked to submit
if address is selected as primary
* Backend resets primary address before saving if new address
is designated as primary
* Fix pre-save logic to enforce primary uniqueness
* Fix typos
* Sort out migrations
* Forgot one
* Add admin entry and small fixes
* Fix migration file name and dependency
* Update InvenTree/company/models.py
Co-authored-by: Matthias Mair <code@mjmair.com>
* Update InvenTree/company/models.py
Co-authored-by: Matthias Mair <code@mjmair.com>
* Correct final issues
* .
---------
Co-authored-by: Matthias Mair <code@mjmair.com>
* Add method get_parameter
- Return a parameter for a part, on name
* Add unit test for new method
* Adds template tag to retrieve parameter based on name
* Update docs
* Adds BuildLineLabel model
- New type of label for printing against BuildLine objects
* Add serializer for new model
* Add API endpoints for new label type
* Add hooks to BuildLine table
* Create default label
- Create an example BuildLineLabel object
* Add admin integration
* Fix js code
* Use two-tiered template
- Allows base template to be updated
* Improve default label
* Add docs pages for labels
* Update nav
* Documentation for new label
* Add permission role
* Bump API version
* Add new BuildLine model
- Represents an instance of a BOM item against a BuildOrder
* Create BuildLine instances automatically
When a new Build is created, automatically generate new BuildLine items
* Improve logic for handling exchange rate backends
* logic fixes
* Adds API endpoints
Add list and detail API endpoints for new BuildLine model
* update users/models.py
- Add new model to roles definition
* bulk-create on auto_allocate
Save database hits by performing a bulk-create
* Add skeleton data migration
* Create BuildLines for existing orders
* Working on building out BuildLine table
* Adds link for "BuildLine" to "BuildItem"
- A "BuildItem" will now be tracked against a BuildLine
- Not tracked directly against a build
- Not tracked directly against a BomItem
- Add schema migration
- Add data migration to update links
* Adjust migration 0045
- bom_item and build fields are about to be removed
- Set them to "nullable" so the data doesn't get removed
* Remove old fields from BuildItem model
- build fk
- bom_item fk
- A lot of other required changes too
* Update BuildLine.bom_item field
- Delete the BuildLine if the BomItem is removed
- This is closer to current behaviour
* Cleanup for Build model
- tracked_bom_items -> tracked_line_items
- untracked_bom_items -> tracked_bom_items
- remove build.can_complete
- move bom_item specific methods to the BuildLine model
- Cleanup / consolidation
* front-end work
- Update javascript
- Cleanup HTML templates
* Add serializer annotation and filtering
- Annotate 'allocated' quantity
- Filter by allocated / trackable / optional / consumable
* Make table sortable
* Add buttons
* Add callback for building new stock
* Fix Part annotation
* Adds callback to order parts
* Allocation works again
* template cleanup
* Fix allocate / unallocate actions
- Also turns out "unallocate" is not a word..
* auto-allocate works again
* Fix call to build.is_over_allocated
* Refactoring updates
* Bump API version
* Cleaner implementation of allocation sub-table
* Fix rendering in build output table
* Improvements to StockItem list API
- Refactor very old code
- Add option to include test results to queryset
* Add TODO for later me
* Fix for serializers.py
* Working on cleaner implementation of build output table
* Add function to determine if a single output is fully allocated
* Updates to build.js
- Button callbacks
- Table rendering
* Revert previous changes to build.serializers.py
* Fix for forms.js
* Rearrange code in build.js
* Rebuild "allocated lines" for output table
* Fix allocation calculation
* Show or hide column for tracked parts
* Improve debug messages
* Refactor "loadBuildLineTable"
- Allow it to also be used as output sub-table
* Refactor "completed tests" column
* Remove old javascript
- Cleans up a *lot* of crusty old code
* Annotate the available stock quantity to BuildLine serializer
- Similar pattern to BomItem serializer
- Needs refactoring in the future
* Update available column
* Fix build allocation table
- Bug fix
- Make pretty
* linting fixes
* Allow sorting by available stock
* Tweak for "required tests" column
* Bug fix for completing a build output
* Fix for consumable stock
* Fix for trim_allocated_stock
* Fix for creating new build
* Migration fix
- Ensure initial django_q migrations are applied
- Why on earth is this failing now?
* Catch exception
* Update for exception handling
* Update migrations
- Ensure inventreesetting is added
* Catch all exceptions when getting default currency code
* Bug fix for currency exchange rates update
* Working on unit tests
* Unit test fixes
* More work on unit tests
* Use bulk_create in unit test
* Update required quantity when a BuildOrder is saved
* Tweak overage display in BOM table
* Fix icon in BOM table
* Fix spelling error
* More unit test fixes
* Build reports
- Add line_items
- Update docs
- Cleanup
* Reimplement is_partially_allocated method
* Update docs about overage
* Unit testing for data migration
* Add "required_for_build_orders" annotation
- Makes API query *much* faster now
- remove old "required_parts_to_complete_build" method
- Cleanup part API filter code
* Adjust order of fixture loading
* Fix unit test
* Prevent "schedule_pricing_update" in unit tests
- Should cut down on DB hits significantly
* Unit test updates
* Improvements for unit test
- Don't hard-code pk values
- postgresql no likey
* Better unit test
* Add info for installer, branch, publisher
* include version info
* fix permissions
* fix typo
* add more info
* use GH url
* fix node
* remove publisher
* remove more logging
* Add info to version view
* enable branch discovery when not set
* fix ref to github version
* add branch to about dialog
* use precise plattform information - if no env is set
* fix ref names
* load VERSION info
* rename plattform to target
* extend installer var
* add generic plattform info
* add docs for version info
* add more info
* add installer codes
* Ammend navigation
* move devcontainer docs
* rename bare metal pages
* fix backlinks
* Add getting started for devs
* add mermaid
* include contrib in docs
* use another plugin
* include everything
* update doc checks
* fix install command
* remove mermaid
* remove inclusion tag
* remove empty list item
* readd include-markdown
* use non-conflicting syntax for include
* fix table rendering in mkdocs
* make controbuting embedable
* re-add mermaid
* remove empty section
* resturcture
* remove mermaid again
* Catch SSO error
- If social application is not assigned to at least one site, errors happen
- Check if at least one site is enabled
* Docs updates
* Typo fix
* Add fields to PartParameterTemplateModel
- checkbox: Is the field a 'checkbox'
- choices: List of valid options
* Update javascript
* Adds unit test for PartParameterTemplate
- Checkbox cannot have units
- Checkbox cannot have choices
- Choices must be unique
* Improve API filtering
- Add "has_choices" filter
- Add "has_units" filter
* Prune dead code
* Update js functions for creating / editing parameters
* Update part parameter form
- Rebuild the "data" field based on the selected template
- Supports "string" / "boolean" / "select"
* Adjust data input based on parameter type
- Choice displays available options
- Checkbox displays boolean switch
- Otherwise displays text input
- Adds more unit testing
- Updates to forms.js for improved functionality
* Calculate numeric value for boolean parameters
* Update docs
* Bump API version
* Add RO to calendar output
* Update title and description to be more descriptive
* Add documentation
* Add simple test for RO calendar
* Lint/syntax
* Lint
* Changes to title, description
* Add validation to part units field
* Add "pack_units" field to the SupplierPart model
* Migrate old units to new units, and remove old field
* Table fix
* Fixture fix
* Update migration
* Improve "hook" for loading custom unit database
* Display part units column in part table
- Also allow ordering by part units
- Allow filtering to show parts which have defined units
* Adds data migration for converting units to valid values
* Add "pack_units_native" field to company.SupplierPart model
* Clean pack units when saving a SupplierPart
- Convert to native part units
- Handle empty units value
- Add unit tests
* Add background function to rebuild supplier parts when a part is saved
- Required to ensure that the "pack_size_native" is up to date
* Template updates
* Sort by native units first
* Bump API version
* Rename "pack_units" to "pack_quantity"
* Update migration file
- Allow reverse migration
* Fix for currency migration
- Handle case where no currencies are provided
- Handle case where base currency is not in provided options
* Adds unit test for data migration
* Add unit test for part.units data migration
- Check that units fields are updated correctly
* Add some extra "default units"
- each / piece
- dozen / hundred / thousand
- Add unit testing also
* Update references to "pack_size"
- Replace with "pack_quantity" or "pack_quantity_native" as appropriate
* Improvements based on unit testing
* catch error
* Docs updates
* Fixes for pricing tests
* Update unit tests for part migrations · 1b6b6d9d
* Bug fix for conversion code
* javascript updates
* JS formatting fix
* Improvements for version banner
- Display at the bottom of the page
- Simplify text
* Use mkdocs version provider
* use 'navigation.instant'
* Support modern mkdocs features
- Much better navigation and improved features
* Content changes
* Add code to find previous versions
* Remove modern python syntax
* display output codes
* Hide version banner
* Extra debug message
* update terminology.md
* Remove stat context variables
* Revert "Remove stat context variables"
This reverts commit 0989c308d0.
* Allow longer timeout for image download tests
* 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
* docs: Update FAQ section
- Add note regarding permissions for docker directories
---------
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
* adds new field 'parameter type' to PartParameterTemplate model
* Move part parameter settings onto their own page
* Add "choices" and "regex" template types
* Adds validation for PartParameter based on template type
* javascript cleanup
* Fix for serializers.py
* Add unit testing for parameter validation
* Add filters
* Rename "type" field to "param_type"
- Should have seen that one coming
* Coerce 'boolean' value to True/False
* table update
* js linting
* Add requirement for "pint" package
* Add validator for physical unit types
- Revert a previous migration which adds "parameter type" and "validator" fields
- These will get implemented later, too much scope creep for this PR
- Add unit test for validation of "units" field
* Update PartParameter model
- Add data_numeric field (will be used later)
- Add MinLengthValidator to data field
* Run validation for part parameter data
- Ensure it can be converted to internal units
* Update admin interface to display partparameter values inline for a part
* Adds validation of part parameter data value
- Also converts to base units, and stores as "numeric" value
- Display "numeric" value in tables
- Create new file conversion.py for data conversion
* Update unit tests and fix some bugs
* Update docstring
* Add units to parameter columns in parameteric part table
* Allow part list to be ordered by a particular parameter value
- Annotate queryset with new "order_by_parameter" method
- Skeleton method for future work
* Bump API version
* Adds unit testing for sorting parts by parameter value
* Update historical data migrations
- Turns out RunPython.noop is a thing?
* Cache the unit registry
- Creating the unit registry takes a significant amount of time
- Construct when first called, and then cache for subsequent hits
- Massive improvement in performance
* Throw error on empty values when converting between units
* Data migration for converting existing part parameter values
* Handle more error cases
* Show parameteric table on top-level part page too
* Unit test for data migration
* Update credits in docs
* Improved error checking
* WIP docs updates
* Fix parameteric table filtering
* remove zoom property
* Fix for import path
* Update parameter docs
* Run background task to rebuild parameters when template changes
* Make "data_numeric" field nullable
- Defaulting to zero is not appropriate, as the actual value may be zero
- Sorting still seems to work just fine
* Fixes for unit test
* More unit test fixes
* Further fixes for unit tests
---------
Co-authored-by: Matthias Mair <code@mjmair.com>
* Adds "consumed_by" field to the StockItem model.
- Points to a BuildOrder instance which "consumed" this stock
- Marks item as unavailable
- Allows filtering against build order
* Allow API filtering
* Adds table of "consumed stock items" to build order page
* Update stock table to show "consumed by" stock status
* Add "consumed_by" link to stock item detail
* Optionally add 'buildorder' details to installStockItem method
* Update methodology for completing a build item
- Instead of deleting stock, mark as "consumed by"
* Fix history entry for splitting stock
* Bug fix
* track "consumed_by" field for tracked items also
* Update build docs
* Update allocation documentation
* Update terminology.md
* Unit test updates
* Fix conflicting migrations
* revert change
* Update docs for status codes
* Adds API endpoint for scrapping individual build outputs
* Support 'buildorder' reference in stock tracking history
* Add page for build output documentation
* Build docs
* Add example build order process to docs
* remove debug statement
* JS lint cleanup
* Add migration file for stock status
* Add unit tests for build output scrapping
* Increment API version
* bug fix
* 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
* 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>
* 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>
* '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
* 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
* 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
* add check for links
* fix style
* call silently
* add dep
* add path
* ignore readme as it contains necesarry broken links
* fix syntax
* check recursevly
* run in sync
* use linkcheckmd instaead
* use sync
* add requests
* revert fix to check if checks still work
* fix lookup
* fix old link
* run check verbose
* run async
* remove recurse
* introduce error for test
* fix link
* Add 'order_currency' to the various external order models
- By default will use the currency specified for the supplier (or customer)
- Can be specified per order, also
* Display order currency on order pgae
* Add 'order_currency' field
* Enable "blank" currency option (to default to the currency specified by the referenced company
* Fix default currency code when adding line items
* Remove 'total_price_currency' serializer field
- Now replaced with 'order_currency' for greater flexibility
* Bump api_version.py
* Update default order report templates
* Updated docs
* More docs updaes
* Adjust unit tests
* Use 'order_currency' in order tables
* Update purchase order api unit tests