mirror of
https://github.com/inventree/inventree-app.git
synced 2025-04-28 13:36:50 +00:00
Configurable GET and LIST filters per model type
This commit is contained in:
parent
fb1fb799d2
commit
59d2b9cf1a
@ -74,8 +74,13 @@ class InvenTreeModel {
|
|||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
Map<String, String> defaultListFilters() { return Map<String, String>(); }
|
||||||
|
|
||||||
|
// A map of "default" headers to use when performing a GET request
|
||||||
|
Map<String, String> defaultGetFilters() { return Map<String, String>(); }
|
||||||
|
|
||||||
// Return the detail view for the associated pk
|
// Return the detail view for the associated pk
|
||||||
Future<InvenTreeModel> get(int pk) async {
|
Future<InvenTreeModel> get(int pk, {Map<String, String> filters}) async {
|
||||||
|
|
||||||
// TODO - Add "timeout"
|
// TODO - Add "timeout"
|
||||||
// TODO - Add error catching
|
// TODO - Add error catching
|
||||||
@ -86,7 +91,18 @@ class InvenTreeModel {
|
|||||||
addr += "/";
|
addr += "/";
|
||||||
}
|
}
|
||||||
|
|
||||||
var response = await InvenTreeAPI().get(addr);
|
var params = defaultGetFilters();
|
||||||
|
|
||||||
|
if (filters != null) {
|
||||||
|
// Override any default values
|
||||||
|
for (String key in filters.keys) {
|
||||||
|
params[key] = filters[key];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
print("GET: $addr ${params.toString()}");
|
||||||
|
|
||||||
|
var response = await InvenTreeAPI().get(addr, params: params);
|
||||||
|
|
||||||
if (response.statusCode != 200) {
|
if (response.statusCode != 200) {
|
||||||
print("Error retrieving data");
|
print("Error retrieving data");
|
||||||
@ -105,12 +121,20 @@ class InvenTreeModel {
|
|||||||
filters = {};
|
filters = {};
|
||||||
}
|
}
|
||||||
|
|
||||||
print("Listing endpoint: $URL");
|
var params = defaultListFilters();
|
||||||
|
|
||||||
|
if (filters != null) {
|
||||||
|
for (String key in filters.keys) {
|
||||||
|
params[key] = filters[key];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
print("LIST: $URL ${params.toString()}");
|
||||||
|
|
||||||
// TODO - Add "timeout"
|
// TODO - Add "timeout"
|
||||||
// TODO - Add error catching
|
// TODO - Add error catching
|
||||||
|
|
||||||
var response = await InvenTreeAPI().get(URL, params:filters);
|
var response = await InvenTreeAPI().get(URL, params:params);
|
||||||
|
|
||||||
// A list of "InvenTreeModel" items
|
// A list of "InvenTreeModel" items
|
||||||
List<InvenTreeModel> results = new List<InvenTreeModel>();
|
List<InvenTreeModel> results = new List<InvenTreeModel>();
|
||||||
|
@ -12,6 +12,15 @@ class InvenTreePartCategory extends InvenTreeModel {
|
|||||||
@override
|
@override
|
||||||
String URL = "part/category/";
|
String URL = "part/category/";
|
||||||
|
|
||||||
|
@override
|
||||||
|
Map<String, String> defaultListFilters() {
|
||||||
|
var filters = new Map<String, String>();
|
||||||
|
|
||||||
|
filters["active"] = "true";
|
||||||
|
|
||||||
|
return filters;
|
||||||
|
}
|
||||||
|
|
||||||
String get pathstring => jsondata['pathstring'] ?? '';
|
String get pathstring => jsondata['pathstring'] ?? '';
|
||||||
|
|
||||||
String get parentpathstring {
|
String get parentpathstring {
|
||||||
|
@ -6,6 +6,17 @@ class InvenTreeStockItem extends InvenTreeModel {
|
|||||||
@override
|
@override
|
||||||
String URL = "stock/";
|
String URL = "stock/";
|
||||||
|
|
||||||
|
@override
|
||||||
|
Map<String, String> defaultGetFilters() {
|
||||||
|
|
||||||
|
var headers = new Map<String, String>();
|
||||||
|
|
||||||
|
headers["part_detail"] = "true";
|
||||||
|
headers["location_detail"] = "true";
|
||||||
|
|
||||||
|
return headers;
|
||||||
|
}
|
||||||
|
|
||||||
InvenTreeStockItem() : super();
|
InvenTreeStockItem() : super();
|
||||||
|
|
||||||
InvenTreeStockItem.fromJson(Map<String, dynamic> json) : super.fromJson(json) {
|
InvenTreeStockItem.fromJson(Map<String, dynamic> json) : super.fromJson(json) {
|
||||||
|
@ -34,8 +34,7 @@ class _PartDisplayState extends State<PartDisplayWidget> {
|
|||||||
*/
|
*/
|
||||||
List<Widget> partTiles() {
|
List<Widget> partTiles() {
|
||||||
|
|
||||||
List<Widget> tiles = [
|
List<Widget> tiles = [];
|
||||||
];
|
|
||||||
|
|
||||||
// Image / name / description
|
// Image / name / description
|
||||||
tiles.add(
|
tiles.add(
|
||||||
|
@ -33,6 +33,25 @@ class _StockItemDisplayState extends State<StockItemDisplayWidget> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Construct a list of detail elements about this StockItem.
|
||||||
|
* The number of elements may vary depending on the StockItem details
|
||||||
|
*/
|
||||||
|
List<Widget> stockTiles() {
|
||||||
|
List<Widget> tiles = [];
|
||||||
|
|
||||||
|
// Image / name / description
|
||||||
|
tiles.add(
|
||||||
|
Card(
|
||||||
|
child: ListTile(
|
||||||
|
title: Text("${item.partName}"),
|
||||||
|
)
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
return tiles;
|
||||||
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return Scaffold(
|
return Scaffold(
|
||||||
|
Loading…
x
Reference in New Issue
Block a user