2
0
mirror of https://github.com/inventree/inventree-app.git synced 2025-04-28 05:26:47 +00:00

Add API form support for date fields

This commit is contained in:
Oliver 2021-09-28 01:14:58 +10:00
parent 61a9557df5
commit 68d542cb6b
4 changed files with 44 additions and 0 deletions

View File

@ -3,6 +3,7 @@ import 'dart:io';
import 'package:font_awesome_flutter/font_awesome_flutter.dart'; import 'package:font_awesome_flutter/font_awesome_flutter.dart';
import 'package:dropdown_search/dropdown_search.dart'; import 'package:dropdown_search/dropdown_search.dart';
import 'package:date_field/date_field.dart';
import 'package:inventree/api.dart'; import 'package:inventree/api.dart';
import 'package:inventree/app_colors.dart'; import 'package:inventree/app_colors.dart';
@ -167,6 +168,8 @@ class APIFormField {
case "file upload": case "file upload":
case "image upload": case "image upload":
return _constructFileField(); return _constructFileField();
case "date":
return _constructDateField();
default: default:
return ListTile( return ListTile(
title: Text( title: Text(
@ -179,6 +182,30 @@ class APIFormField {
} }
} }
// Field for displaying and selecting dates
Widget _constructDateField() {
return DateTimeFormField(
mode: DateTimeFieldPickerMode.date,
decoration: InputDecoration(
helperText: helpText,
helperStyle: _helperStyle(),
labelText: label,
labelStyle: _labelStyle(),
),
initialValue: DateTime.tryParse(value ?? ""),
autovalidateMode: AutovalidateMode.always,
validator: (e) {
// TODO
},
onDateSelected: (DateTime dt) {
data['value'] = dt.toString().split(" ").first;
},
);
}
// Field for selecting and uploading files // Field for selecting and uploading files
Widget _constructFileField() { Widget _constructFileField() {
@ -418,6 +445,13 @@ class APIFormField {
style: TextStyle(fontWeight: selected ? FontWeight.bold : FontWeight.normal), style: TextStyle(fontWeight: selected ? FontWeight.bold : FontWeight.normal),
) : null, ) : null,
); );
case "owner":
String name = item["name"] ?? "";
bool isGroup = (item["label"] ?? "") == "group";
return ListTile(
title: Text(name),
leading: FaIcon(isGroup ? FontAwesomeIcons.users : FontAwesomeIcons.user),
);
default: default:
return ListTile( return ListTile(
title: Text( title: Text(

View File

@ -223,6 +223,8 @@ class InvenTreeStockItem extends InvenTreeModel {
return pp.isNotEmpty && pp.trim() != "-"; return pp.isNotEmpty && pp.trim() != "-";
} }
int get purchaseOrderId => jsondata['purchase_order'] ?? -1;
int get trackingItemCount => (jsondata['tracking_items'] ?? 0) as int; int get trackingItemCount => (jsondata['tracking_items'] ?? 0) as int;
// Date of last update // Date of last update

View File

@ -127,6 +127,13 @@ packages:
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.0.3" version: "1.0.3"
date_field:
dependency: "direct main"
description:
name: date_field
url: "https://pub.dartlang.org"
source: hosted
version: "2.1.2"
device_info_plus: device_info_plus:
dependency: "direct main" dependency: "direct main"
description: description:

View File

@ -31,6 +31,7 @@ dependencies:
sentry_flutter: 5.0.0 # Error reporting sentry_flutter: 5.0.0 # Error reporting
image_picker: ^0.8.3 # Select or take photos image_picker: ^0.8.3 # Select or take photos
file_picker: ^4.0.0 # Select files from the device file_picker: ^4.0.0 # Select files from the device
date_field: ^2.1.2 # Date / time picker
url_launcher: 6.0.9 # Open link in system browser url_launcher: 6.0.9 # Open link in system browser
open_file: 3.2.1 # Open local files open_file: 3.2.1 # Open local files
flutter_markdown: ^0.6.2 # Rendering markdown flutter_markdown: ^0.6.2 # Rendering markdown