Commit Graph

171 Commits

Author SHA1 Message Date
Oliver Walters
eaf42b8abe Instead of creating a custom filter for "latest" parts,
simply make use of the existing "ordering" query as part of DRF
2020-09-19 20:26:17 +10:00
eeintech
c55fa13cdb Added part list which require more stock to be built 2020-09-18 11:40:50 -05:00
Oliver Walters
ca1281ee10 Adds ajax table for part sale price information 2020-09-18 22:11:51 +10:00
eeintech
a9fffe6a73 Added latest parts and invalid BOMs on homepage 2020-09-16 17:02:24 -05:00
Oliver Walters
42967905bc New approach for multiple annotations
- Use the django-sql-utils addon - https://github.com/martsberger/django-sql-utils
- The "distinct=True" flag was not doing what I thought it was doing...
2020-09-05 22:35:19 +10:00
Oliver Walters
62c26c881d Add ability to filter part list by 'ancestor' 2020-09-02 23:18:26 +10:00
Oliver Walters
f1373e3bea Improve speed of BomItem API queries
- Including the pricing information takes absolutely ages, takes too long!!
2020-08-15 21:52:32 +10:00
eeintech
af70dd5dfe Allowing Part thumbnail (image) update via API 2020-07-20 16:16:26 -05:00
eeintech
9b7977a217 API: Allow part deletion if inactive 2020-07-08 10:56:23 -05:00
Oliver Walters
134a688e4a Fix filter logic for 'starred' parts 2020-06-28 19:08:13 +10:00
Oliver Walters
e9ed50fc4b Add table displaying part test templates 2020-05-17 16:07:55 +10:00
Oliver Walters
69c748d018 PEP fix 2020-05-17 14:15:13 +10:00
Oliver Walters
4d992ea528 Expose test templates to the API 2020-05-17 13:56:49 +10:00
Oliver Walters
366d4b2143 Add new attechment functionality to new models
- Giving the ol' refactor tractor a fresh coat of paint
2020-05-12 21:40:42 +10:00
Oliver Walters
2369b40bbf Ensure user gets saved when uploading attachment via API 2020-05-12 21:11:38 +10:00
Oliver Walters
cfc0145180 Add some unit tests 2020-05-11 23:44:22 +10:00
Oliver Walters
a7e5a79f4c Expose salesorder and purchaseorder attachments to the API 2020-05-11 23:41:57 +10:00
Oliver Walters
17d0a015f2 Add API endpoint for StockItem attachment items 2020-05-11 23:32:40 +10:00
Oliver Walters
f36c5137dd Add ability to add part file attachments via the API 2020-05-11 23:25:55 +10:00
Oliver Walters
cc11df917e Part list API adjustments 2020-05-02 14:03:17 +10:00
Oliver Walters
7fca496de8 Bug fix for StockItem list API
- The wrong detail data was being set
2020-05-02 13:51:29 +10:00
Oliver Walters
4197e29fce Major major major (improvements for StockItem list API)
OK LISTEN UP - Lots of work went into making this speedier:

