Commit Graph
100 Commits
Author SHA1 Message Date
Oliver f460b14014 Add more unit testing for BOM file upload
- Test "levels" functionality
- Test part guessing / introspection
2022-02-10 00:13:37 +11:00
Oliver ffb319e136 Disable "submit" button to prevent multiple simultaneous uploads 2022-02-10 00:00:23 +11:00
Oliver d38a8adf4c Add button to display original row data 2022-02-09 23:49:26 +11:00
Oliver 383835aa89 Display initial errors when importing data 2022-02-09 23:26:32 +11:00
Oliver aa962aac83 Improve part "guess" algorithm 2022-02-09 23:26:13 +11:00
Oliver c0e940a898 Catch potential error when posting invalid numbers via REST API 2022-02-09 23:26:00 +11:00
Oliver 001437e083 Increased error checking when uploading BOM data 2022-02-09 23:02:09 +11:00
Oliver 2af617e92b Adds check for duplicate parts when importing 2022-02-09 11:34:25 +11:00
Oliver 67a9c0aeec PEP fixes 2022-02-09 11:31:36 +11:00
Oliver a9e1357ffb Return per-row error messages when extracting data 2022-02-09 11:30:58 +11:00
Oliver 29c3064ae7 Raise error if imported dataset contains no data rows 2022-02-09 11:27:51 +11:00
Oliver 692039f712 Add unit testing for uploading invalid BOM files 2022-02-09 08:38:28 +11:00
Oliver 8fc2695873 Catch potential file processing errors 2022-02-09 08:31:08 +11:00
Oliver 5376c5b022 Allow POST of files for unit testing 2022-02-08 23:54:48 +11:00
OliverandGitHub 1f473e42d0 Update README.md
Add "follow on twitter" button
2022-02-08 12:07:44 +11:00
OliverandGitHub 23e6caf1d9 Merge pull request #2610 from SchrodingersGat/po-button-fix
Fix logic for enabling "place order" button
2022-02-08 09:27:10 +11:00
Oliver dbf1e1b463 Fix logic for enabling "place order" button 2022-02-08 08:59:42 +11:00
OliverandGitHub ba1c7caa2a Merge pull request #2605 from SchrodingersGat/po-refresh
Do not hide the "submit order" button
2022-02-07 15:02:52 +11:00
OliverandGitHub c94c0902b6 Merge pull request #2603 from SchrodingersGat/bom-upload-improvements
Bom upload improvements
2022-02-07 14:46:25 +11:00
Oliver 55ff026696 Remove incorrect validation routine 2022-02-07 14:24:40 +11:00
Oliver 64b1523013 Do not hide the "submit order" button 2022-02-07 13:55:25 +11:00
OliverandGitHub c906cc5cfa Merge pull request #2604 from SchrodingersGat/currency-timeout
Handle errors when connecting to currency exchange
2022-02-07 13:54:25 +11:00
Oliver 11f541303b unit test fixes 2022-02-07 13:32:35 +11:00
Oliver 11c187f81d PEP fixes 2022-02-07 13:14:51 +11:00
Oliver a5a2fcd84a Only update rates on server launch if there are no rates available 2022-02-07 13:13:45 +11:00
Oliver 7265360648 JS linting 2022-02-07 13:07:03 +11:00
Oliver 4f638be874 Handle errors when connecting to currency exchange
- Also adds timeout when connecting
2022-02-07 13:04:42 +11:00
Oliver c6dc196053 PEP fixes 2022-02-07 12:32:50 +11:00
Oliver 509d58979e Remove old templates 2022-02-07 12:29:15 +11:00
Oliver 11d5900b69 Update upload file template 2022-02-07 12:25:09 +11:00
Oliver 131663cecc Adds options to clear existing BOM data when uploading 2022-02-07 12:20:18 +11:00
Oliver 4f26df3124 bug fix 2022-02-07 11:35:51 +11:00
Oliver 2ade14c47b Check for duplicate BOM items as part of serializer validation 2022-02-07 11:35:07 +11:00
Oliver a2c48d308f Adds a BomUpload endpoint to handle upload of complete BOM 2022-02-07 10:54:37 +11:00
Oliver 80818c464a Allow decimal values for BOM overage 2022-02-07 09:24:23 +11:00
Oliver 0963602bea Add optional part lookup by "part" field 2022-02-07 08:37:39 +11:00
Oliver 81271bf6b9 Add "clear input" callback function 2022-02-05 10:01:07 +11:00
Oliver bdf0b5b446 Construct required form fields
- required some additional functionality in forms.js
2022-02-05 09:53:35 +11:00
Oliver c620107625 Add callback for "remove row" button 2022-02-05 09:11:01 +11:00
Oliver 8a86932c7b Initialize related field for "part" selection 2022-02-05 01:36:46 +11:00
Oliver 8a8d718534 Basic javascript function to construct BOM table from extracted data 2022-02-05 01:26:34 +11:00
Oliver 3bd39ec752 Attempt to auto-extract part information based on provided data 2022-02-05 01:26:08 +11:00
Oliver 137c9ff2f2 POST request now returns extracted data rows (as an array of dicts) 2022-02-05 00:30:00 +11:00
Oliver 707787d82c Fix existing bug with BomExport functionality - could not select BOM format 2022-02-05 00:12:40 +11:00
Oliver 611592694b Adds serializer for uploading a BOM file and extracting fields 2022-02-05 00:12:11 +11:00
OliverandGitHub 448cd18468 Merge pull request #2586 from nwns/feature/maintdefaultstorage
Switch Maint Mode to use default storage backend
2022-02-04 07:31:59 +11:00
OliverandGitHub 647b2be5cf Merge pull request #2599 from SchrodingersGat/hide-part-pricing-history
Hide part pricing history
2022-02-03 16:57:23 +11:00
Oliver c12191d3ed Disable multi-level BOM requests 2022-02-03 16:33:10 +11:00
Oliver 722e947745 Only calculate pricing data if required 2022-02-03 16:30:48 +11:00
OliverandGitHub 0c1971bfbb Merge pull request #2598 from SchrodingersGat/loaddata-skip-steps
Skips some specific steps when importing data
2022-02-03 16:29:02 +11:00
Oliver 525b6d399d Hide pricing history tab if not enabled 2022-02-03 16:23:52 +11:00
Oliver 8c52924020 Adds new setting to optionally display or hide part pricing information 2022-02-03 16:16:42 +11:00
OliverandGitHub 328e9639f7 Merge pull request #2597 from SchrodingersGat/binary-settings
Binary settings
2022-02-03 16:07:13 +11:00
Oliver aeb8967473 PEP fixes 2022-02-03 16:06:00 +11:00
Oliver 78b1c7a22b Skips some specific steps when importing data
- We need to prevent certain operations from running when we are importing data
- This is to prevent unique database constraints from being violated

