* 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 "project_code" field to Build model
* Add "project_code" field to Build model
* build javascript updates
(cherry picked from commit 3e27a3b739)
* Update table filters
(cherry picked from commit 196c675585)
* Adds API filtering
* Bump API version
* Hide project code field from build form if project codes not enabled
(cherry picked from commit 4e210e3dfa)
* refactoring to attempt to fix circular imports
* Upgrade django-test-migrations package
* Fix broken import
* Further fixes for unit tests
* Update unit tests for migration files
* Fix typo in build.js
* Migration test updates
- Need to specify MPTT stuff
* Fix build.js
* Fix migration order
* Update 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
* Skip pricing updates when importing data
- Depending on migration state, pricing table might not exist
- post-save hooks can call update_pricing
- So, ignore if running data migration or import
* Typo fix
* Catch exception on is_worker_running
- Exception may occur if table is not yet available
- If it *does* then we can assume the worker is no running
* General error catch in offload_task
* Pick an earlier migration to run from?
* Update initial common migration
- Handle error on table duplication
* Change target migration file
- Ensure that part MPTT migrations have been applied!
* Fix migration ref
- Need 0025
- Price field needs to be available
* make currency choices independend
* Remove check for field, just try to get rid of it
* Add IF EXISTS to avoid error (works in postgres)
* Look for operational error, not programming error
* Use variants, depending on errors caused
* [FR] Add Feature flags
Fixes#4965
* Add option to define custom flags
* Revert "make currency choices independend"
This reverts commit ab84a7ff83.
* try fixing mysql
* more safeguards
* fix executioner call
* a fck
* use migrations. syntax
* and another round for mysql
* revert print change
* use UTC for datetime
* Update part.migrations.0112
- Add custom migration class which handles errors
* Add unit test for migration
- Ensure that the new fields are added to the model
* Update reference to PR
* fix ruleset for missing_models
* fix ruleset for flags_flagstate
* add API endpoints for flags
* add tests for new API endpoints
* fix tests
* fix merge
* fix tests
---------
Co-authored-by: martin <martin@iggland.com>
Co-authored-by: Oliver Walters <oliver.henry.walters@gmail.com>
* 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
* 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
* 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>
* add file for states
* move general definition out
* add some tests and docs
* add tests for invalid definitions
* make status_label tag generic
* move templatetags
* remove unused tag
* rename test file
* make status label a lookup
* rename tags
* move import structure
* add missing tag
* collect states dynamically
* fix context function
* move api function out
* add tests for tags
* rename tests
* refactor imports
* Add test for API function
* improve errors and add tests for imporved errors
* make test calls simpler
* refactor definitions to use enums
* switch to enum
* refactor definitions to use enums
* fix lookup
* fix tag name
* make _TAG lookup a function
* cleanup BaseEnum
* make _TAG definition simpler
* restructure status codes to enum
* reduce LoC
* type status codes as int
* add specific function for template context
* Add definition for lookups
* fix filter lookup
* TEST: "fix" action lookup
* Add missing migrations
* Make all group code references explict
* change default on models to value
* switch to IntEnum
* move groups into a seperate class
* only request _TAG if it exsists
* use value and list
* use dedicated groups
* fix stock assigment
* fix order code
* more fixes
* fix borked change
* fix render lookup
* add group
* fix import
* fix syntax
* clenup
* fix migrations
* fix typo
* fix wrong value usage
* fix test
* remove group section
* remove group section
* add more test cases
* Add more docstring
* move choices out of migrations
* change import ordeR?
* last try before I revert
* Update part.migrations.0112
- Add custom migration class which handles errors
* Add unit test for migration
- Ensure that the new fields are added to the model
* Update reference to PR
---------
Co-authored-by: Oliver Walters <oliver.henry.walters@gmail.com>
- Fixes subtle bug introduced in recent javascript linting fix
- Prevented error messages from displaying on modal forms
- The whole thing needs to be razed and rebuilt
* Update part.migrations.0112
- Add custom migration class which handles errors
* Add unit test for migration
- Ensure that the new fields are added to the model
* Update reference to PR
* make currency choices independend
* replace hard coded default currency
* use function for psql?
* use callable default
* revert some fields
* also migrat all currency codes
* Additional migration fix:
- In #4961 we did not notice that the migration files had been renamed
- There is still a chance that a production db (running from master) has a corrupted set of migrations
- Check if the duplicate columns already exist
- If they do, delete them first
* Typo fix
* Add PR reference
* 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
* 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
* 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>
* Cleanup plugin settings page
- Template adjustments
* Activate plugin directly via API
* Update plugin activate endpoint
- Allow plugin to be deactivated also
- Default value = True if not provided
* Update front-end / js
- Allow same JS method to either enable or disable a plugin
* Hide info for plugins which are not active
* remove duplicated column
* Tweak serializer docstring
* Fix typo
* Add extra data to plugin serializer
- is_builtin
- is_sample
* Some backend cleanup
- Don't stringify null values
- Don't replace None with "Unavailable"
* front-end table for rendering plugins
* Change default sorting
- Show active plugins first
* Fix button callback
* Remove old template
* JS linting
* More linting
* Update models: add MetadataMixin
* Fix name of model in Metadata API definition
* Add API endpoints
* Update API version
* Fix syntax
* Add API endpoint for RO, RO line, RO line extra item
* Add Metadata to Contacts
* Fix link in API version
* Fix name of model
* Fix error?
* Fix error?
* Fix all errors, hopefully..
* Add tests for order, line, extraline metadata
Extend for PO, SO
* Add tests for metadata for Company-related models
* Fix spelling
* Consolidate metadata test for all part models into one test
* Add test for all Stock metadata
* Update stock test_api
* Add all metadata tests for orders
* Fix various errors in tests
* Fix model name
* Add migration files
* Update tests for metadata
* Resolve conflict around API version number
* Rename migration file
* Rename migration file
* Will Contact edit endpoint work better?
* Revert changes in URL definitions
* Remove test, duplicate
* Fix tests with fixed PK, not from fixtures, to use a dynamic PK
* Fix migration overlap
* Fix name of model in Metadata API definition
* Add API endpoint for RO, RO line, RO line extra item
* Update InvenTree/order/api.py
Thanks @matmair - missed that I changed this later on
Co-authored-by: Matthias Mair <code@mjmair.com>
---------
Co-authored-by: Matthias Mair <code@mjmair.com>
* fix .gitignore and spelling issues
* Fix setting get not cached correctly
* Add model to settings key type
* Fix plugin setting slug url
* Fix typo
* Fix resetting of related setting field
* Improved model comment
* Add user settings to remember the last/favourite label template
Fixes#4932
* Remove settings_value from translated templates
Thanks Oliver for the hint!
* 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
---------
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
* 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
* Refactor model helpers into own file to allow helper import when apps not loaded yet
* Import helper functions at module level
* Added missing imports where vscode couldnt help because its no explicit import
* 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
---------
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.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
---------
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
* 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
* Fix for data migration
- Catch *all* exceptions
- We don't want an unhandled exception to break data migration
* Add more exception handling
* Fix typo
* fix cli call to get a fully running invoke
* use relativ import
This is importend when imported from outside
* Add version command
* Add more information to version command
* make print easier to understand
* Improved error handling for email support
- Prevent email sending if email not configured
- Check for tx email address before sending
(cherry picked from commit de541f811ede030ea5eb3136132731e1dafccc31)
* Update InvenTree/email.py
Co-authored-by: Matthias Mair <code@mjmair.com>
* Update InvenTree/email.py
Co-authored-by: Matthias Mair <code@mjmair.com>
* Fix location of file email.py
* Allow dummy emails in testing
* Provide default email in testing mode
* Fix to get test working
---------
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
---------
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>
* Added typing for settings
* Refactored common.BaseInvenTreeSetting model to make it more generic
* Use older syntax for union types
* Added protected option to typing
* Remove now unused code
* Remove old 'get_kwargs' method as it is replaced by 'get_filters_for_instance'
* Trigger ci
* 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
---------
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
* BuildOrder updates:
- Use batch code generation when creating a new build output
- Allow partial scrapping of build outputs
* Fixes for stock table
* Bump API version
* Update unit 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
* 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>
* Add delivery date setting to Shipment model
* Add delivery_date to serializer
* Correct test for is_delivered
* Add relevant fields to API and forms
* Add test
* Increment API version
* Move migration file because of conflict
* 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
* 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
---------
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
* 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
* 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
* 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.