mirror of
				https://github.com/inventree/inventree-app.git
				synced 2025-10-30 21:05:42 +00:00 
			
		
		
		
	Add API form support for date fields
This commit is contained in:
		| @@ -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( | ||||||
|   | |||||||
| @@ -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 | ||||||
|   | |||||||
| @@ -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: | ||||||
|   | |||||||
| @@ -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 | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user