2
0
mirror of https://github.com/inventree/InvenTree.git synced 2025-06-18 04:55:44 +00:00

Tree query improvements (#3443)

* Allow part category table to be ordered by part count

* Add queryset annotation for part-category part-count

- Uses subquery to annotate the part-count for sub-categories
- Huge reduction in number of queries

* Update 'pathstring' property of PartCategory and StockLocation

- No longer a dynamically calculated value
- Constructed when the model is saved, and then written to the database
- Limited to 250 characters

* Data migration to re-construct pathstring for PartCategory objects

* Fix for tree model save() method

* Add unit tests for pathstring construction

* Data migration for StockLocation pathstring values

* Update part API

- Add new annotation to PartLocationDetail view

* Update API version

* Apply similar annotation to StockLocation API endpoints

* Extra tests for PartCategory API

* Unit test fixes

* Allow PartCategory and StockLocation lists to be sorted by 'pathstring'

* Further unit test fixes
This commit is contained in:
Oliver
2022-08-01 13:43:27 +10:00
committed by GitHub
parent 1306db74b2
commit 175d9555b0
19 changed files with 478 additions and 21 deletions

View File

@ -1778,6 +1778,7 @@ function loadPartCategoryTable(table, options) {
name: 'category',
original: original,
showColumns: true,
sortable: true,
buttons: options.allowTreeView ? [
{
icon: 'fas fa-bars',
@ -1882,13 +1883,13 @@ function loadPartCategoryTable(table, options) {
title: '{% trans "Path" %}',
switchable: !tree_view,
visible: !tree_view,
sortable: false,
sortable: true,
},
{
field: 'parts',
field: 'part_count',
title: '{% trans "Parts" %}',
switchable: true,
sortable: false,
sortable: true,
}
]
});

View File

@ -2264,6 +2264,7 @@ function loadStockLocationTable(table, options) {
queryParams: filters,
name: 'location',
original: original,
sortable: true,
showColumns: true,
onPostBody: function() {
@ -2360,14 +2361,13 @@ function loadStockLocationTable(table, options) {
field: 'pathstring',
title: '{% trans "Path" %}',
switchable: true,
sortable: false,
sortable: true,
},
{
field: 'items',
title: '{% trans "Stock Items" %}',
switchable: true,
sortable: false,
sortName: 'item_count',
sortable: true,
}
]
});