mirror of
https://github.com/inventree/inventree-app.git
synced 2025-04-28 13:36:50 +00:00
Add skeleton page for showing test results for a stock item
This commit is contained in:
parent
868e1d20dc
commit
1d7d3def04
@ -1,5 +1,6 @@
|
||||
import 'dart:convert';
|
||||
|
||||
import 'package:InvenTree/inventree/part.dart';
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:http/http.dart' as http;
|
||||
import 'model.dart';
|
||||
@ -67,6 +68,29 @@ class InvenTreeStockItem extends InvenTreeModel {
|
||||
// TODO
|
||||
}
|
||||
|
||||
List<InvenTreePartTestTemplate> testTemplates = List<InvenTreePartTestTemplate>();
|
||||
|
||||
int get testTemplateCount => testTemplates.length;
|
||||
|
||||
// Get all the test templates associated with this StockItem
|
||||
Future<void> getTestTemplates(BuildContext context, {bool showDialog=false}) async {
|
||||
InvenTreePartTestTemplate().list(
|
||||
context,
|
||||
filters: {
|
||||
"part": "${partId}",
|
||||
},
|
||||
dialog: showDialog,
|
||||
).then((var templates) {
|
||||
testTemplates.clear();
|
||||
|
||||
for (var t in templates) {
|
||||
if (t is InvenTreePartTestTemplate) {
|
||||
testTemplates.add(t);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
List<InvenTreeStockItemTestResult> testResults = List<InvenTreeStockItemTestResult>();
|
||||
|
||||
int get testResultCount => testResults.length;
|
||||
|
@ -7,6 +7,7 @@ import 'package:InvenTree/widget/fields.dart';
|
||||
import 'package:InvenTree/widget/location_display.dart';
|
||||
import 'package:InvenTree/widget/part_detail.dart';
|
||||
import 'package:InvenTree/widget/refreshable_state.dart';
|
||||
import 'package:InvenTree/widget/stock_item_test_results.dart';
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
@ -429,7 +430,9 @@ class _StockItemDisplayState extends RefreshableState<StockDetailWidget> {
|
||||
title: Text("Test Results"),
|
||||
leading: FaIcon(FontAwesomeIcons.tasks),
|
||||
trailing: Text("${item.testResultCount}"),
|
||||
onTap: null,
|
||||
onTap: () {
|
||||
Navigator.push(context, MaterialPageRoute(builder: (context) => StockItemTestResultsWidget(item)));
|
||||
}
|
||||
)
|
||||
);
|
||||
|
||||
|
40
lib/widget/stock_item_test_results.dart
Normal file
40
lib/widget/stock_item_test_results.dart
Normal file
@ -0,0 +1,40 @@
|
||||
import 'package:InvenTree/inventree/stock.dart';
|
||||
import 'package:InvenTree/api.dart';
|
||||
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:InvenTree/widget/refreshable_state.dart';
|
||||
|
||||
class StockItemTestResultsWidget extends StatefulWidget {
|
||||
|
||||
StockItemTestResultsWidget(this.item, {Key key}) : super(key: key);
|
||||
|
||||
final InvenTreeStockItem item;
|
||||
|
||||
@override
|
||||
_StockItemTestResultDisplayState createState() => _StockItemTestResultDisplayState(item);
|
||||
}
|
||||
|
||||
|
||||
class _StockItemTestResultDisplayState extends RefreshableState<StockItemTestResultsWidget> {
|
||||
|
||||
@override
|
||||
String getAppBarTitle(BuildContext context) { return "Test Results"; }
|
||||
|
||||
@override
|
||||
Future<void> request(BuildContext context) async {
|
||||
await item.getTestTemplates(context);
|
||||
await item.getTestResults(context);
|
||||
}
|
||||
|
||||
final InvenTreeStockItem item;
|
||||
|
||||
_StockItemTestResultDisplayState(this.item);
|
||||
|
||||
@override
|
||||
Widget getBody(BuildContext context) {
|
||||
return ListView(
|
||||
|
||||
);
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user