Commit Graph

985 Commits

Author SHA1 Message Date
Oliver Walters
4ffaad3f1a Add a default_location to the PartCategory model
- If a part does not specify a default location, look at the default location of  the category
2019-05-04 19:00:11 +10:00
Oliver Walters
59987940c8 green frog memes 2019-05-04 18:47:54 +10:00
Oliver Walters
9aa1a70f18 QR code improvements
- Display QR codes as links to served images
- The qr_code plugin caches these images in the background
- Make a qr_code template to push out as a modal form
- Create a QRCodeView to simplify display of QR codes
- Add option to launchModalForm() to disable the 'submit' button

Refactored QR code display for

- StockLocation
- StockItem
- Part
2019-05-04 18:46:57 +10:00
Oliver Walters
8e65c0a120 Fixes for some broken views 2019-05-04 17:20:05 +10:00
Oliver Walters
4ef1e4fc78 Explicitly mark some CharField as non blank 2019-05-04 17:01:31 +10:00
Oliver Walters
1d9e31c229 Add a spinning loading icon to modal forms 2019-05-04 16:58:03 +10:00
Oliver Walters
b6cace2681 Add 'options' drop-down for Part table in Category view
- Doesn't do anything yet
2019-05-04 16:41:45 +10:00
Oliver Walters
b1cdb7833d Add confirmation modal to activate/deactivate a part
- New question modal available
2019-05-04 16:31:23 +10:00
Oliver Walters
7dc24e5a55 ARRH 2019-05-04 11:31:07 +10:00
Oliver Walters
4fe3b9d779 add docstrings 2019-05-04 11:28:23 +10:00
Oliver Walters
28600ebc79 There's always another PEP 2019-05-04 11:27:11 +10:00
Oliver Walters
b32a9ed597 Add 'About InvenTree' modal
- Accessible from the top-right dropdown menu
- Add InvenTree/version.py which contains helper functions
2019-05-04 11:23:30 +10:00
Oliver Walters
517262b233 PEP fixes 2019-05-04 01:04:30 +10:00
Oliver Walters
6c7613ba2f Fix form title 2019-05-04 01:03:43 +10:00
Oliver Walters
5f6909d32a Add django-dbbackup app
- https://github.com/un1t/django-cleanup
- Backup location defaults to temp directory
2019-05-04 01:00:58 +10:00
Oliver Walters
4af59f0ca9 Fixed part image upload
- Image was being saved twice
- Don't call super().post in AjaxUpdateView
- Instead, handle properly
2019-05-04 00:38:17 +10:00
Oliver
b6d6b648ef
Merge pull request #217 from SchrodingersGat/no-records-found
Improved table rendering
2019-05-04 00:21:36 +10:00
Oliver
4619cf91f7
Merge pull request #216 from SchrodingersGat/stock-item-fix
Handle case where a new stock item is to be created without the part …
2019-05-04 00:03:02 +10:00
Oliver Walters
2eb825b0e6 Improved table rendering 2019-05-04 00:02:53 +10:00
Oliver Walters
a116c3f191 Handle case where a new stock item is to be created without the part being specified 2019-05-03 23:52:30 +10:00
Oliver Walters
109b6b868c Cature all form AJAX errors
- remove all references to alert()
- Display error modal instead
2019-05-03 23:46:00 +10:00
Oliver Walters
2b3094eac4 Add error dialog box for forms
- Display status message
- Display status code
- Display extended error message in collapsible section
2019-05-03 23:41:31 +10:00
Oliver Walters
bade13f3b8 Fixed stocktake form to match new scheme 2019-05-03 23:08:31 +10:00
Oliver Walters
11af4e5683 Disable form input unless the form is valid
- Disable on first open until server responds
- Disable after form submission until next server response
2019-05-03 23:00:05 +10:00
Oliver Walters
8d6a4415e5 Better documentation for the modal form jQuery code 2019-05-03 22:33:55 +10:00
Oliver Walters
9c4a5d10fa PEP fixes 2019-05-03 08:04:30 +10:00
Oliver Walters
019d5aa4ba Add 'completed_by' field to Build
- On Complete() or Cancel() user field is filled in
2019-05-03 07:58:46 +10:00
Oliver Walters
0be4ee5d92 PEP fix 2019-05-02 21:29:27 +10:00
Oliver Walters
1295390b03 Rendering changes 2019-05-02 21:28:47 +10:00
Oliver Walters
a0ad95ab28 Save the date of Build cancellation 2019-05-02 21:23:53 +10:00
Oliver Walters
b91de1af7b Separate active / complete / cancelled builds 2019-05-02 21:16:35 +10:00
Oliver
6482b54bc9
Merge pull request #205 from SchrodingersGat/qr-codes
Qr codes
2019-05-02 21:15:34 +10:00
Oliver Walters
9f70fff813 Added docstring 2019-05-02 20:58:33 +10:00
Oliver Walters
5a234a1070 Added barcode for Part object 2019-05-02 20:57:53 +10:00
Oliver Walters
c901294a48 Add more information to the Barcode
- API endpoint URL
- Add barcode generation for StockLocation
2019-05-02 20:50:20 +10:00
Oliver Walters
d49ce465e5 Removed UUID field from StockItem
- QR code is now created based on a JSON object
- This will make it extensible to other things such as StockLocation
- Created a helper function to make Barcode objects
2019-05-02 20:40:56 +10:00
Oliver Walters
194a0962f3 PEP fixes 2019-05-02 20:19:08 +10:00
Oliver Walters
38100520df Add 'to_order' and 'to_build' collapsible panels 2019-05-02 20:18:34 +10:00
Oliver Walters
4d7ac870e0 Use the collapse template for the stock location list view 2019-05-02 19:02:03 +10:00
Oliver Walters
fbb120da53 Use collapse template in allocation page 2019-05-02 18:53:03 +10:00
Oliver Walters
18c5ad7a6e Add template for collapsible item 2019-05-02 18:46:39 +10:00
Oliver
2f7c02133e
Merge pull request #201 from SchrodingersGat/part-attachments
Part attachments
2019-05-02 17:46:58 +10:00
Oliver Walters
6e8c1bcc84 Add views to Create / Edit / Delete a PartAttachment
- Buttons to edit or delete existing attachments
- Button to add a new attachment
- Fixed conflicting migrations
2019-05-02 17:29:21 +10:00
Oliver Walters
08b429fdb8 SupplierPart detail page now splits details into two columns
- Price details in right-hand column
2019-05-02 01:15:26 +10:00
Oliver Walters
505191089f Added buttons to edit and delete attachments 2019-05-02 01:06:06 +10:00
Oliver Walters
9614ac2958 Move attachments list to attachments tab 2019-05-02 01:06:06 +10:00
Oliver Walters
ad6f4e19b1 Add 'comment' field to part attachment model 2019-05-02 01:06:06 +10:00
Oliver Walters
2181c82a31 Add 'attachments' tab for Part 2019-05-02 01:05:32 +10:00
Oliver Walters
20cfa71db2 Added migration file 2019-05-02 00:59:59 +10:00
Oliver Walters
22f8c1d8c7 Adjust model field (haven't run make migrate yet) 2019-05-02 00:57:44 +10:00
Oliver Walters
8a8de2b78f Add migration file
- Should pass this time
2019-05-02 00:49:30 +10:00
Oliver Walters
7e149f817c Small change to uuid should trigger migrations 2019-05-02 00:41:29 +10:00
Oliver Walters
09b7846310 Improve edit form for BuildItem
- Hide the build field
- Limit the choices for StockItem (don't let user change the allocation!)
2019-05-02 00:25:19 +10:00
Oliver Walters
a4aec425be Render better build description in complete form
- List of items to be removed from stock
- Detail of what will be created
2019-05-02 00:12:28 +10:00
Oliver Walters
905d78e25c Complete build now works
- Marks build as complete
- Deletes temporary BuildItem objects
- Preselects the part's default_location if there is one
- Creates a new stockitem in the selected location
2019-05-02 00:04:39 +10:00
Oliver Walters
29f7b1a32b Revert "More intelligent passing of context data in AjaxView"
This reverts commit fbb9a708f5.
2019-05-01 22:52:33 +10:00
Oliver Walters
fbb9a708f5 More intelligent passing of context data in AjaxView
- If context is not explicitly supplied, use default get_context_data() function
2019-05-01 22:45:41 +10:00
Oliver Walters
7f63a94f15 Cancel build function now works 2019-05-01 22:22:14 +10:00
Oliver Walters
98109bb1a1 Make build allocation much more intuiitive
- Display current allocation + total allocation requirement
- Color code results
- Required custom 'multiply' template tag
2019-05-01 22:12:34 +10:00
Oliver Walters
ad1d75c259 Improve table formatting when no allocation items found 2019-05-01 18:54:54 +10:00
Oliver Walters
7c11d917de Bug fixes
- Part creation form was setting a field as HiddenInput() rather than its widget
- Added 'comment' file to FileAttachment model
2019-05-01 09:40:49 +10:00
Oliver Walters
7dd960a299 PEP fixes 2019-05-01 08:19:57 +10:00
Oliver Walters
436d158cfe Merge remote-tracking branch 'inventree/master' into build-allocation
# Conflicts:
#	InvenTree/company/templates/company/tabs.html
2019-05-01 08:15:58 +10:00
Oliver Walters
fc42cca10e Automatically allocate parts when a Build is created
- If there is only one StockItem to choose from, allocate parts from that StockItem
2019-05-01 08:08:50 +10:00
Oliver Walters
b6becbc570 Rework build allocation
- Each item renders as a collapsible panel with overview data at the top
2019-05-01 07:48:46 +10:00
Oliver Walters
7e7ac60a1a Tweaks
- Can't edit build status directly
- Refresh BOM table on reload
- Hide Company tabs that are not yet functional
2019-04-30 20:55:28 +10:00
Oliver Walters
fb89574c42 Skeleton code for Build cancel() and complete() functions
- BuildComplete view
2019-04-30 20:39:01 +10:00
Oliver Walters
d518739643 PEP fixes 2019-04-30 19:17:54 +10:00
Oliver Walters
11d3975860 Build javascript improvements
- Alter 'no records found' text
- Reload allocation table on edit or delete
2019-04-30 19:08:13 +10:00
Oliver Walters
d061250a9a Changed delete form close button to "Cancel" 2019-04-30 18:57:37 +10:00
Oliver Walters
efbef251b6 Added views / forms to edit and delete BuildItem objects
- Alter stock allocation
- remove (unallocate) stock from a build
2019-04-30 18:51:05 +10:00
Oliver Walters
24ed6f393b When adding new item allocations, filter the available stock items
- Must match the appropriate part
- Remove items that are already allocated
2019-04-30 16:38:09 +10:00
Oliver Walters
6961d1ec68 Catch BuildItem errors in clean() 2019-04-30 16:35:55 +10:00
Oliver Walters
fbd5a2a270 Register BuildItem in admin interface 2019-04-30 16:35:40 +10:00
Oliver Walters
db5521f02e Limit available choicse in form
- Only allow selection of StockItem which matches the correct part
2019-04-30 15:48:26 +10:00
Oliver Walters
0208c6efe6 New Form and View to create a new BuildItem object
- Allocates stock to a build
2019-04-30 15:35:35 +10:00
Oliver Walters
1b32f9d650 Removed unused function 2019-04-30 15:14:59 +10:00
Oliver Walters
b192deb465 Calculate total allocation data per-row 2019-04-30 14:54:42 +10:00
Oliver Walters
aa491e336d Move javascript for Build allocation to build.js 2019-04-30 14:42:48 +10:00
Oliver Walters
a3d4c81939 Display and edit build URL field 2019-04-30 14:04:43 +10:00
Oliver Walters
395db4df38 Pepe fixes 2019-04-30 00:18:58 +10:00
Oliver Walters
8ec4101edd Reduce items presented in BOM creation list
- Don't allow selection of parts that are already in the BOM!
2019-04-30 00:16:20 +10:00
Oliver Walters
5c5411132a First pass at build allocation table
- Uses bootstrap-table "detailView" function
2019-04-29 23:56:02 +10:00
Oliver Walters
192f604b76 Override get_queryset for BuildItem API view
- Special management to allow filtering by part
2019-04-29 23:45:05 +10:00
Oliver Walters
c29827e45a Add API endpoint and serializer for BuildItem model 2019-04-29 22:59:42 +10:00
Oliver Walters
17d9d25fb9 Require Build and StockItem to be unique_together in BuildItem class 2019-04-29 22:56:40 +10:00
Oliver Walters
f42116c0d9 Renamed 'stock' to 'stock_item' 2019-04-29 22:33:39 +10:00
Oliver Walters
e25579141e Rename BuildItemAllocation to BuildItem 2019-04-29 22:30:21 +10:00
Oliver Walters
6326d6d050 Fixed spelling mistake 2019-04-29 22:21:18 +10:00
Oliver Walters
989611cae2 Added BuildItemAllocation Model
- Used to link stock items to a build
2019-04-29 22:19:13 +10:00
Oliver Walters
e471313435 PEP fix 2019-04-29 18:43:44 +10:00
Oliver Walters
3b838d29ec Small fixes
- Hide some tabs that aren't functional yet
- Hide fields instead of marking them as disabled
- Default behaviour is to allow all hosts
2019-04-29 18:35:16 +10:00
Oliver
99b386fb95
Merge pull request #185 from SchrodingersGat/active-part
Inactive part
2019-04-29 00:04:26 +10:00
Oliver Walters
07fbaa9dd9 Test fix
- Part list API handles 'category' filtering a bit differently
- Probably need to address this
2019-04-29 00:01:57 +10:00
Oliver Walters
05333e7e7d PEP fixes 2019-04-28 23:58:14 +10:00
Oliver Walters
87411293cf docstring improvements 2019-04-28 23:57:29 +10:00
Oliver Walters
bc12af5994 Remove the 'supplier_part' field when first creating a Part object
- As the Part does not yet exist, there are no matching SupplierPart objects
2019-04-28 23:55:21 +10:00
Oliver Walters
4e3702384b Limit SupplierPart option in Part edit form
- Only allow selection of SupplierPart that match the Part being edited
2019-04-28 23:50:35 +10:00
Oliver Walters
6612e91aec Remove ability to delete part via API 2019-04-28 23:41:47 +10:00
Oliver Walters
73f672495d Use API to mark part as active/inactive 2019-04-28 23:40:26 +10:00
Oliver Walters
492d705b39 Hide inactive parts in parts list 2019-04-28 23:22:54 +10:00
Oliver Walters
1a66a12d57 Enable Part API to filter by active status 2019-04-28 23:15:30 +10:00
Oliver Walters
495d414d54 Hide some options if a part is not active 2019-04-28 23:12:59 +10:00
Oliver Walters
260d890052 If a part is not active, display an INACTIVE Message on part page 2019-04-28 23:08:54 +10:00
Oliver Walters
c2a35b6656 Add 'active' field to Part model 2019-04-28 23:00:38 +10:00
Oliver Walters
2f7f49c116 PEP fix 2019-04-28 11:54:40 +10:00
Oliver Walters
a9224445b6 Added docstring 2019-04-28 11:54:08 +10:00
Oliver Walters
ba49b080b0 Some small tweaks 2019-04-28 11:46:53 +10:00
Oliver
e5e6480099
Merge pull request #181 from SchrodingersGat/supplier-parts
Supplier parts
2019-04-28 11:28:32 +10:00
Oliver Walters
1171953e65 Limit SupplierPart options in CreateBomItem form
- If Part is selected, limit the options in supplier_part field
- Only allow supplier_parts which map back to the same part
2019-04-28 11:24:26 +10:00
Oliver Walters
a9fbbc3a37 Remove references to get_object_or_404
- Properly handle DoesNotExist errors
2019-04-28 11:09:19 +10:00
Oliver Walters
624c5094c5 Prevent editing of SupplierPart fields if initial values are provided 2019-04-28 10:57:32 +10:00
Oliver Walters
101ce53cd3 Update docstrings for InvenTree/views.py 2019-04-28 10:46:07 +10:00
Oliver Walters
ff068de16d Simplify AjaxDeleteView 2019-04-28 10:41:54 +10:00
Oliver Walters
72ff25e0c1 Simplify AjaxUpdateView
- Using get_form() is MUCH simpler
2019-04-28 10:39:46 +10:00
Oliver Walters
96a15453c4 Simplify AjaxCreateView
- Screams in reading the documentation
2019-04-28 10:35:17 +10:00
Oliver Walters
cd438f0569 Add generic method for retriving GET or POST params 2019-04-28 09:53:42 +10:00
Oliver Walters
e5fc43a00f Fix improper references to template_name for ajax forms
- Should be ajax_template_name
2019-04-28 09:00:54 +10:00
Oliver Walters
9b77340782 Change field ordering for SupplierPart form
- Import fields first!
2019-04-28 08:55:29 +10:00
Oliver Walters
2108ee2eb7 Update makefile 2019-04-28 08:42:17 +10:00
Oliver Walters
d55ea1a982 PEP fixes 2019-04-28 01:09:48 +10:00
Oliver Walters
aa04941bf1 Add module-level docstrings for each app 2019-04-28 01:05:45 +10:00
Oliver Walters
a499fd325e Docstring for Stock app 2019-04-27 22:49:16 +10:00
Oliver Walters
ed3ae30248 Documentation for Part app 2019-04-27 22:18:07 +10:00
Oliver Walters
5e6d49102d Add docstring documentation to the main InvenTree app 2019-04-27 21:21:58 +10:00
Oliver Walters
c3f0570926 Add docstring to Company app 2019-04-27 20:43:27 +10:00
Oliver Walters
d9169a0dd1 Add docstrings for Build app 2019-04-27 20:35:14 +10:00
Oliver Walters
0cec12085d Renamed key.py to keygen.py 2019-04-27 17:03:37 +10:00
Oliver Walters
0484e62836 PEP fixes 2019-04-27 15:25:40 +10:00
Oliver Walters
e7685951e1 Add (simple) test cases for Stock API
- Still a lot of work to do here
2019-04-27 15:24:30 +10:00
Oliver Walters
1fbea088dc Added API test for Company app 2019-04-27 15:02:20 +10:00
Oliver Walters
241f9783ad Added further testing for Part/Bom API 2019-04-27 14:50:49 +10:00
Oliver
28d8252047
Merge pull request #168 from SchrodingersGat/supplier-part
Adjust SupplierPart supplier foreignkey
2019-04-27 13:29:52 +10:00
Oliver Walters
030265cc2d Allow editing of 'notes' field when creating new StockItem 2019-04-27 13:12:34 +10:00
Oliver Walters
95be2755f4 Adjust SupplierPart supplier foreignkey
- Limit choices to 'is_supplier'
2019-04-27 13:10:21 +10:00
Oliver
d70137dcbd
Merge pull request #167 from SchrodingersGat/api-tests
Api tests
2019-04-27 01:07:53 +10:00
Oliver Walters
f111a42058 Added API tests for Part API
- Uses DRF APITestCase class
2019-04-27 01:03:11 +10:00
Oliver Walters
443041de3a Update key_file generator script
- Prevent overwrite of key file if it already exists
- Option to force key file overwrite if required
2019-04-26 23:56:19 +10:00
Oliver
165264bd0e
Merge pull request #166 from SchrodingersGat/copy-button
Move 'duplicate' button to the Part options drop-down
2019-04-26 23:44:01 +10:00
Oliver Walters
69b34a0ff2 Move 'duplicate' button to the Part options drop-down 2019-04-26 23:39:33 +10:00
Oliver Walters
529beb3d58 Abstract DRF serializer validation
- Subclass InvenTree.InvenTreeModelSerializer
- Ensures model data is checked too (after serializer checks are performed)
2019-04-26 23:34:15 +10:00
Oliver Walters
e57a8cdcd1 Fix rendering of BOM table view
- Edit and delete rows now works
2019-04-26 23:32:22 +10:00
Oliver Walters
cec61655cf Fix table rendering for 'used_in' view 2019-04-26 23:12:06 +10:00
Oliver Walters
08aca6a5a8 Fix rendering for company part list 2019-04-26 23:08:13 +10:00
Oliver Walters
dee10e4922 Fix rendering of part supplier table 2019-04-26 23:04:08 +10:00
Oliver Walters
1c710e71a5 Modal forms now display non-field errors
- Critical for errors not relating to a particular field (e.g. unique_together)
- Ref: https://stackoverflow.com/questions/7419535/how-to-render-django-form-errors-not-in-a-ul
2019-04-26 23:01:04 +10:00
Oliver Walters
73282801c9 Fix for BOM display
- Perhaps need to make this cleaner, later on
- Is this too much data pushed through the API?
2019-04-26 22:41:29 +10:00
Oliver Walters
accec07fe9 BOM serializer now validates against model
- Need to call instance.clean()
- https://stackoverflow.com/questions/40697648/django-dry-model-form-serializer-validation
2019-04-26 22:36:44 +10:00
Oliver Walters
da540e1b26 Improve BOM API endpoint
- Origin at /api/bom
- Add detail view
- Add create power to list view
2019-04-26 21:44:38 +10:00
Oliver Walters
4e3b8bdd92 Remove draft feature from Part RUD endpoint 2019-04-26 21:44:38 +10:00
Oliver Walters
6c3041d99c Remove 'draft' function from StockItem RUD endpoint 2019-04-26 21:44:38 +10:00
Oliver Walters
9ae5ea3876 Add RUD endpoint for Company 2019-04-26 21:44:38 +10:00
Oliver Walters
6f7082a919 Peppy 2019-04-26 21:44:38 +10:00
Oliver Walters
9b4e86f36a Add ability to create a new supplierpart from the API 2019-04-26 21:44:37 +10:00
Oliver Walters
907bccf748 Add SupplierPart detail API
- RUD view
2019-04-26 21:44:37 +10:00
Oliver Walters
5ee339bb27 Add 'delete' button for supplier parts 2019-04-26 21:44:37 +10:00
Oliver Walters
deebc80088 Display available stock in part search page 2019-04-26 21:31:53 +10:00
Oliver Walters
d78841a665 Allow editing of more stockitem options 2019-04-25 23:35:48 +10:00
Oliver Walters
8d5850248e PEP fixes 2019-04-25 23:25:52 +10:00
Oliver Walters
1f8632c77c Improved response message for stocktake 2019-04-25 23:19:22 +10:00
Oliver Walters
990808ec03 Fix code to move multiple parts via AJAX / JSON 2019-04-25 23:16:54 +10:00
Oliver Walters
757cd539b2 Enforce 'notes' field for StockItem move
- Better error handling for StockItem.move
2019-04-25 23:01:03 +10:00
Oliver Walters
38fa89d1da Bug fix for javascript
- If location not set for StockItem, display special text
2019-04-25 22:34:30 +10:00
Oliver Walters
053e9c9795 Add a stock tracking index
- Shows entire history of stocktracking items
2019-04-25 22:11:10 +10:00
Oliver Walters
79f8736b6b Add note on creation of StockItem 2019-04-25 22:10:46 +10:00
Oliver Walters
533fdb71c4 Javascript function to render stock tracking table
- Added extra info to StockItemTracking serializer
2019-04-25 22:04:32 +10:00
Oliver Walters
1112e5e3e2 PEP fixes 2019-04-25 18:50:22 +10:00
Oliver Walters
2ab8276672 better coverage for part/models
- Increase from 57% to 67%
2019-04-25 17:51:02 +10:00
Oliver Walters
f36f02b27f Tests for stock app
- Increase coverage of Stock/models.py to 84%
2019-04-25 17:30:44 +10:00
Oliver Walters
3c40418f04 100% coverage on company/models.py 2019-04-25 04:20:40 +10:00
Oliver
19001b98f7
Merge pull request #149 from SchrodingersGat/get_absolute_url
Get absolute url
2019-04-25 13:40:10 +10:00
Oliver Walters
7b68310d73 PEP fixes 2019-04-25 03:20:25 +10:00
Oliver Walters
7c91c9ba79 Reverse URL for stock models
- stock location
- stock item
- stock tracking

- Added blank test files
2019-04-25 03:13:41 +10:00
Oliver Walters
e6617fef80 reverse URL lookup for BomItem and SupplierPart
- created empty test files
2019-04-25 01:05:08 +10:00
Oliver Walters
0bc5617825 Reverse url lookup for Part model 2019-04-25 01:00:01 +10:00
Oliver Walters
f9db3b680d Reverse lookup for part category URL
- Added some test cases for PartCategory model
2019-04-25 00:28:40 +10:00
Oliver Walters
a2d4403968 Reverse lookup for company URL
- Added some simple tests
2019-04-24 23:55:11 +10:00
Oliver Walters
5098712d9c Use reverse to get Build URL
- Add test cases to Build
2019-04-24 23:47:39 +10:00
Oliver Walters
887250cd06 PEP fixes 2019-04-24 23:26:16 +10:00
Oliver Walters
40a18d0ce4 Ensure settings.py knows how to access secret_key.txt 2019-04-24 23:19:36 +10:00
Oliver Walters
7a65144641 Use random.choice instead of random.choices
- Allows compatibility with python3.5
2019-04-24 16:08:59 +10:00
Oliver Walters
3827806603 SECRET_KEY is now generated by a script and stored as a local file
- key file ignored from git
2019-04-24 16:01:47 +10:00
Oliver Walters
0cdf660a80 Merge remote-tracking branch 'inventree/master' into delete-old-forms
# Conflicts:
#	InvenTree/part/views.py
2019-04-18 23:51:58 +10:00
Oliver Walters
456164f1d9 PEP fixes 2019-04-18 23:47:04 +10:00
Oliver Walters
41ee6320a8 Delete some other old templates 2019-04-18 23:44:15 +10:00
Oliver Walters
9e9aa02b90 Remove old templates from Stock 2019-04-18 23:41:17 +10:00
Oliver Walters
4f51258cf8 Removed old forms in Part 2019-04-18 23:39:05 +10:00
Oliver Walters
e57303ed37 Removed old forms from Company 2019-04-18 23:35:20 +10:00
Oliver Walters
0654fa7cc9 Deleted unused forms in Build
- These now use modal forms
- Removed redundant templates
2019-04-18 23:35:06 +10:00
Oliver Walters
8040ad8a6a Add function to duplicate stock item 2019-04-18 23:28:46 +10:00
Oliver Walters
05beb26c82 Change form title if part is being copied 2019-04-18 23:22:58 +10:00
Oliver Walters
6de58edd41 Add button on part page to duplicate part
- Opens modal form
- Takes user to created page
2019-04-18 23:17:21 +10:00
Oliver Walters
deaaa48b7d Add ability to 'copy' a part
- Launch a PartCreate form
- initialize form data with the existing part (if it exists!)
- use model_to_dict to pass data around
2019-04-18 23:12:29 +10:00
Oliver Walters
590dedce13 Add some helper functions 2019-04-18 23:08:33 +10:00
Oliver Walters
a0b6900eb8 Disable buttons that require row selection, until a selection has been made
- Stock table
2019-04-18 22:35:51 +10:00
Oliver Walters
bcebb1c73c Add select column to BOM table
- Doesn't do anything yet
2019-04-18 21:40:09 +10:00
Oliver Walters
8948536f0f Allow export of binary file data
- Use io.BytesIO for non-string-data file objects
2019-04-18 21:33:00 +10:00
Oliver Walters
5d887f3785 Remove 'simple-history'
- Might re-add it later on
2019-04-18 21:28:09 +10:00
Oliver Walters
88a7fa9656 Update logo colours 2019-04-18 09:16:16 +10:00
Oliver Walters
8dc3063765 Vertical centering for header image 2019-04-18 08:40:54 +10:00
Oliver Walters
18c48e9191 Split part details display into two columns 2019-04-18 08:33:25 +10:00
Oliver Walters
fd3f6ec21e Add stock item filtering by sub-category 2019-04-18 08:33:12 +10:00
Oliver
6b05078fd2
Merge pull request #133 from SchrodingersGat/part-files
Part files
2019-04-18 00:23:09 +10:00
Oliver Walters
3bac4fc9ee Added some pepper 2019-04-18 00:20:49 +10:00
Oliver Walters
e707eb3a2b Provide download link for part attachments
- Better upload management for attachment files (separated based on part ID)
2019-04-18 00:14:53 +10:00
Oliver Walters
d9d4e0043a Display list of part attachments 2019-04-18 00:01:19 +10:00
Oliver Walters
00199c26de Add part attachments to the admin interface 2019-04-17 23:58:13 +10:00
Oliver Walters
cb7e98aa1c Add extra BOM export format options
- Uses tablib (already used by django-import-export plugin)
- Needs cleanup but works well
- Problem exporting XLSX data (needs work!)
2019-04-17 23:52:15 +10:00
Oliver Walters
ebcbf9a90e Add status_text to API 2019-04-17 23:33:19 +10:00
Oliver Walters
963883acd6 Consolidated function to adjust stock
- Add / remove / stocktake
- Handle forms and tables properly
2019-04-17 23:17:04 +10:00
Oliver Walters
ba1b8d9181 Created js function to load stock table
- Avoid duplication of code
2019-04-17 22:59:52 +10:00
Oliver Walters
16dc5e2436 Reorganize script locations
- Delete script files that are no longer used
2019-04-17 19:03:28 +10:00
Oliver Walters
b9b8b5ee12 Update model for StockItem 2019-04-17 18:34:21 +10:00
Oliver Walters
69e8f4f5cc Fix up search box display in the navbar 2019-04-17 08:21:07 +10:00
Oliver Walters
86c31e8c0d Allow regex searching on part name 2019-04-17 08:19:40 +10:00
Oliver Walters
ca7182bf6b search page now returns matching parts
- Searches 'name' and 'description' field
- Uses the JSON API
2019-04-17 08:16:34 +10:00
Oliver Walters
fbf764e2ef Send search query text to template 2019-04-17 07:53:31 +10:00
Oliver Walters
19a11eac1a PEP fixes 2019-04-17 07:49:46 +10:00
Oliver Walters
52c3a63c61 Updated SupplierPriceBreak page 2019-04-17 00:48:01 +10:00
Oliver Walters
150bc1e674 Add API interface for SupplierPriceBreak 2019-04-17 00:35:49 +10:00
Oliver Walters
a3b544e2a4 typo fix 2019-04-17 00:21:11 +10:00
Oliver Walters
5cd837be07 Limit supplierpart part link to purchasable parts only 2019-04-17 00:14:22 +10:00
Oliver Walters
cd0b6a6511 Updated Supplier models
- Added cost calculation for supplier part
- Added more validators and help text
2019-04-17 00:09:39 +10:00
Oliver Walters
01bdf2f19b PEP fixes 2019-04-16 22:32:43 +10:00
Oliver Walters
7eea9d1a20 Launch a modal to select BOM download format
- This will have to change! A client-side hack for now..
- Work out a better way to do this!
2019-04-16 21:46:12 +10:00
Oliver Walters
be60fbcc25 More cleanup for modal forms
- Require 'ajax_template_name' to be set or weird things happen!
2019-04-16 21:25:20 +10:00
Oliver Walters
c0dd253137 Cleanup for AjaxUpdateView 2019-04-16 19:38:29 +10:00
Oliver Walters
7708ffb069 Cleanup for AjaxDeleteView
- Doesn't call renderJsonResponse as it returns html_data not html_form
2019-04-16 19:01:58 +10:00
Oliver Walters
7190a6fb7f Cleanup for AjaxCreateView 2019-04-16 18:43:41 +10:00
Oliver Walters
c706f00733 Skeletong for exporting BOM in different formats 2019-04-16 14:22:27 +10:00
Oliver Walters
29f33a8eec Move button locations into bootstrap-table headers
- part category
- stock location
- build list
- company list
- supplier part list
2019-04-16 11:46:07 +10:00
Oliver Walters
338a30b50e API endpoint for build list
- Changed part/build table to bootstrap table (ajax)
2019-04-16 08:31:43 +10:00
Oliver Walters
94b280eed3 Move button groups into the table toolbar next to search box
- part stock list
- part bom list
2019-04-16 08:13:05 +10:00
Oliver Walters
a4467fee21 Remove bootstrap-editable
- Revert to using modal django forms
2019-04-16 07:53:30 +10:00
Oliver Walters
bafce641a7 Limit sub-part choices to consumable parts only 2019-04-16 01:45:16 +10:00
Oliver Walters
bad46f85f4 Edit / delete / add BOM items
- Remove x-editable inline editing
- Uses only bootstrap-table and modal forms
- Hide the 'part' field in the bom item edit
2019-04-16 01:41:01 +10:00
Oliver Walters
6e2b111b9c Add 'consumable' field to Part
- Indicates that a part can be used to make other parts
- This is the inverse of 'buildable'
- Add this field to the serializer and edit forms
- Display parameter on part info page
- BOM edit window only requests sub-parts that are marked as 'consumable'
- Also added option to edit 'units' field for part
2019-04-16 00:01:52 +10:00
Oliver Walters
ca96c8e22b Better query param parsing 2019-04-15 23:30:17 +10:00
Oliver Walters
3d9a1acc2e Don't render full category information in part API
- Lots of data duplication!
- Just send the category ID (and the category name)
-
2019-04-15 22:52:53 +10:00
Oliver Walters
ac0b28a06c Simplify part filtering 2019-04-15 22:39:28 +10:00
Oliver Walters
7e78f0aa67 Changed query param from '1' to 'True' 2019-04-15 22:36:50 +10:00
Oliver Walters
a5e3af97ed Move table functionality to external script 2019-04-15 22:28:29 +10:00
Oliver Walters
b522ca5b29 Don't render editable items when ont in editing mode 2019-04-15 18:41:48 +10:00
Oliver Walters
ec98f7829e Add context flag to enable editing mode
- pass ?edit=1 to the BOM
- Display page differently if in editing mode
-
2019-04-15 18:32:15 +10:00
Oliver Walters
258555a813 Add placeholder text option for field editing 2019-04-15 00:11:26 +10:00
Oliver Walters
264f189917 Add function to wrap a value in an in-line editable field
- Requires bootstrap-editable
2019-04-15 00:11:14 +10:00
Oliver Walters
e370cb8d3c Add note field to BomItem serializer 2019-04-14 22:20:11 +10:00
Oliver Walters
d5186fc615 Add 'note' field to BOM item model 2019-04-14 18:26:11 +10:00
Oliver Walters
9e5eed5d5e Move the export_bom function to the part model 2019-04-14 12:34:14 +10:00
Oliver Walters
b8e28c003d Provide download link to export BOM file
- Helper function for generating temporary file (in memory) for exporting
2019-04-14 12:34:14 +10:00
Oliver Walters
b58c49e066 Create BOM export form
- Select output format
2019-04-14 12:34:13 +10:00
Oliver Walters
14de111130 Allow better passthrough of context variables for non-form views 2019-04-14 12:34:13 +10:00
Oliver Walters
0cc59540ef Generate modal form to export BOM
- Doesn't do anything yet
- Extends AjaxView
2019-04-14 12:34:13 +10:00
Oliver Walters
2202dfd55d Peppy fixes 2019-04-14 12:30:06 +10:00
Oliver Walters
00c21d521e Always display category
- Display full category path
2019-04-14 12:25:21 +10:00
Oliver Walters
9d98c429d6 Complex filtering for parts
- Allow filtering against child categories
- Could potentially be slooow
2019-04-14 11:59:07 +10:00
Oliver Walters
1ef81ecf2e Ignore some rules 2019-04-14 09:39:01 +10:00
Oliver Walters
29ab19d51d PEP fixes in /InvenTree 2019-04-14 09:33:17 +10:00
Oliver Walters
ac3a4e3de4 PEP fixes for /company 2019-04-14 09:30:45 +10:00
Oliver Walters
b9f23554a5 PEP fixes for /build 2019-04-14 09:29:05 +10:00
Oliver Walters
cf374252c1 PEP fixes for /part 2019-04-14 09:25:46 +10:00
Oliver Walters
76b0d17b11 PEP fixes for /stock 2019-04-14 09:23:24 +10:00
Oliver Walters
e6e03963c4 Simplified custom button text for modal forms
- Now only configured from the javascript end
- No server-side configuration of button text
2019-04-13 23:02:23 +10:00
Oliver Walters
0e7472dabc Fix display of custom button text
- Missing first parameter (modal object) to function call
2019-04-13 21:20:02 +10:00
Oliver Walters
f44ba1c011 Commonized 'submit_label' text option 2019-04-13 21:11:42 +10:00
Oliver Walters
51d77ce4d2 Include uuid in serializer and api 2019-04-13 07:56:06 +10:00
Oliver Walters
7b68bac32f Display UUID and QR code on stockitem page
- The actual display of this can be improved upon at a later stage
2019-04-13 01:14:24 +10:00
Oliver Walters
b64e584b52 Add UUID field to StockItem model 2019-04-13 01:12:47 +10:00
Oliver Walters
b0f42fd30f Add qr_code to list of installed addons 2019-04-13 01:03:56 +10:00
Oliver Walters
1b5287307b Add some help text 2019-04-13 00:52:26 +10:00
Oliver Walters
926d717190 Add quantity field to StockItemTracking
- Keep track of historical levels of part availability
2019-04-13 00:14:10 +10:00
Oliver Walters
93bb0bf6f4 Improved 'move stock' form
- Better error checking on the form (provides form validation messages to user)
2019-04-13 00:08:13 +10:00
Oliver Walters
f451d31f00 Rearrange stockitem drop-down menu for more logical operations 2019-04-12 23:10:47 +10:00
Oliver Walters
e560ea4a41 Update edit form for StockItem
- Disallow direct quantity editing (must perform stocktake)
- Add notes field to allow editing
2019-04-12 23:10:32 +10:00
Oliver Walters
7566c3769a Added a note for future work 2019-04-12 23:05:12 +10:00
Oliver Walters
68ec5df371 Correctly handle StockTrackingItem if there is no user data 2019-04-12 23:03:02 +10:00
Oliver Walters
88103b63d2 Cannot filter by STATUS
- Is this because it is a dict?
- Need to address this in the future
2019-04-12 22:46:48 +10:00
Oliver Walters
7a7b0aea33 Changed 'stocklocation.items' to 'stocklocation.stock_items' 2019-04-12 22:46:15 +10:00
Oliver Walters
2d21bf0626 Part BOM list now shows how many of each sub-item are available
- If there are enough to build the available quantity is shown in green
- Otherwise, shown in orange
2019-04-12 22:09:50 +10:00
Oliver Walters
8a3706dd76 Added MPN field to supplier part lists 2019-04-12 21:54:53 +10:00
Oliver Walters
25f1d643b8 Add indicator to show no stock in part listing 2019-04-12 21:21:50 +10:00
Oliver Walters
7341fe4542 Fix modal form for creating company 2019-04-12 21:09:31 +10:00
Oliver Walters
c67dc6f56e Initial updates required to run under django 2.2
- Change to middleware.py
- Change some URLs formatting
- Fix django version at 2.2
2019-04-12 20:44:22 +10:00
Oliver
ceea053368 Added part API
- Build allocation table now makes use of this API
- Further steps towards allocation table
2018-05-12 12:44:29 +10:00
Oliver
1b9c98ae3e Bug fix for stock item traking list
- Query was returning ALL stock tracking objects!
- Now filter by StockItem ID
2018-05-10 21:27:41 +10:00
Oliver
4b4db50de5 Display username in stock-tracking
- Add UserSerializer
2018-05-10 21:20:12 +10:00
Oliver
dcf74292b6 Changed tracking into to datetime field
- Added moment.js for formatting dates
-
2018-05-10 21:13:36 +10:00
Oliver
7b478fed4e Redirect if not authed
If user not logged in, redirect any requests to login page
2018-05-10 20:40:08 +10:00
Oliver
57713556d1 Revert default db to sqlite3 (for now) 2018-05-10 19:19:13 +10:00
Oliver
07f16d8891 Small improvements for build display
Working toward build management
2018-05-09 22:02:56 +10:00
Oliver
690ec83265 Woohoo for .then 2018-05-09 21:48:36 +10:00
Oliver
517569f510 Clicking on logo returns user to index page 2018-05-09 00:19:34 +10:00
Oliver
7644617af0 Better string formatting for models
Allows for easier searching in drop-downs for ForeignKeys
2018-05-09 00:17:39 +10:00
Oliver
233f093093 Update supplier part detail page
- Consolidated buttons into dropdown
- Make look like other pages
2018-05-09 00:12:21 +10:00
Oliver
2c953c73fa Stock tracking tweaks
- Ability to stocktake for entire part
- Enforce addition of notes to stockAdjust modal
2018-05-09 00:06:35 +10:00
Oliver
8000affeee Basic Index and Search endpoints
Index at /index/
Search at /search/
Search view accepts POST requests with search data
2018-05-08 23:44:51 +10:00
Oliver
c821d22b87 Skeleton for 'index' and 'search' pages 2018-05-08 23:26:32 +10:00
Oliver
552953a1f8 Added bootstrap font files
Also added 'search' button
2018-05-08 23:26:09 +10:00
Oliver
84efaba920 Add link to admin page
- Only if user is admin!
2018-05-08 23:14:07 +10:00
Oliver
3cf45f5ed3 Added Login and Logout buttons to NavBar 2018-05-08 23:09:52 +10:00
Oliver
47aa3c8a45 Login / Logout views
Information found here - https://simpleisbetterthancomplex.com/tutorial/2016/06/27/how-to-use-djangos-built-in-login-system.html
2018-05-08 23:00:27 +10:00
Oliver
fdf35bd741 Fixes for double-submit on butons
- Function that first unbinds the submit button
2018-05-08 22:49:23 +10:00
Oliver
bf4ffb8b0b Add part stocktake to Stock Location page(s) 2018-05-08 22:41:52 +10:00
Oliver
f2982a59ad Added StockTracking API
/api/stock/track/
ListCreate API view
StockItem page now shows bootrap-table of tracking notes
2018-05-08 22:30:32 +10:00
Oliver
002c047105 Added count/add/remove to Part Stock Detail Page 2018-05-08 22:14:18 +10:00
Oliver
3b6ef3f008 Added stocktake / add / remove actions to StockItemDetail page 2018-05-08 22:14:03 +10:00
Oliver
25e0de1ce7 Vast improvements to stocktake API endpoint
- Also acts to ADD and REMOVE stock
- Send 'action' field to specify which one to perform
- Fixed add_stock and remove_stock funcs for StockItem model
- Autoatically add transaction notes for all actions
2018-05-08 22:06:28 +10:00
Oliver
ca2d3a1a7b Consolidated modal code
- Default modal passed down through the chain
2018-05-08 20:46:23 +10:00
Oliver
054892aea2 Cleaner handling of default modal param 2018-05-08 19:58:38 +10:00
Oliver
3f1c6e2059 Simplified modal calls
- Default modal target supplied (can be overridden in options)
2018-05-08 19:55:39 +10:00
Oliver
c5155d5ac7 Move modal JS file
- Loaded by base.
2018-05-08 19:40:29 +10:00
Oliver
ee0c664d28 Prevent modals from firing multiple events
- e.g. if the modal has been open and closed multiple times!
- Detach all previously attached events
2018-05-07 23:46:41 +10:00
Oliver
fdf214626c Further assorted updates
What, you need more commit details?! Pah
2018-05-07 23:40:17 +10:00
Oliver
b6944620dd Fixes for JSON API
- Set content type
- Stringify JSON data
- Finish API to stocktake multiple parts
2018-05-07 23:25:47 +10:00
Oliver
1363fa9f1f Prevent modals from automatically closing 2018-05-07 22:16:05 +10:00
Oliver
17ecb59dbb Move to using postgresql
- Need to write a shell script to automate db install
- For now:
   - https://gist.github.com/sirodoht/f598d14e9644e2d3909629a41e3522ad
   - https://www.digitalocean.com/community/tutorials/how-to-use-postgresql-with-your-django-application-on-ubuntu-14-04
2018-05-07 22:03:13 +10:00
Oliver
425db5fd39 Tweaked part stock page 2018-05-07 21:51:08 +10:00
Oliver
2b286c3b83 Bulk stocktake API
- Pass list of pk/quantity dict objects
2018-05-07 21:17:19 +10:00
Oliver
e746ca6e0a Paginate company page 2018-05-07 18:16:12 +10:00
Oliver
deccdce6d9 Part view updates 2018-05-07 08:41:19 +10:00
Oliver
ce30cd7b4d add auto-doc for JSON API 2018-05-07 08:35:40 +10:00
Oliver
ee0cbdbb07 Skeleton for deleting multiple items
- Does not work yet! But opens a window...
2018-05-06 22:38:39 +10:00
Oliver
a7abf9731b Add link to stock-item in part-stock view 2018-05-06 22:28:50 +10:00
Oliver
c1e7e95fc0 UI improvements
Consolidated detail pages with OPTIONS drown down
(rather than multiple single buttons)
2018-05-06 22:09:15 +10:00
Oliver
a55f6a1c7b Improved stock movement modal
- Show which parts will be moved (and where they currently are)
2018-05-06 22:01:24 +10:00
Oliver
8a0db0e6df Updated stockitem detail page
- Consolidated buttons into dropdown
- Stock tracking now in collapsible list
2018-05-06 21:53:06 +10:00
Oliver
d8922aa9db Implemented API to move multiple items at once
- Added ability to override request method in inventreeUpdate
- Added inventree/script/stock.js to handle stock API js 
- Added StockMove API endpoint
2018-05-06 21:39:33 +10:00
Oliver
87f96d6b3c Add more modal form funcs
- Function to set the button text
2018-05-06 20:30:17 +10:00
Oliver
c2bc65f903 API improvements
- Add success and error callbacks
- Further improvements for modal forms
2018-05-06 20:20:39 +10:00
Oliver
fa04a9ae61 Abstracted modal code somewhat 2018-05-06 19:54:32 +10:00
Oliver
58cd933a5d Whoops, fixed the API callbacks 2018-05-06 19:33:43 +10:00
Oliver
366e03456e Hide 'tracking' tab for now 2018-05-06 19:27:34 +10:00
Oliver
890c9002aa Callback for API 2018-05-06 19:26:11 +10:00
Oliver
19ce05931c Re-added missing "New Part" button 2018-05-06 19:21:33 +10:00
James Newlands
01da57f0cf If part has no category, page rendered an extra curly brace in JS that caused syntax error. 2018-05-05 21:22:47 +10:00
Oliver
22e9290f54 Helper funcs for updating part and stock item 2018-05-05 01:37:21 +10:00
Oliver
8e7e784934 Remove test code 2018-05-05 01:27:15 +10:00
Oliver
11e7a34aa2 AJAX function to update a model endpoint
- Grabs the CSRF token cookie (required!)
- If final mode, adds '_is_final' parameter to request
2018-05-05 01:26:58 +10:00
Oliver
41e031d4b4 Draft API endpoint RUD class
- RUD = Retrieve / Update / Destroy
- When issuing an Update command, the validity is checked but the model object is only saved if the POST data has "_is_final": true
2018-05-05 01:26:01 +10:00
Oliver
ee347c6165 Further API calls
- getStock
- getStockLocation
- getCompanies
2018-05-05 00:00:48 +10:00
Oliver
7e4b0630b6 Part category API 2018-05-04 23:54:57 +10:00
Oliver
83dd068fec Initial commit for api.js
- GET JSON call with console output
- Provide filters
2018-05-04 23:43:41 +10:00
Oliver
a7d4e299b2 Cleaned up stock app 2018-05-04 23:31:48 +10:00
Oliver
4f63d12837 Consolidated 'Part' app views
- Improved templating
- Part tree open/close status stored to session
2018-05-04 18:55:55 +10:00
Oliver
389908c67a Moved sidenav into block 2018-05-04 17:51:55 +10:00
Oliver
a1eeeab64c Build table now bootstrap-table'd 2018-05-04 01:39:20 +10:00
Oliver
3511ce29ee Added StockLocation API 2018-05-04 01:33:21 +10:00
Oliver
395bf23d6c Cleanup / formatting 2018-05-04 01:33:13 +10:00
Oliver
347a324589 Fix 2018-05-04 01:04:12 +10:00
Oliver
9ad20e85e3 Improve CSS for modal forms 2018-05-04 00:56:29 +10:00