- Do not register plugins during data import
- Do not launch notification events
2022-02-03 16:03:46 +11:00
Oliver bf528db4ab Display error if setting update failes 2022-02-03 15:46:44 +11:00
OliverandGitHub eef15b13ec Merge pull request #2596 from SchrodingersGat/bom-export
Fixes issue with BOM export
2022-02-03 15:30:48 +11:00
OliverandGitHub 2b11d5ed52 Merge pull request #2595 from SchrodingersGat/build-refresh
Build refresh
2022-02-03 15:30:41 +11:00
Oliver 5cd5ee81af Layout changes 2022-02-03 15:30:36 +11:00
Oliver ababab944b Boolean settings are now directly clickable 2022-02-03 15:25:21 +11:00
Oliver 72be63572e Fixes issue with BOM export
- Cascading BOM export was broken
2022-02-03 14:52:38 +11:00
Oliver c6089a2828 Reload completed output table 2022-02-03 14:47:35 +11:00
OliverandGitHub 0d6cdb1761 Merge pull request #2593 from SchrodingersGat/build-output-quantity
Prevent build outputs being created with zero quantity
2022-02-03 14:43:29 +11:00
Oliver 66e5aa4060 Reload build output table when an active build output is deleted 2022-02-03 14:23:25 +11:00
Oliver 566fd87e86 PEP style fixes 2022-02-03 14:16:33 +11:00
Oliver b387b4e173 Prevent build outputs being created with zero quantity 2022-02-03 14:13:13 +11:00
OliverandGitHub a41eca1cb3 Merge pull request #2588 from SchrodingersGat/migration-fix
Prevent AttributeError from being thrown
2022-02-02 13:34:04 +11:00
Oliver ea1f1b398e Prevent AttributeError from being thrown
Ref: https://github.com/inventree/InvenTree/issues/2587
2022-02-02 12:40:10 +11:00
OliverandGitHub dd3ac58f38 Merge pull request #2584 from SchrodingersGat/build-output-requires
Build output requires
2022-02-01 16:35:59 +11:00
Oliver Walters 00d7cf88e8 Throw validation error if no build outputs have been started 2022-02-01 15:58:18 +11:00
Oliver Walters 318e84883a Adds a warning if no build outputs are created 2022-02-01 15:51:38 +11:00
OliverandGitHub 3462cf796b I18n merge (#2582)
* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin
2022-01-30 21:44:23 +11:00
OliverandGitHub 916216acaa Merge pull request #2580 from matmair/patch-1
fix spelling
2022-01-29 11:16:12 +11:00
OliverandGitHub cc7d9eca1a Merge pull request #2578 from SchrodingersGat/substitution-fix
Display "base" part when selecting substitutes
2022-01-28 15:09:55 +11:00
Oliver e879c97e1e Display "base" part when selecting substitutes 2022-01-28 13:23:44 +11:00
OliverandGitHub 60c5635a21 Merge pull request #2576 from SchrodingersGat/translation-fix
Fix message
2022-01-28 09:25:50 +11:00
OliverandGitHub 7e5656ba56 Merge pull request #2575 from SchrodingersGat/allocation-table-improvements
Fixes for new "allocation" tab
2022-01-28 08:56:19 +11:00
Oliver 90474af76d Fix message 2022-01-28 08:47:03 +11:00
Oliver 22892565ed JS linting fixes 2022-01-28 08:28:52 +11:00
Oliver f6ffef66e0 Fixes for new "allocation" tab
- Fix broken link
- Add "description" column
- Add thumbnail images
2022-01-27 16:25:26 +11:00
OliverandGitHub 0ea0edf1bb Merge pull request #2574 from SchrodingersGat/allocation-tab
Allocation tab
2022-01-27 15:58:41 +11:00
Oliver 5ec1d5aab8 Display allocations for individual stock items 2022-01-27 15:21:04 +11:00
Oliver 60cde7fe13 Includes sales order allocation data 2022-01-27 15:01:26 +11:00
Oliver c43d1840ea Load table of build order allocations 2022-01-27 14:55:19 +11:00
OliverandGitHub 09bba40c20 Merge pull request #2573 from SchrodingersGat/bom-stock-export
Expand available stock information when exporting Bill of Materials
2022-01-27 14:47:41 +11:00
Oliver 3889baf37a Adds a tab for "allocations" 2022-01-27 14:25:57 +11:00
Oliver 11125e9f60 Fixes for unit tests 2022-01-27 14:19:42 +11:00
OliverandGitHub 18e7b7a759 Merge pull request #2572 from SchrodingersGat/serialization-bug-fix
Serialization bug fix
2022-01-27 14:11:12 +11:00
Oliver b027f126e8 Expand available stock information when exporting Bill of Materials 2022-01-27 13:59:13 +11:00
Oliver 3127b1b34a Remove incorrect line 2022-01-27 13:48:16 +11:00
Oliver 4a45ba3a44 Fix data mutability issues 2022-01-27 13:37:42 +11:00
Oliver d0aa09337a Simplify creation of serialized stock via the API
- Fixes atomicity issues
- Don't create-then-delete stock items
2022-01-27 12:08:50 +11:00
Oliver 9153b62ea0 Handle case when aggregation returns None 2022-01-27 10:49:30 +11:00
OliverandGitHub d25397e95c Merge pull request #2571 from SchrodingersGat/po-line-item-patch
Add clean() function for PurchaseOrderLineItem
2022-01-26 23:44:29 +11:00
Oliver Walters 9a2d47cd53 style fixes 2022-01-26 23:17:58 +11:00
Oliver Walters 681e007092 Add clean() function for PurchaseOrderLineItem
Also adds renderer for purchaseorder model
2022-01-26 22:56:00 +11:00
OliverandGitHub 34d8a4b4df Merge pull request #2570 from matmair/style-fix
Small style fixes
2022-01-25 15:39:26 +11:00
OliverandGitHub b9d5906e10 Merge pull request #2563 from matmair/code-fix
Small code quality fixes
2022-01-21 11:28:21 +11:00
OliverandGitHub 9ed0a6fece Merge pull request #2559 from SchrodingersGat/modal-form-fixes
Modal form fixes
2022-01-19 19:39:27 +11:00
Oliver Walters 9ffcdbc417 Fix issues when re-opening a secondary modal 2022-01-19 19:18:20 +11:00