2
0
mirror of https://github.com/inventree/InvenTree.git synced 2026-05-23 01:25:45 +00:00
Commit Graph

378 Commits

Author SHA1 Message Date
Oliver 1b421fb59a Adds 'consumable' field to BomItem model (#2890)
* Adds 'consumable' field to BomItem model

* Add consumable field to API

* Consumable items always count as "allocated" for a build

* Add new BOM fields to BOM item checksum calculation

* Display 'consumable' status in BOM table

* Fix order of database migrations

* Update unit tests

* Fix for BOM table

* Remove "infinite" field from StockItem model

- Not used anywhere for functionality
- Hidden from the user
- Now replaced by the "consumable" concept in the BuildOrder model

* Update build order allocation table display

* Prevent auto-allocation of stock to consumable BOM items

* Ignore consumable BOM items when allocating stock to a build order

* Reimplmement "footer" row for BOM table

* Fix "can_build" calculation

- Ignore "consumable" BOM items

* Unrelated typo fix

* Tweak BOM table

* More visual tweaks to BOM table

* Add unit test for consumable field
2022-09-24 23:45:56 +10:00
Oliver 187707c892 Barcode Refactor (#3640)
* define a simple model mixin class for barcode

* Adds generic function for assigning a barcode to a model instance

* StockItem model now implements the BarcodeMixin class

* Implement simple unit tests for new code

* Fix unit tests

* Data migration for uid field

* Remove references to old 'uid' field

* Migration for removing old uid field from StockItem model

* Bump API version

* Change lookup_barcode to be a classmethod

* Change barcode_model_type to be a class method

* Cleanup for generic barcode scan and assign API:

- Raise ValidationError as appropriate
- Improved unit testing
- Groundwork for future generic implementation

* Further unit tests for barcode scanning

* Adjust error messages for compatibility

* Unit test fix

* Fix hash_barcode function

- Add unit tests to ensure it produces the same results as before the refactor

* Add BarcodeMixin to Part model

* Remove old format_barcode function from Part model

* Further fixes for unit tests

* Add support for assigning arbitrary barcode to Part instance

- Simplify barcode API
- Add more unit tests

* More unit test fixes

* Update unit test

* Adds generic endpoint for unassigning barcode data

* Update web dialog for unlinking a barcode

* Template cleanup

* Add Barcode mixin to StockLocation class

* Add some simple unit tests for new model mixin

* Support assigning / unassigning barcodes for StockLocation

* remove failing outdated test

* Update template to integrate new barcode support for StockLocation

* Add BarcodeMixin to SupplierPart model

* Adds QR code view for SupplierPart

* Major simplification of barcode API endpoints

- Separate existing barcode plugin into two separate classes
- Simplify and consolidate the response from barcode scanning
- Update unit testing

* Yet more unit test fixes

* Yet yet more unit test fixes
2022-09-15 14:14:51 +10:00
wolflu05 b9f83eefc8 Feature/icons for PartCategory and StockLocation (#3542)
* Added icon to stock location

- added `icon` field to `stock_stocklocation` model
- added input field to stock location form
- added icon to breadcrumb treeview in header
- added icon to sub-locations table
- added icon to location detail information
- added `STOCK_LOCATION_DEFAULT_ICON` setting as default

* Added icon to part category

- added `icon` field to `part_partcategory` model
- added input field to part category form
- added icon to breadcrumb treeview in header
- added icon to sub-categories table
- added icon to category detail information
- added `PART_CATEGORY_DEFAULT_ICON` setting as default

* Added `blocktrans` to allowed tags in ci check

* fix: style

* Added `endblocktrans` to allowed tags in ci check

* fix: missing `,` in ci check allowed tags script

* Removed blocktrans from js and fixed style
2022-08-16 21:51:55 +10:00
Oliver 63d221854b Url field fix (#3488)
* Updates for automated metadata extraction

* Update link field for StockItem model

- Increase max_length to 200 characters
- Custom migration
- Updates for InvenTreeUrlField model

* Adding unit tests

* Bug fix for metadata.py
2022-08-07 22:46:33 +10:00
Oliver 6e2a2f2b2c Bug fix for recent SupplierPart API annotation (#3336) 2022-07-15 20:30:26 +10:00
Oliver 648faf4ed2 Reference fields (#3267)
* Adds a configurable 'reference pattern' to the IndexingReferenceMixin class

* Expand tests for reference_pattern validator:

- Prevent inclusion of illegal characters
- Prevent multiple groups of hash (#) characters
- Add unit tests

* Validator now checks for valid strftime formatter

* Adds build order reference pattern

* Adds function for creating a valid regex from the supplied pattern

- More unit tests
- Use it to validate BuildOrder reference field

* Refactoring the whole thing again - try using python string.format

* remove datetime-matcher from requirements.txt

* Add some more formatting helper functions

- Construct a regular expression from a format string
- Extract named values from a string, based on a format string

* Fix validator for build order reference field

* Adding unit tests for the new format string functionality

* Adds validation for reference fields

* Require the 'ref' format key as part of a valid reference pattern

* Extend format extraction to allow specification of integer groups

* Remove unused import

* Fix requirements

* Add method for generating the 'next' reference field for a model

* Fix function for generating next BuildOrder reference value

- A function is required as class methods cannot be used
- Simply wraps the existing class method

* Remove BUILDORDER_REFERENCE_REGEX setting

* Add unit test for build order reference field validation

* Adds unit testing for extracting integer values from a reference field

* Fix bugs from previous commit

* Add unit test for generation of default build order reference

* Add data migration for BuildOrder model

- Update reference field with old prefix
- Construct new pattern based on old prefix

* Adds unit test for data migration

- Check that the BuildOrder reference field is updated as expected

* Remove 'BUILDORDER_REFERENCE_PREFIX' setting

* Adds new setting for SalesOrder reference pattern

* Update method by which next reference value is generated

* Improved error handling in api_tester code

* Improve automated generation of order reference fields

- Handle potential errors
- Return previous reference if something goes wrong

* SalesOrder reference has now been updated also

- New reference pattern setting
- Updated default and validator for reference field
- Updated serializer and API
- Added unit tests

* Migrate the "PurchaseOrder" reference field to the new system

* Data migration for SalesOrder and PurchaseOrder reference fields

* Remove PURCHASEORDER_REFERENCE_PREFIX

* Remove references to SALESORDER_REFERENCE_PREFIX

* Re-add maximum value validation

* Bug fixes

* Improve algorithm for generating new reference

- Handle case where most recent reference does not conform to the reference pattern

* Fixes for 'order' unit tests

* Unit test fixes for order app

* More unit test fixes

* More unit test fixing

* Revert behaviour for "extract_int" clipping function

* Unit test value fix

* Prevent build order notification if we are importing records
2022-07-11 00:01:46 +10:00
Oliver 8f92fddd2d Virtual part fix (#3265)
* Add 'virtual': False requirement to sales order items

* Adds "virtual" filter for part table

* Adds extra validation to the SalesOrderLineItem model

* Prevent creation of stock items for virtual parts

- Add validation check to clean() method of StockItem model
- Improve validation message for StockItemSerializer class

* Hide "new stock item" button for virtual parts

* Hide more buttons for 'virtual' parts
2022-06-28 13:39:27 +10:00
Oliver 63b4ff3eb6 Remove reliance on django-markdownx (#3231)
* Remove reliance on django-markdownx

- We are now rendering notes on the client side using easymde
- No longer any need to utilize the markdownx integration
- Adds character limit for notes fields`

* Adjust legacy migrations - remove references to markdownx

* Fix bug for company notes field
2022-06-20 22:20:04 +10:00
Matthias Mair f38386b13c Add more checks to pre-commit (#3132)
* Add bandit to pre-commit checks

* fix catchall exceptions

* remove unused definitons

* remove unuseed ariables

* Add docstring

* fix B006, B008 errors

* fix B007 error

* ignore B009

* Add checks for formatting and naming
2022-06-06 08:56:52 +10:00
Oliver 4b3f77763d Return from customer (#3120)
* Adds ability to return item into stock via the API

* Remove old server-side form / view for returning stock from a customer

* Add unit tests for new API endpoint
2022-06-03 08:36:08 +10:00
Matthias Mair 0c97a50e47 Docstring checks in QC checks (#3089)
* Add pre-commit to the stack

* exclude static

* Add locales to excludes

* fix style errors

* rename pipeline steps

* also wait on precommit

* make template matching simpler

* Use the same code for python setup everywhere

* use step and cache for python setup

* move regular settings up into general envs

* just use full update

* Use invoke instead of static references

* make setup actions more similar

* use python3

* refactor names to be similar

* fix runner version

* fix references

* remove incidential change

* use matrix for os

* Github can't do this right now

* ignore docstyle errors

* Add seperate docstring test

* update flake call

* do not fail on docstring

* refactor setup into workflow

* update reference

* switch to action

* resturcture

* add bash statements

* remove os from cache

* update input checks

* make code cleaner

* fix boolean

* no relative paths

* install wheel by python

* switch to install

* revert back to simple wheel

* refactor import export tests

* move setup keys back to not disturbe tests

* remove docstyle till that is fixed

* update references

* continue on error

* add docstring test

* use relativ action references

* Change step / job docstrings

* update to merge

* reformat comments 1

* fix docstrings 2

* fix docstrings 3

* fix docstrings 4

* fix docstrings 5

* fix docstrings 6

* fix docstrings 7

* fix docstrings 8

* fix docstirns 9

* fix docstrings 10

* docstring adjustments

* update the remaining docstrings

* small docstring changes

* fix function name

* update support files for docstrings

* Add missing args to docstrings

* Remove outdated function

* Add docstrings for the 'build' app

* Make API code cleaner

* add more docstrings for plugin app

* Remove dead code for plugin settings
No idea what that was even intended for

* ignore __init__ files for docstrings

* More docstrings

* Update docstrings for the 'part' directory

* Fixes for related_part functionality

* Fix removed stuff from merge 99676ee

* make more consistent

* Show statistics for docstrings

* add more docstrings

* move specific register statements to make them clearer to understant

* More docstrings for common

* and more docstrings

* and more

* simpler call

* docstrings for notifications

* docstrings for common/tests

* Add docs for common/models

* Revert "move specific register statements to make them clearer to understant"

This reverts commit ca96654622.

* use typing here

* Revert "Make API code cleaner"

This reverts commit 24fb68bd3e.

* docstring updates for the 'users' app

* Add generic Meta info to simple Meta classes

* remove unneeded unique_together statements

* More simple metas

* Remove unnecessary format specifier

* Remove extra json format specifiers

* Add docstrings for the 'plugin' app

* Docstrings for the 'label' app

* Add missing docstrings for the 'report' app

* Fix build test regression

* Fix top-level files

* docstrings for InvenTree/InvenTree

* reduce unneeded code

* add docstrings

* and more docstrings

* more docstrings

* more docstrings for stock

* more docstrings

* docstrings for order/views

* Docstrings for various files in the 'order' app

* Docstrings for order/test_api.py

* Docstrings for order/serializers.py

* Docstrings for order/admin.py

* More docstrings for the order app

* Add docstrings for the 'company' app

* Add unit tests for rebuilding the reference fields

* Prune out some more dead code

* remove more dead code

Co-authored-by: Oliver Walters <oliver.henry.walters@gmail.com>
2022-06-02 01:37:39 +10:00
Matthias Mair e1d22f538d resort imports 2022-05-20 17:24:51 +02:00
Matthias Mair cce3d3a35d make imports on function level 2022-05-16 18:01:16 +02:00
Matthias Mair 2df049fe05 Merge branch 'master' of https://github.com/inventree/InvenTree into matmair/issue3005 2022-05-16 17:48:01 +02:00
Matthias Mair 0f5c03e44c use direct import instead of text for offload 2022-05-16 17:45:51 +02:00
Oliver c51f052f25 Merge pull request #3011 from matmair/matmair/issue2996
Remove python 2 code
2022-05-17 00:51:31 +10:00
Oliver 042cb021de Merge pull request #2957 from SchrodingersGat/locate-mixin
Adds plugin mixin to "locate" items
2022-05-16 22:57:20 +10:00
Matthias ecccfbd546 Remove encoding header
Fixes #2996
2022-05-15 20:33:00 +02:00
Matthias 136d642703 Merge branch 'fix-boolean' of https://github.com/matmair/InvenTree into fix-boolean 2022-05-15 17:52:34 +02:00
Matthias 77aeecf23a make operators simpler 2022-05-15 17:52:23 +02:00
Oliver Walters 097afed78e Adds metadata mixin class for adding JSON field to internal tables
- Add metadata field to stocklocation
- Add metadata field to stockitem
2022-05-16 00:45:16 +10:00
Oliver 47ddafb728 Fix edge case when converting stock item to variant
- If the stock item had been created as part of a Build Order, and subsequently "converted" to a variant part, the conversion operation will fail
- Patch allows the build reference to be linked based on either the base part, or any conversion options
2022-05-12 15:15:51 +10:00
Oliver db018af0ce Prevent some model based events from triggering during data import 2022-05-10 13:43:16 +10:00
Oliver Walters adbcd68fe8 Refactor "uninstall stock item" form to use the API 2022-05-04 17:25:24 +10:00
Oliver Walters 24da5d41b8 Add migration file 2022-04-26 20:21:15 +10:00
Oliver Walters 314cec5ad0 Generate default batch code for stock items 2022-04-26 20:18:33 +10:00
Oliver Walters 292d28d378 Account for cases where serial number could be an integer! 2022-04-22 01:00:02 +10:00
Oliver Walters 9a9ed5f192 Fix validation of duplicate IPN
- Duplicate IPN check does not apply if an empty IPN value is set
- Note that "if x" is a more pythonic test than "if x not in [None, '']"
2022-04-22 00:36:30 +10:00
Oliver Walters cffeb62bd1 Bug fix for StockItem.clean() 2022-04-19 20:28:13 +10:00
Oliver Walters 141f6ccbdf Increase unit testing for StockItem API 2022-04-19 20:10:07 +10:00
Oliver 5f503c7e0f PEP fxies 2022-04-19 13:16:45 +10:00
Oliver 48170ee096 Update stock item variant conversion form to use new function 2022-04-19 13:04:17 +10:00
Oliver 87de7e4beb Adds "convert_to_variant" function for the StockItem model 2022-04-19 12:52:36 +10:00
Oliver 82840b0590 Adds custom delete routine for PartCategory model 2022-03-10 15:01:20 +11:00
Oliver 24af134a87 Fix behaviour when deleting a StockLocation
Adds unit tests
2022-03-10 14:56:44 +11:00
Oliver 6fcc9ec8f0 Unit test fixes 2022-03-07 15:01:15 +11:00
Oliver 0adf89e793 Add unit tests for serial number functionality 2022-03-07 14:07:01 +11:00
Oliver 2f3f57148a Refactor previous code for looking up "previous" and "next" serial numbers
- Old way was extremely inefficient, especially when large spaces existed between serial numbers
- New method reduces O(n) to O(1)
2022-03-07 13:47:38 +11:00
Oliver Walters 89f2317e1c Bug fix for stock serial numbers:
- empty strings do not count as a valid serial number
2022-03-06 22:18:31 +11:00
Oliver aeb9dfe371 Allows deletion of serialized stock 2022-03-01 23:58:30 +11:00
Oliver 65e4ee5793 PEP style fixes 2022-02-25 23:01:02 +11:00
Oliver 7c26d8f71d Refactor ownership for StockItem model 2022-02-25 22:58:00 +11:00
Oliver d6764573c3 Refactor "ownership" concepts in templates
- Template code was very messy
- Makes it a lot "simpler"
- Adds convenience functions to the StockLocation model
- Adds pre-calculated data to the template
- Display ownership information on the stocklocation page
2022-02-25 22:45:24 +11:00
Oliver fea6091e42 Fix incorrect inputs 2022-02-25 15:57:30 +11:00
Oliver ef9c6e9fe0 Bug fix 2022-02-25 15:56:40 +11:00
Oliver 9e3406efc9 Add stock tracking code to indicate stock has been consumed by a build order 2022-02-25 15:56:09 +11:00
Oliver 9153b62ea0 Handle case when aggregation returns None 2022-01-27 10:49:30 +11:00
Matthias cbd84a23f9 fix default empy dict 2022-01-21 00:11:26 +01:00
Oliver 1243923944 Event refactoring 2022-01-10 17:28:44 +11:00
Oliver 886b1f1d72 Simplify event triggering
- add generic receivers for database actions
- exclude django_q tables, otherwise we get an infinite loop!

Ref: https://stackoverflow.com/questions/17507784/consolidating-multiple-post-save-signals-with-one-receiver/32230933#32230933
2022-01-10 17:24:53 +11:00