Commit Graph

1054 Commits

Author SHA1 Message Date
Oliver Walters
08f958dd72 Add form for setting part category 2019-09-17 14:06:11 +10:00
Oliver Walters
94cd28ecb9 Add ability so set category for multiple parts at once 2019-09-17 13:49:57 +10:00
Oliver Walters
b5b7dc0fbf Fix tests 2019-09-17 12:29:18 +10:00
Oliver Walters
d40fc59616 Reload page after ordering part 2019-09-17 10:34:41 +10:00
Oliver Walters
a9d1cadc12 Add link to documentation 2019-09-17 00:41:28 +10:00
Oliver Walters
7f5aba423a Export full_name for parts 2019-09-15 22:23:28 +10:00
Oliver Walters
db04f399c1 Simplify exporting of BOM for a part 2019-09-15 22:21:12 +10:00
Oliver Walters
204cd967aa Include status label text when exporting stocktake data 2019-09-15 20:14:27 +10:00
Oliver Walters
03043e67c7 Perform full validation when importing data 2019-09-15 19:58:05 +10:00
Oliver Walters
2d17f957f1 Remove code duplication for part data export 2019-09-15 19:52:28 +10:00
Oliver Walters
2bc97764c7 Allow more file formats for BOM import 2019-09-15 19:45:59 +10:00
Oliver Walters
4ac8353099 Create a custom URL field, which allows the user-specified validators
- Ref: https://stackoverflow.com/questions/41756572/django-urlfield-with-custom-scheme
- Apply this to the URL field in the Part model
2019-09-14 00:04:08 +10:00
Oliver Walters
8578a3b8d1 Add searching to other admin views 2019-09-13 23:32:49 +10:00
Oliver Walters
9b1d0bee3b Add filtering and searching to Part admin 2019-09-13 23:27:22 +10:00
Oliver Walters
6a19e94feb Include some extra calculated fields for Part export (readonly) 2019-09-13 23:15:34 +10:00
Oliver Walters
23b814569a Manager for importing StockLocation data 2019-09-13 22:44:50 +10:00
Oliver Walters
37ab3d214d Import/export management for the Company app
- Company
- SupplierPart
- SupplierPriceBreak
2019-09-13 22:39:15 +10:00
Oliver Walters
c579854e89 Export 'default_supplier' field 2019-09-13 22:29:11 +10:00
Oliver Walters
2bc34853e2 import/export manager for PartParameter 2019-09-13 22:27:32 +10:00
Oliver Walters
c469e48f26 Data manager for BomItem 2019-09-13 22:23:40 +10:00
Oliver Walters
bacd70687d Management class for PartCategory import / export 2019-09-13 22:20:08 +10:00
Oliver Walters
89acc778f5 Skip unchanged lines for matching ID values 2019-09-13 22:11:31 +10:00
Oliver Walters
ac36048230 Improve import/export of Part
- Can now import part data
- Either UPDATE existing rows, or CREATE new ones
2019-09-13 22:08:31 +10:00
Oliver Walters
8a68313e5e Customize admin export of Part object 2019-09-13 21:39:37 +10:00
Oliver Walters
567826165c Improve BomItem editing form
- Don't allow duplication of an item already in the BOM
- Remove the parent part from the BOM
2019-09-13 16:26:44 +10:00
Oliver Walters
8716281f7e Add unit test for invalid characters 2019-09-13 11:15:54 +10:00
Oliver Walters
61d2ce67ef Hide dropdown-menu for functionality that does not yet exist 2019-09-12 22:01:18 +10:00
Oliver Walters
4dc7da41b9 pepper 2019-09-09 20:02:52 +10:00
Oliver Walters
ddb041fe44 Filter by category too 2019-09-09 19:59:56 +10:00
Oliver Walters
776fc8b1e5 Add 'used_in' count to part export 2019-09-09 19:37:59 +10:00
Oliver Walters
8723a6c219 Add 'purchaseable' field to part export 2019-09-09 19:10:57 +10:00
Oliver Walters
fff42e7dbb Export stock based on part 2019-09-08 23:58:40 +10:00
Oliver Walters
e4fc44c135 More test 2019-09-08 20:36:51 +10:00
Oliver Walters
2a203be5cc Tests for part parameters 2019-09-08 20:18:21 +10:00
Oliver Walters
dac61eafa2 Fixed tests
- Tree classes now need extra configuration in the fixture
- Check for null pk when cleaning a tree node
2019-09-08 19:41:54 +10:00
Oliver Walters
a5189b8f3f Replace a recursive function 2019-09-08 19:28:40 +10:00
Oliver Walters
0d6a3d3b28 BOM table now refreshes the table rather than the page 2019-09-08 19:24:47 +10:00
Oliver Walters
3eb3c43e5c Change foreign keys to TreeForeignKey 2019-09-08 19:19:39 +10:00
Oliver Walters
678157aac4 Update StockLocation and PartCategory models
- Use the MPTT functionality once more
2019-09-08 19:13:13 +10:00
Oliver Walters
2f11fccb73 Migrate InvenTreeTree to using MPTT model 2019-09-08 14:08:49 +10:00
Oliver Walters
c45fcb45cf Delete a part parameter template from the settings view 2019-09-07 20:30:51 +10:00
Oliver Walters
42ade0e0b7 Edit part parameter template from settings view 2019-09-07 20:28:38 +10:00
Oliver Walters
67ea0fa887 Create a new part parameter template 2019-09-07 19:53:47 +10:00
Oliver Walters
f415e2040e API endpoint for PartParameter and PartParameterTemplate 2019-09-07 19:44:10 +10:00
Oliver Walters
13270617b9 Ensure PartParameterTemplate name is unique 2019-09-07 19:43:41 +10:00
Oliver Walters
9c864aa619 Hide the 'sellable' tag for now
- Keep hidden until parts can actually be sold
2019-09-07 10:51:39 +10:00
Oliver Walters
dac1264878 Fixed unit tests 2019-09-06 12:48:31 +10:00
Oliver Walters
38b88e44bd Bug fix 2019-09-05 20:22:47 +10:00
Oliver Walters
37d9c59a0e Add API endpoint for validating a BOM item 2019-09-05 19:29:51 +10:00
Oliver Walters
1ea7bdf843 Add a note 2019-09-05 13:12:49 +10:00
Oliver Walters
0508c2dcaf Use the hash for each line item to calculate the total BOM hash 2019-09-05 13:10:26 +10:00
Oliver Walters
7671eb2b22 Add a checksum field to the bom line item 2019-09-05 12:58:11 +10:00
Oliver Walters
e903c1858f PEP 2019-09-03 22:45:45 +10:00
Oliver Walters
20b37a2d11 Test fixes 2019-09-03 22:45:11 +10:00
Oliver Walters
41806089e3 Select the default currency if one is not specifically selected 2019-09-03 22:33:50 +10:00
Oliver Walters
3682e9b5fb Display currency selection in part pricing dialog 2019-09-03 22:28:53 +10:00
Oliver Walters
7314f33d6d Add currency selection field for price calculation form 2019-09-03 22:00:43 +10:00
Oliver Walters
ef674061de Part category collapse is persistent 2019-08-29 15:50:48 +10:00
Oliver Walters
43967e302b Add ablity to serialize an existing quantity of stock
- Do not have to serialize all the stock
- Add tests
- Add function to copy entire stock transaction history
2019-08-28 21:12:16 +10:00
Oliver Walters
d5ad53c788 Add docstring 2019-08-28 19:44:46 +10:00
Oliver Walters
f94be40857 Style fixes 2019-08-28 19:44:02 +10:00
Oliver Walters
586a46175d Add modals for editing or deleting part parameters 2019-08-28 19:39:47 +10:00
Oliver Walters
51e4bdd821 URL / view for editing a PartParameter 2019-08-21 13:11:19 +10:00
Oliver Walters
e77aeec2ce Change to ImportExport model admin 2019-08-20 18:04:22 +10:00
Oliver Walters
9630c90924 Add buttons to edit/delete parameters 2019-08-20 18:01:20 +10:00
Oliver Walters
307a04da58 Add View/Form for creating a new PartParameterTemplate 2019-08-20 14:33:18 +10:00
Oliver Walters
15a42878db Improved view for creating a new part parameter
- Hide the Part input
- Reduce options based on parameters that already exist!
2019-08-20 14:28:15 +10:00
Oliver Walters
c68c79ea43 Create view / form / URL for PartParameter creation 2019-08-20 14:14:21 +10:00
Oliver Walters
db834802e3 Add uniqueness check for PartParameterTemplate name field
- Case insensitive
2019-08-20 13:08:06 +10:00
Oliver Walters
a228b38e5d Fix parameter lookup 2019-08-20 13:03:36 +10:00
Oliver Walters
e6819b5396 Change model - add PartParameterTemplate 2019-08-20 13:02:00 +10:00
Oliver Walters
6393ddad53 Add param tab to Part detail view 2019-08-20 12:44:00 +10:00
Oliver Walters
0955166fae Add admin interface for PartParameter 2019-08-20 12:43:23 +10:00
Oliver Walters
1cd0051316 Add page to display part parameters 2019-08-20 12:43:12 +10:00
Oliver Walters
2f6357b136 Add PartParameter table 2019-08-20 12:31:43 +10:00
Oliver Walters
6106d33732 More span / button fixes 2019-08-14 16:40:14 +10:00
Oliver Walters
6c73649687 PEP fix 2019-08-14 16:35:26 +10:00
Oliver Walters
5963f7ed01 Deleted unused form 2019-08-14 13:54:16 +10:00
Oliver Walters
f90ffcd3db Fix buttons for BOM upload form 2019-08-14 13:35:48 +10:00
Oliver Walters
bd61c89094 Tests for stock app views 2019-08-09 20:13:23 +10:00
Oliver Walters
45d5667ccc PEP fixes 2019-08-08 23:36:32 +10:00
Oliver Walters
b872a12131 Test for making part variant 2019-08-08 23:34:32 +10:00
Oliver Walters
3a87cd866c Tests for part creation
- Need more tests for POST action
2019-08-08 23:32:34 +10:00
Oliver Walters
51e4a4c006 Tests for BomItem forms 2019-08-08 23:22:26 +10:00
Oliver Walters
d6f1fe74d1 Tests for PartCategory forms 2019-08-08 23:16:03 +10:00
Oliver Walters
ab3e66d578 Test for BOM download 2019-08-08 23:10:07 +10:00
Oliver Walters
f299248063 Improve testing for part export 2019-08-08 23:06:22 +10:00
Oliver Walters
21d2c434ff Test for part export view
- Needs some more work (parts need supplier parts!)
2019-08-08 23:04:58 +10:00
Oliver Walters
afcd411358 (partial) tests for attachment forms 2019-08-08 23:00:01 +10:00
Oliver Walters
3a9494ee69 Test for Part Editing form 2019-08-08 22:50:17 +10:00
Oliver Walters
7db97f2226 Test Part QR Code view 2019-08-08 22:45:10 +10:00
Oliver Walters
a70484caff Test PartDetail view 2019-08-08 22:45:02 +10:00
Oliver Walters
f26243af97 Tests for Part index / 2019-08-08 22:19:17 +10:00
Oliver Walters
adbc4db3d5 Remove 'set part category' button (doesn't do anything) 2019-08-07 10:11:00 +10:00
Oliver Walters
4fc2a22ba6 PEP fix 2019-08-07 10:07:30 +10:00
Oliver Walters
8904733ac0 Include part stock information 2019-08-07 10:05:12 +10:00
Oliver Walters
ab0da6aaae Include more part data in export 2019-08-07 09:55:18 +10:00
Oliver Walters
dda4569f76 Export selected parts
- Select which parts to export in the table
- Export base information
- Include supplier part information
2019-08-07 09:52:49 +10:00
Oliver Walters
3dca7ba353 Include supplier information in BOM 2019-08-07 09:12:53 +10:00
Oliver Walters
e66fd956f9 Fix available stock display 2019-08-02 15:13:47 +10:00
Oliver Walters
0a328687a5 BOM hash includes reference fields 2019-08-02 11:11:28 +10:00
Oliver Walters
077ad9482e Fix display of part trackable status info 2019-07-23 11:57:33 +10:00
Oliver Walters
a42371598c Fix part deletion template
- Display list of stock items which will be thusly deleted
2019-07-23 11:55:51 +10:00
Oliver Walters
9e5eadd6c3 Set serial numbers when creating a new stock item 2019-07-23 10:31:34 +10:00
Oliver Walters
23d03d6b9b Build completion now handles unique serial numbers
Provide a method to test if a serial number matches for a given part
2019-07-22 15:55:36 +10:00
Oliver Walters
23d19d6784 Remove old debug messages 2019-07-11 23:07:52 +10:00
Oliver
1f9e6f4a68
Merge pull request #411 from SchrodingersGat/bom-upload
BOM upload
2019-07-10 15:17:58 +10:00
Oliver Walters
3e9288b26d Better display of stock availability 2019-07-10 14:50:21 +10:00
Oliver Walters
d6750652f0 Python styling fixes 2019-07-10 13:38:14 +10:00
Oliver Walters
c5e17070fb Reference and note fields cannot be None 2019-07-10 13:30:51 +10:00
Oliver Walters
8637d46981 Display inactive parts in part used_in view 2019-07-10 13:18:07 +10:00
Oliver Walters
322710d603 Handle dimension error in tablib 2019-07-10 13:04:47 +10:00
Oliver Walters
482a5dae4b Save the selected BOM data 2019-07-10 12:27:19 +10:00
Oliver Walters
c2dbc37f70 Display rows that contain errors with a reddish background 2019-07-10 12:04:24 +10:00
Oliver Walters
2e3676207e Reference and notes fields now persist too 2019-07-10 09:40:04 +10:00
Oliver Walters
99dee64f79 Pass part selection back-and-forwards between client/server 2019-07-10 09:22:38 +10:00
Oliver Walters
782d740323 Pass row quantity back to the server 2019-07-09 19:45:36 +10:00
Oliver Walters
e9eb814990 Rendering for part selection step 2019-07-09 19:21:54 +10:00
Oliver Walters
20ec36d3ea Enforce authentication for API access 2019-07-08 19:20:00 +10:00
Oliver Walters
b185abbb87 Catch case in which a request.GET is not available
(cherry picked from commit 9296c0ba0f8c4914cd04b820c6172f8c3a794750)
2019-07-08 09:41:20 +10:00
Oliver Walters
dff8d1fb95 Supply part name for auto-fill when creating a new part 2019-07-08 09:33:44 +10:00
Oliver Walters
85e803f345 Create a new part directly from the BOM view
- Pass data through to the part creation
- Populate the new part into the select dropdown
-
2019-07-07 13:06:59 +10:00
Oliver Walters
ff5af8f217 Add a button to create a new part if necessary 2019-07-07 11:56:44 +10:00
Oliver Walters
a6da3ed4a4 Match each part to the list of available parts
- Order selections based on "best" match
2019-07-07 11:44:17 +10:00
Oliver Walters
f251620917 select2ify part selection 2019-07-07 11:24:40 +10:00
Oliver Walters
bd30ac037b Generate a list of allowed BOM items and pass to the form template 2019-07-07 11:22:01 +10:00
Oliver Walters
3930651c59 Make Reference and Notes fields editable 2019-07-07 09:57:23 +10:00
Oliver Walters
b77bfc74ea Pass column and index data through to each cell in the template
Allows for much more intelligent template rendering
2019-07-07 09:50:59 +10:00
Oliver Walters
0e95fb773f Column adjustments 2019-07-07 08:48:42 +10:00
Oliver Walters
b1bcb0d3d2 Extract quantity data from BOM 2019-07-03 21:45:56 +10:00
Oliver Walters
fa90c92a2a Redirect to step 3 2019-07-03 21:19:31 +10:00
Oliver Walters
064431e94f Fix template to display list of missing BOM columns 2019-07-03 20:14:13 +10:00
Oliver Walters
29a27ce598 Improve rendering for field selection form 2019-07-03 20:08:49 +10:00
Oliver Walters
c419207420 Insert a blank <td> as needed 2019-07-02 19:48:30 +10:00
Oliver Walters
a25522746e Reposition buttons 2019-07-02 19:46:39 +10:00
Oliver Walters
c959e8f62c Add ability to remove individual rows from BOM uploader 2019-07-02 19:45:26 +10:00
Oliver Walters
fc5682f565 Form is now fully transferred to a formview 2019-07-02 19:20:45 +10:00
Oliver Walters
4008a9fb45 Upload the selected BOM file 2019-07-02 19:07:59 +10:00
Oliver Walters
802255c62d Render GET as a formview rather than ajaxview 2019-07-02 19:02:19 +10:00
Oliver Walters
3c44fcaf5b moving towards implementing bom upload as a page form rather than a modal form 2019-07-02 18:43:26 +10:00
Oliver Walters
a23595c28d Improve data importing
- Automatically prune empty rows
- prevent automatic conversion of integers to floats
2019-06-29 19:56:04 +10:00
Oliver Walters
b089a61f74 Improve rendering a bit 2019-06-29 19:48:15 +10:00
Oliver Walters
ad27d912e1 Add some optional upload fields
(These will come in handy later)
2019-06-28 20:48:23 +10:00
Oliver Walters
cfbfc6e258 Delete columns in-place using javascript 2019-06-28 20:41:45 +10:00
Oliver Walters
3c2f3c2c2c Add option to delete columns 2019-06-28 20:24:18 +10:00
Oliver Walters
54762713f3 Pass row data back through again 2019-06-28 20:21:21 +10:00
Oliver Walters
fd8ed44833 Detect duplicate columns, and missing columns 2019-06-28 20:16:17 +10:00
Oliver Walters
857a214e7d Pass the form field data back to the server 2019-06-28 19:58:56 +10:00
Oliver Walters
58336482fe POST the data back again 2019-06-28 19:48:22 +10:00
Oliver Walters
fb96651c15 Render column selection options
- Guess which header is which
2019-06-28 19:40:27 +10:00
Oliver Walters
60050e9f32 Don't restrict BomItem form to active parts for editing 2019-06-28 10:20:37 +10:00
Oliver Walters
b6a6e2dae7 Change the manner in which active parts are filtered for BOM
- Prevented BOM from displaying for an inactive part
- Now manually filter the queryset in the form view
2019-06-28 10:00:23 +10:00
Oliver Walters
ed2461adf1 Show which variants are inactive in the variant table 2019-06-28 09:43:50 +10:00
Oliver Walters
67b53d9983 PEP 2019-06-28 00:15:23 +10:00
Oliver Walters
872329c340 Fix BOM validation button 2019-06-28 00:10:24 +10:00
Oliver Walters
808d332bda Show BomItem reference field in BOM table 2019-06-27 23:57:21 +10:00
Oliver Walters
4648db6ce5 Pass file data through to the next form page 2019-06-27 23:49:01 +10:00
Oliver Walters
a9396f4c74 Fix uggo buttons 2019-06-27 23:13:12 +10:00
Oliver Walters
6af51c5b35 Limit the number of lines returned in row_count 2019-06-27 23:11:54 +10:00
Oliver Walters
c4944268f3 Count the number of rows in the BOM file 2019-06-27 23:09:06 +10:00
Oliver Walters
9813205419 Perform 'matching' on imported field names 2019-06-27 22:57:55 +10:00
Oliver Walters
45d16f2c42 Create new file bom.py for BOM helper functions
- New class for managing BOM upload
2019-06-27 22:46:11 +10:00
Oliver Walters
65c7454124 Require certain headers to be present in the file 2019-06-27 22:16:24 +10:00
Oliver Walters
2831ac55c4 Link to download a BOM template file 2019-06-27 22:15:58 +10:00
Oliver Walters
3085db44af Add 'reference' field to BOM item model 2019-06-27 21:44:40 +10:00
Oliver Walters
72486448b8 Fix form title 2019-06-27 21:17:33 +10:00
Oliver Walters
86695cf2bb Validate uploaded BOM file with tablib
- Check to see if a bom_file file object was uploaded
- Pass off to the BOM file validity checker
- Only a valid tabulated dataset will be accepted
2019-06-27 21:09:33 +10:00
Oliver Walters
8b207d0d1d Initial work towards uploading a BOM file
- Create a form with a single FileField
2019-06-27 21:09:33 +10:00
Oliver Walters
2dc43f0cf1 no message 2019-06-27 21:08:49 +10:00
Oliver Walters
cbfb6bd24c no message 2019-06-25 19:16:24 +10:00
Oliver Walters
d6fcf85cd2 Set part category for multiple parts at once 2019-06-25 19:15:39 +10:00
Oliver Walters
faf2fd408f PEP fix 2019-06-24 00:01:34 +10:00
Oliver Walters
a5306ec81b Add 'revision' field to part
- e.g. different versions of a product
- Can keep old versions in database and mark as inactive
2019-06-20 21:46:16 +10:00
Oliver Walters
8328e7e13c Improve uniqueness checking for Part 2019-06-20 21:37:25 +10:00
Oliver Walters
d5119e1aff Replace some cog icons 2019-06-20 21:28:00 +10:00
Oliver Walters
6e1b7bf3f0 Fix buttons in attachment table 2019-06-19 19:05:18 +10:00
Oliver Walters
d837a1f9a2 Buttonize the part category page 2019-06-19 18:54:32 +10:00
Oliver Walters
fefbcf2ed9 Clean up buttons for stock location 2019-06-19 18:49:05 +10:00
Oliver Walters
afcbd73026 Consolidate visual style for "Part" tabs 2019-06-19 07:58:14 +10:00
Oliver Walters
c0e66dd9a0 Added pretty buttons to stock item page 2019-06-18 23:56:00 +10:00
Oliver Walters
0285d3ee83 Improved button mechanics 2019-06-18 22:54:32 +10:00
Oliver Walters
8842d50c72 Replace a whole bunch o' drop-down options with pretty buttons 2019-06-18 22:49:43 +10:00
Oliver Walters
ee5722857f Re-add 'new stock item' button 2019-06-18 22:13:54 +10:00
Oliver Walters
3349d0c0df Remove part 'type' fields from form
These are now presented as virtual buttons
2019-06-18 21:43:51 +10:00
Oliver Walters
1d67b4cdaa Sliders now update the part options via AJAX 2019-06-18 19:24:10 +10:00
Oliver Walters
65a8a30f87 Many improves of the slidies 2019-06-18 19:05:09 +10:00
Oliver Walters
783b8964d1 Add 'slide' for part type 2019-06-18 18:49:52 +10:00
Oliver Walters
c9c851bead Add 'virtual' part flag 2019-06-18 18:34:07 +10:00
Oliver Walters
a47be24410 Fixed test cases 2019-06-18 01:38:43 +10:00
Oliver Walters
ea0da4c8f8 PEP 2019-06-18 01:32:29 +10:00
Oliver Walters
79cd05423c Custom aggregation of Part API
- Reduced full part query from 2.5s to 200ms!
2019-06-18 01:31:30 +10:00
Oliver Walters
37dba91b4a Add 'include self' option to getUniqueChildren 2019-06-18 01:02:56 +10:00
Oliver Walters
16b6ae8d61 Fixed up some stupid recursion on the Tree model template 2019-06-18 00:59:54 +10:00
Oliver Walters
642660d76e Improved speed of stock tree 2019-06-18 00:09:42 +10:00
Oliver Walters
037dc6a0d6 Reduced tree time with some better queries 2019-06-17 23:52:49 +10:00
Oliver Walters
ff6df9741f Perform model validation on API serializers
If you have a class, why not subclass it?!
2019-06-13 23:03:58 +10:00
Oliver Walters
1b06d86f59 Export purchase order to CSV 2019-06-13 22:38:10 +10:00
Oliver Walters
c9b946655c Add some more data to Part serializer 2019-06-13 18:33:15 +10:00
Oliver Walters
f0796327b3 Improve display of part base page 2019-06-12 00:29:47 +10:00
Oliver Walters
e4f5cc8ccd Order from a part page 2019-06-12 00:04:20 +10:00
Oliver Walters
1cb6c67086 Launch order dialog from the 'Parts' table 2019-06-11 23:55:20 +10:00
Oliver Walters
bc05146e72 First pass at 'order parts' fom
- Select parts in modal form window
2019-06-11 23:37:32 +10:00
Oliver Walters
8e82488f70 Display 'net stock' value on front page 2019-06-11 21:58:20 +10:00
Oliver Walters
3954b33fb7 Use 'on_order' count in calculation for parts we need to order 2019-06-10 23:05:14 +10:00
Oliver Walters
b8bcc5ce0c Separate display of open and closed purchase orders (per part) 2019-06-10 22:31:19 +10:00
Oliver Walters
9efdd836f4 Tweak the 'on_order' calculation 2019-06-10 21:56:50 +10:00
Oliver Walters
31ad31365a Calculate parts on order for a Part / SupplierPart 2019-06-07 08:37:25 +10:00
Oliver Walters
67248ec4dd List purchase orders for a given part 2019-06-05 21:47:22 +10:00
Oliver Walters
f731c45ce8 Replace other choice fields with commonized status code 2019-06-04 23:38:52 +10:00
Oliver Walters
782ad57f52 Re-enable image hovering where appropriate 2019-06-03 22:03:22 +10:00
Oliver Walters
7a3b186a0c Fix double loading of modals.html 2019-06-03 21:51:59 +10:00
Oliver Walters
219c438b82 Part name uniqueness is case insensitive 2019-06-02 20:37:59 +10:00
Oliver Walters
64d541f453 Hide result types which return no results 2019-06-02 20:28:17 +10:00
Oliver Walters
0b88953706 Form field rearrangement 2019-06-02 20:07:30 +10:00
Oliver Walters
ba26acd487 Rename some fields
- Oops didn't think that through, gotta go through and fix the data now...
2019-06-02 19:46:30 +10:00
Oliver Walters
fd2e2a71f9 Add search results for part-category and stock-location 2019-06-02 19:15:05 +10:00
Oliver Walters
3427f81a34 Improve part information display
- Better terminology
2019-06-02 14:47:40 +10:00
Oliver Walters
8214aef0db Add template for hover_image 2019-06-01 21:13:51 +10:00
Oliver Walters
7ac52d4d9f Optionally select which column gets grouped
- Allow grouping by numerical values
2019-05-28 19:12:10 +10:00
Oliver Walters
4d518f4512 PEP 2019-05-26 16:05:54 +10:00
Oliver Walters
8715e29c31 Add ability to make variant from template 2019-05-26 16:00:27 +10:00
Oliver Walters
91a5a7f051 Simplify part model
- Remove 'varian't or ''revision' field
- Part name must be unique across database
2019-05-26 12:16:57 +10:00
Oliver Walters
1312148721 Filter parts by template or variant status (in API) 2019-05-26 11:15:41 +10:00
Oliver Walters
41eb195940 Thanks, PEP 2019-05-26 00:42:40 +10:00
Oliver Walters
e5bb6284db Add variant-of to part detail view 2019-05-26 00:41:24 +10:00
Oliver Walters
2138977b07 Include template attachments in attachment count 2019-05-26 00:39:36 +10:00
Oliver Walters
d563e873ed Change some icons 2019-05-26 00:35:52 +10:00
Oliver Walters
f3b17b2164 Add some form fields (might have to remove later) 2019-05-26 00:32:18 +10:00
Oliver Walters
21dd893c01 Display templated parts as italic in the part list 2019-05-26 00:29:17 +10:00
Oliver Walters
75b21bdd8f Visual tweaks 2019-05-26 00:20:03 +10:00
Oliver Walters
7881a67db4 Calculate stock based on variant stock if part is a template 2019-05-26 00:01:01 +10:00
Oliver Walters
c45a506a10 Rename field part.has_variants to part.is_template 2019-05-25 23:58:31 +10:00
Oliver Walters
9c1c008f33 Show attachments for the Template part under attachments tab 2019-05-25 23:50:24 +10:00
Oliver Walters
08ac7e2a36 Rendering tweaks 2019-05-25 23:45:26 +10:00
Oliver Walters
3d57483f0e Add a 'new varian't button 2019-05-25 23:43:06 +10:00
Oliver Walters
bbe66472ee Display list of part variants 2019-05-25 23:40:59 +10:00
Oliver Walters
39c4611598 Add a tab for part variants 2019-05-25 23:31:23 +10:00
Oliver Walters
0e684071fa Display message if a part is a template or a variant 2019-05-25 23:21:38 +10:00
Oliver Walters
bc778c1451 Prevent a Part from both having variants and being a variant of something else 2019-05-25 22:43:47 +10:00
Oliver Walters
1a2fb9e170 Add 'has_variants' and 'variant_of' field for Part
- StockItem cannot point to a part which is a template part
2019-05-25 22:27:36 +10:00
Oliver Walters
ecfde46838 Fix error in BomItem creation 2019-05-25 21:57:59 +10:00
Oliver
aeaf4e7dc9
Merge pull request #363 from SchrodingersGat/rest-simplify
Rest simplify
2019-05-23 23:03:39 +10:00
Oliver Walters
c2ca5a24f8 PEP 2019-05-23 22:59:56 +10:00
Oliver Walters
5664fc5472 Detail in StockItem API now optional 2019-05-23 22:57:45 +10:00
Oliver Walters
9052ccc181 Make 'part_detail' field in SupplierPart serializer optional 2019-05-23 22:44:37 +10:00
Oliver Walters
cf5b8d0249 Optional part_detail and sub_part_detail for BOM API
- Significant speed boost on request
- Request the relevent information at the right place
2019-05-23 22:36:19 +10:00
Oliver Walters
d386c2a6f9 Include total stock in PartBrief serializer 2019-05-23 21:51:27 +10:00
Oliver Walters
27f956bffa Part detail rendering improvements 2019-05-22 23:27:43 +10:00
Oliver Walters
cd7bc6cce5 Include pricing information in part supplier view
Also some CSS tweaks to secondary modal buttons
2019-05-22 22:11:27 +10:00
Oliver Walters
d3a5661dbd Serializer fix 2019-05-21 15:42:52 +10:00
Oliver Walters
d1dfad591d Pepperoni 2019-05-21 15:38:22 +10:00
Oliver Walters
988a35d237 Serialize BOMItem pricing information
- Account for quantity
- Prefetch required items
2019-05-21 15:15:54 +10:00
Oliver Walters
2817e6ca31 Added further part pricing 2019-05-21 14:08:40 +10:00
Oliver Walters
9d5b938ced Don't serialize 'available_stock' in PartSerializer 2019-05-21 07:57:44 +10:00
Oliver Walters
ca9d6e6e25 PEP fixes 2019-05-21 00:54:48 +10:00
Oliver Walters
49ed17db56 Add a line 2019-05-21 00:52:17 +10:00
Oliver Walters
4b41766312 And mode 2019-05-21 00:31:34 +10:00
Oliver Walters
72aba30e81 More hungry fetching 2019-05-21 00:16:00 +10:00
Oliver Walters
157919f47a More prefetching
-
2019-05-21 00:06:57 +10:00
Oliver Walters
6ae48d07c4 Cleanup pricing algorithms 2019-05-20 23:53:39 +10:00
Oliver Walters
8adb4f6c20 Further query reduction
- Also improved query reporting middleware
2019-05-20 23:26:27 +10:00
Oliver Walters
d15b09a5f4 Don't serialize pricing
- Saves MANY queries and provides drastic speedup
2019-05-20 23:03:19 +10:00
Oliver Walters
18ff80312b Fixes 2019-05-20 22:53:01 +10:00
Oliver Walters
4bde00d925 AND AGAIN
Use --fake to force the migration
2019-05-20 22:24:18 +10:00
Oliver Walters
ee2ddbf512 Reduce some database queries by using aggregate Sum 2019-05-20 21:47:30 +10:00
Oliver Walters
70be052c74 Rebuilt migrations again (arrrrrrrrrrrrrrrrrrrrrrrrrrgh never do this) 2019-05-20 21:45:37 +10:00
Oliver Walters
34620b22b0 Add a middleware to count queries
- https://www.dabapps.com/blog/logging-sql-queries-django-13/
2019-05-20 18:51:57 +10:00
Oliver Walters
fc75ab7420 Reduce response time for stock list
Initial time - 6.2s
After prefetch - 4.3s
2019-05-20 08:44:52 +10:00
Oliver Walters
5055226490 Reduce BOM listing time to ~1.8s 2019-05-20 08:31:03 +10:00
Oliver Walters
cee1062b51 Prefetch locations - 2.6s
However the 'total_stock' and 'available_stock' fields are still the majority of the response time
2019-05-20 08:24:05 +10:00
Oliver Walters
6766063c8b Reducing request time for PartList API
- Initial query time = 5.91s
- Prefetch related part categories = 3.64s
2019-05-20 08:13:22 +10:00
Oliver Walters
73041a3fe6 Fix div-by-zero for part pricing 2019-05-20 07:53:23 +10:00
Oliver Walters
9ddedc6915 Restart migrations
- Easier to delete all the migrations and start again :'(
2019-05-19 00:11:41 +10:00
Oliver Walters
a54760b219 Improve pricing display 2019-05-18 23:44:43 +10:00
Oliver Walters
ffda5a1b29 Add warning if no pricing data available 2019-05-18 23:13:18 +10:00
Oliver Walters
368193d397 Fix formatting 2019-05-18 23:09:12 +10:00
Oliver Walters
dcf79338c1 Add pop-up pricing window for part
- Cost to purchase from suppliers
- Cost to build from BOM
2019-05-18 23:09:08 +10:00
Oliver Walters
54ccf6c7b3 PEP 2019-05-18 23:09:04 +10:00
Oliver Walters
b64a29b897 Display build pricing information 2019-05-18 23:09:00 +10:00
Oliver Walters
2b098942b0 Fix pricing bug
- Include BOM item pricing in API
2019-05-18 23:08:56 +10:00
Oliver Walters
2a1fd2b03b More complex pricing calculations
- Calculate BOM price for a part
- Calculate total pricing for a part (build or purchase)
- Display pricing information in BOM table
2019-05-18 23:08:51 +10:00
Oliver Walters
cdc55bb5d3 PEP fixes 2019-05-18 23:08:42 +10:00
Oliver Walters
a3d1591929 Display part pricing in Part view
- Calculate min_price and max_price based on provided supplier information
2019-05-18 23:08:38 +10:00
Oliver Walters
0cfb243eb3 Move SupplierPart and SupplierPriceBreak to the 'Company' app
- https://docs.djangoproject.com/en/2.2/ref/models/options/#django.db.models.Options.db_table
- https://stackoverflow.com/questions/3519143/django-how-to-specify-a-database-for-a-model
- And others, presumably
2019-05-18 23:08:34 +10:00
Oliver Walters
5043c354b1 Set default value for SupplierPriceBreak
Edit or Delete a SupplierPriceBreak
2019-05-18 23:08:30 +10:00
Oliver Walters
fc3072a459 Form for creating a new price break for a supplier part 2019-05-18 23:08:25 +10:00
Oliver Walters
1163f60b23 Return price breaks in the correct order 2019-05-18 23:08:21 +10:00
Oliver Walters
a3cd54875c Update validator for supplier price break 2019-05-18 23:08:17 +10:00
Oliver Walters
92632b2ef7 PartAttachment attachment file is actually required! 2019-05-18 23:08:13 +10:00
Oliver Walters
a1461de297 Add supplierpricebreak model to the admin interface 2019-05-18 23:08:09 +10:00
Oliver Walters
613c96e093 Part attachment comment field is required 2019-05-18 23:08:04 +10:00
Oliver Walters
a2dbdfe794 Remove 'single_price' field from supplier part
- Instead we will rely entirely on the SupplierPriceBreak model
2019-05-18 23:07:58 +10:00
Oliver Walters
a95e77c429 Pre-fill allocation count 2019-05-18 12:17:57 +10:00
Oliver Walters
a2eeb7e946 Bug fix for part/stock
- Re-introduce the button to create a new stock item
2019-05-17 16:35:16 +10:00
Oliver Walters
117fd701cd Refactor some code 2019-05-16 22:19:49 +10:00
Oliver Walters
0a1887477c Create template for stock table 2019-05-16 22:15:44 +10:00
Oliver Walters
b4df96aaee Simplify extended filters 2019-05-16 19:14:43 +10:00
Oliver Walters
fae44c3002 Bug fix for part deep-copy
- Don't copy an image if an image doesn't exist
2019-05-15 09:21:31 +10:00
Oliver Walters
292e29e95e Add some more secondary modals 2019-05-15 07:50:54 +10:00
Oliver Walters
c6331255de Fixes 2019-05-15 07:23:55 +10:00
Oliver Walters
8c92c2c2a1 Display overage values in BOM table 2019-05-15 07:23:02 +10:00
Oliver Walters
68ae38a7d7 Calculate total quantity required for a build (including overages) 2019-05-15 00:36:02 +10:00
Oliver Walters
a80c11f3ce Add function to infer default_supplier for a Part 2019-05-15 00:22:10 +10:00
Oliver Walters
f6baf5d2ae Add 'overage' field to BOM item
- Accepts absolute or percentage numbers
- Default = blank
- Now with custom validator! (for limited time only, limit one per customer)
2019-05-15 00:16:34 +10:00
Oliver Walters
f979edef8e Prevent double loading of stock.js 2019-05-14 23:47:15 +10:00
Oliver Walters
2e5b3bfdf9 Prevent multiple loads of part.js 2019-05-14 23:44:33 +10:00
Oliver Walters
58cc1cda77 Only load api.js once 2019-05-14 23:43:16 +10:00
Oliver Walters
0ffe2666b3 Added some missing help text 2019-05-14 23:36:22 +10:00
Oliver Walters
505b7941b1 Add link to delete a part
- Part must first be deactivated
2019-05-14 23:33:25 +10:00
Oliver Walters
76e6094977 Add secondary modal to BOM 2019-05-14 23:30:32 +10:00
Oliver Walters
9d50f2a6ac Toot toot all aboard the refactor tractor
- launchModalForm now accepts a 'secondary' parameter which is a list of secondary modals to attach
2019-05-14 23:27:45 +10:00
Oliver Walters
97c4e5acbf Add some secondary buttons to the part-create form 2019-05-14 23:19:56 +10:00
Oliver Walters
a316681ec8 Pass object data back to modal when creating new object 2019-05-14 23:04:00 +10:00
Oliver Walters
2164cac28a PEP 2019-05-14 18:32:20 +10:00
Oliver Walters
d1de6eb1f9 Copy across default tags when creating a new part 2019-05-14 17:32:29 +10:00
Oliver Walters
0842bd5833 Add 'default_keywords' field to a category 2019-05-14 17:30:24 +10:00
Oliver Walters
02033c2157 Add 'keywords' field to Part
- Shows up in search results
2019-05-14 17:23:20 +10:00
Oliver Walters
069cebb669 PEP 2019-05-13 23:03:37 +10:00
Oliver Walters
06e95819c9 Update form for deleting a BOM item 2019-05-13 23:00:04 +10:00
Oliver Walters
00b37b62db Updated form to delete part category 2019-05-13 22:55:40 +10:00
Oliver Walters
ffa5a25fa9 Updated form for deleting part attachments 2019-05-13 22:53:58 +10:00
Oliver Walters
fcdddf6bb6 Cleaup for delete supplier part form 2019-05-13 22:52:20 +10:00
Oliver Walters
3e4d778539 Change menu ordering 2019-05-13 21:56:39 +10:00
Oliver Walters
e1e5cde60f Renamed copyBomFrom to deepCopy
- Allows passing of more data (in the future) e.g. tags, etc
- Performs copy of the part image
2019-05-13 21:54:52 +10:00
Oliver Walters
00f7ece6b4 PEP fixes 2019-05-13 21:42:05 +10:00
Oliver Walters
2408318eae Add new view to duplicate a part
- Allows 'deep_copy' (copies all BOM items for the duplicated part)
2019-05-13 21:41:32 +10:00
Oliver Walters
42bbf95c42 Include the sub_part ID in the BOM hash 2019-05-13 18:09:59 +10:00
Oliver Walters
f410957d8d Refactored Stock test to use fixtures 2019-05-12 21:46:38 +10:00
Oliver Walters
e3a9a70678 Add a form/view/etc for BOM validation 2019-05-12 16:27:50 +10:00
Oliver Walters
c7f0d56be4 Don't display BOM hash any more! 2019-05-12 16:09:11 +10:00
Oliver Walters
d17e36b9f9 Add BOM checksum info panels to the BOM view 2019-05-12 13:24:58 +10:00
Oliver Walters
9149619f38 Make BOM tab badge red if the BOM is not validated 2019-05-12 13:12:04 +10:00
Oliver Walters
06deccca1c Rename check_bom to validate_bom 2019-05-12 13:01:41 +10:00
Oliver Walters
985986a844 New functions for Part model
- is_bom_valid() - Tests if bom checksums match
- check_bom() function to mark the BOM as valid
2019-05-12 12:53:56 +10:00
Oliver Walters
2431ba2a04 Add new fields to Part model
- bom_checksum (stores checksum calculated when the BOM was checked)
- bom_checked_by (User who checked the BOM)
- bom_checked_date (When the BOM was last checked)
2019-05-12 12:47:28 +10:00
Oliver Walters
4c3032e2f0 Add function to calculate BOM hash
- Uses hashlib.md5
2019-05-12 12:42:20 +10:00
Oliver Walters
82fb43e1e3 PEP 2019-05-12 12:29:16 +10:00
Oliver Walters
d5dbc1b072 Display supplier part URL in table 2019-05-12 12:20:15 +10:00
Oliver Walters
1d36ea3e2e Add a 'full_name' field for Part
- Combines IPN | Name | Variant
- Use this to display in most views
2019-05-12 12:16:04 +10:00
Oliver Walters
b3cca1d851 Improve form management when possible part matches are found
- Display the checkbox always
- Display a warning message above the form
2019-05-11 18:07:37 +10:00
Oliver Walters
19854b4709 Improve str2bool to validate checkbox return values
- A checked checkbox returns 'on' :|
2019-05-11 18:06:17 +10:00
Oliver Walters
2e5b0bc961 PEP 2019-05-11 12:29:51 +10:00
Oliver Walters
84d2fce8ca Add a 'confirm_creation' input if there are possible part matches 2019-05-11 12:29:02 +10:00
Oliver Walters
d9c0d2f5e3 Update PartCreate form
- Display list of close matches
- Invalidate form (for now)
2019-05-11 11:55:17 +10:00
Oliver Walters
1b8ca34ddb Added fuzzy search function for matching against part names 2019-05-11 10:36:24 +10:00
Oliver Walters
343850c4f0 Cleanup for part.views 2019-05-11 09:51:45 +10:00
Oliver Walters
7f1cdaf73f PEP 2019-05-10 22:52:45 +10:00
Oliver Walters
8ac180a9e3 Add validator to part name
- Check for 'illegal' characters
- Mostly just as a test for validators!
2019-05-10 22:52:06 +10:00
Oliver Walters
68b273aae1 Fixed some more part name displays 2019-05-10 22:18:56 +10:00
Oliver Walters
f76f1f54ae Add 'variant' field to Part model
- Display 'long_name' which is concatenation of name and variant
2019-05-10 22:17:13 +10:00