2
0
mirror of https://github.com/inventree/inventree-app.git synced 2025-05-02 23:38:54 +00:00

PaginatedPartList is now filterable in a more "generic" manner

This commit is contained in:
Oliver Walters 2021-03-01 13:31:41 +11:00
parent b3d60b6957
commit 991a7a4388

View File

@ -272,7 +272,7 @@ class _CategoryDisplayState extends RefreshableState<CategoryDisplayWidget> {
children: detailTiles() children: detailTiles()
); );
case 1: case 1:
return PaginatedPartList(category?.pk ?? null); return PaginatedPartList({"category": "${category?.pk ?? null}"});
case 2: case 2:
return ListView( return ListView(
children: actionTiles() children: actionTiles()
@ -333,12 +333,12 @@ class SubcategoryList extends StatelessWidget {
class PaginatedPartList extends StatefulWidget { class PaginatedPartList extends StatefulWidget {
final int categoryId; final Map<String, String> filters;
PaginatedPartList(this.categoryId); PaginatedPartList(this.filters);
@override @override
_PaginatedPartListState createState() => _PaginatedPartListState(categoryId); _PaginatedPartListState createState() => _PaginatedPartListState(filters);
} }
@ -348,9 +348,9 @@ class _PaginatedPartListState extends State<PaginatedPartList> {
String _searchTerm; String _searchTerm;
final int categoryId; final Map<String, String> filters;
_PaginatedPartListState(this.categoryId); _PaginatedPartListState(this.filters);
final PagingController<int, InvenTreePart> _pagingController = PagingController(firstPageKey: 0); final PagingController<int, InvenTreePart> _pagingController = PagingController(firstPageKey: 0);
@ -372,15 +372,13 @@ class _PaginatedPartListState extends State<PaginatedPartList> {
Future<void> _fetchPage(int pageKey) async { Future<void> _fetchPage(int pageKey) async {
try { try {
Map<String, String> filters = { Map<String, String> params = filters;
"category": "${categoryId}",
};
if (_searchTerm != null && _searchTerm.isNotEmpty) { if (_searchTerm != null && _searchTerm.isNotEmpty) {
filters["search"] = _searchTerm; params["search"] = _searchTerm;
} }
final page = await InvenTreePart().listPaginated(_pageSize, pageKey, filters: filters); final page = await InvenTreePart().listPaginated(_pageSize, pageKey, filters: params);
final isLastPage = page.length < _pageSize; final isLastPage = page.length < _pageSize;
// Construct a list of part objects // Construct a list of part objects