- For related detail fields (e.g. part_detail), we pre-fetch and cache the model data
- This eliminates duplicate database hits for the same model instances
- Perform all field filtering manually, rather than using the DRF 'filter_fields' concept (this seems to add a lot of overhead)
- Use query annotations to getch calculated fields rather than fetching one-at-a-time
- And finally, if the request is AJAX then return a JsonResponse which is SO FREAKING MUCH FASTER
2020-05-02 13:46:19 +10:00
Oliver Walters
44319d24e4 Custom list serializer for 'location_detail' 2020-05-02 10:05:35 +10:00
Oliver Walters
a537b6df6e PEP fixes 2020-05-02 09:50:18 +10:00
Oliver Walters
4a60da67fd Significant increase in query speed for Part list
- Custom list method
- Cache PartCategory objects in memory
2020-05-02 09:49:05 +10:00
Oliver Walters
3b42b5e27e Typo fix for part api 2020-04-28 23:17:59 +10:00
Oliver Walters
087001f29d Fix BOM table rendering
- Price was not being sent in the PartBriefSerializer!
2020-04-28 23:17:15 +10:00
Oliver Walters
fee6246a8f PEP fix 2020-04-20 08:25:24 +10:00
Oliver Walters
ef66a3b8f3 Make PartDetail view same as PartList view 2020-04-20 08:10:59 +10:00
Oliver Walters
f5c86bc457 "Fix" for unit tests
- Not working in travis for some reason?
- But they are working locally...
2020-04-20 01:23:05 +10:00
Oliver Walters
6a89e0089d Updates for stock serializer 2020-04-20 00:49:13 +10:00
Oliver Walters
092215918c PEP fixes 2020-04-19 23:56:16 +10:00
Oliver Walters
2621c51a7e Further API cleanup
- Perform a single call to get starred parts for current user and record results
- This provides significant speed improvements
- Remove old manual serializer
- More data prefetching
2020-04-19 23:50:41 +10:00
Oliver Walters
69b8eed028 Fixes for aggregation issues
- Ensure that "distinct=True" is set!
- ARRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
2020-04-19 22:54:46 +10:00
Oliver Walters
0e55911a6b Index page rendering is now a lot faster
- Hide some elements which are currently very expensive to compute
-
2020-04-13 22:07:14 +10:00
Oliver Walters
124fab3eee Display a part as 'starred' in the part table 2020-04-13 21:30:17 +10:00
Oliver Walters
b850beb687 Add ability to filter by 'starred' status 2020-04-13 21:24:36 +10:00
Oliver Walters
a65c80dbf3 Small fixes here and there 2020-04-12 00:20:29 +10:00
Oliver Walters
de6f2d37e5 Coalesce baby, yeah! 2020-04-11 23:05:07 +10:00
Oliver Walters
2560613e36 Update API docstring 2020-04-11 23:03:03 +10:00
Oliver Walters
f5a8b110b5 Filter part table by 'is_component' status 2020-04-11 23:02:18 +10:00
Oliver Walters
e1c6ad7761 Logic fix for part filtering 2020-04-11 22:57:16 +10:00
Oliver Walters
e86bc4fa6d Add ability to filter parts by "low_stock"
- Huzzah for the "Coalesce" function, eh?
2020-04-11 22:43:51 +10:00
Oliver Walters
5e706554b1 Part table filtering
- Filter by active status
- Filter by 'is_template' status
- Filter by 'has_stock'
- Allow cascading sublocations
- API improvements to allow new features
2020-04-11 22:10:15 +10:00
Oliver Walters
b28487760a Rename Part.URL -> part.link
- Previous migration needed some tweaking to get it to run... because.. why?
- It seems to pass when running manage.py migrate but fails when running manage.py test
- Stumped on this one
2020-04-06 11:16:39 +10:00
Oliver Walters
791eb63f35 Same fix for Part API 2020-04-05 22:59:45 +10:00
Oliver Walters
d739c2dea8 "URL" is renamed to "link" in the URL 2020-04-05 19:18:32 +10:00
Oliver Walters
0cfb293ca9 List API now uses the thumbnail image 2020-04-05 00:19:37 +11:00
Oliver Walters
f5150f549a Part API changes
- Allow filtering parts with null parent (top-level category parts)
- Option to include sub-category parts or not
2020-04-03 09:37:03 +11:00
Oliver Walters
6e65a736e7 Add isNull function to query against null keys 2020-04-03 09:31:26 +11:00
Oliver Walters
d17056820b Allow PartCategory filtering by null parent 2020-04-03 09:25:58 +11:00
Oliver Walters
e8e0ab8416 Include 'minimum_stock' information in part list api 2020-03-30 13:21:33 +11:00
Oliver Walters
6a78f6d451 Include quantity currently being build in Part API 2020-03-26 17:43:02 +11:00
Oliver Walters
57123283f4 Better filtering of annotations for Part-list API 2020-03-26 17:08:01 +11:00
Oliver Walters
dae45875fb Add 'on_order' quantity to the part list API 2020-03-26 14:46:23 +11:00
Oliver Walters
d51ac2f5c2 Save creation user when making a new part via the API 2020-03-18 22:00:32 +11:00
Oliver Walters
d4fe83170f Select existing image and upload successfully 2020-02-10 23:48:45 +11:00
Oliver Walters
1327c1d3b1 Add API endpoint for querying part images 2020-02-10 22:03:06 +11: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
37d9c59a0e Add API endpoint for validating a BOM item 2019-09-05 19:29:51 +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
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
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
037dc6a0d6 Reduced tree time with some better queries 2019-06-17 23:52:49 +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
1312148721 Filter parts by template or variant status (in API) 2019-05-26 11:15:41 +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
5055226490 Reduce BOM listing time to ~1.8s 2019-05-20 08:31:03 +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
cdc55bb5d3 PEP fixes 2019-05-18 23:08:42 +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
b4df96aaee Simplify extended filters 2019-05-16 19:14:43 +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
92930766c6 Tree view now supports root URL link 2019-05-09 22:23:56 +10:00
Oliver Walters
02bd9c2d05 Search part by IPN 2019-05-06 11:23:55 +10:00
Oliver Walters
7987fcc7cc PEP fixes 2019-05-05 11:44:23 +10:00
Oliver Walters
b2e935382b Override user field when creating a new PartStar
- Force it to be the currently logged-in user
2019-05-05 10:47:57 +10:00
Oliver Walters
3bd7c28558 Add API endpoint for viewing and deleting a PartStar entry 2019-05-05 10:36:48 +10:00
Oliver Walters
d245e58990 Only allow PartStar creation for the currently authenticated user 2019-05-05 09:14:12 +10:00
Oliver Walters
70f1097ea0 API endpoint for accessing part star information 2019-05-05 09:05:44 +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
6612e91aec Remove ability to delete part via API 2019-04-28 23:41:47 +10:00
Oliver Walters
1a66a12d57 Enable Part API to filter by active status 2019-04-28 23:15:30 +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
d55ea1a982 PEP fixes 2019-04-28 01:09:48 +10:00
Oliver Walters
ed3ae30248 Documentation for Part app 2019-04-27 22:18:07 +10:00
Oliver Walters
241f9783ad Added further testing for Part/Bom API 2019-04-27 14:50:49 +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
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
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