diff --git a/aidedejeu_flutter/lib/database.dart b/aidedejeu_flutter/lib/database.dart index efb834cf..2767c4f9 100644 --- a/aidedejeu_flutter/lib/database.dart +++ b/aidedejeu_flutter/lib/database.dart @@ -52,7 +52,7 @@ Future getItemWithId(String id) async { return response.isNotEmpty ? itemFromMap(response.first) : null; } -Future loadChildrenItems(Item item) async { +Future loadChildrenItems(Item item, List filters) async { print("getChildrenItems " + (item?.ItemType ?? "")); if (item.ItemType.endsWith("Items")) { String itemType = @@ -61,10 +61,19 @@ Future loadChildrenItems(Item item) async { if (item is FilteredItems) { family = (item as FilteredItems)?.Family ?? ""; } + String whereFilter = ""; + if(filters != null) { + filters.forEach((filter) { + if(filter.selectedValues.isNotEmpty) { + whereFilter = " AND (${filter.name} = '" + filter.selectedValues.join("' OR ${filter.name} = '") + "')"; + } + }); + } + print(whereFilter); final db = await database; var response = await db.query( "Items", - where: "ItemType = ? AND Family = ?", + where: "ItemType = ? AND Family = ?" + whereFilter, whereArgs: [itemType, family], orderBy: "NormalizedName" ); diff --git a/aidedejeu_flutter/lib/widgets/filterWidgets.dart b/aidedejeu_flutter/lib/widgets/filters.dart similarity index 100% rename from aidedejeu_flutter/lib/widgets/filterWidgets.dart rename to aidedejeu_flutter/lib/widgets/filters.dart diff --git a/aidedejeu_flutter/lib/widgets/homepage.dart b/aidedejeu_flutter/lib/widgets/homepage.dart index cea4a98c..c347aaa3 100644 --- a/aidedejeu_flutter/lib/widgets/homepage.dart +++ b/aidedejeu_flutter/lib/widgets/homepage.dart @@ -1,5 +1,5 @@ import 'package:aidedejeu_flutter/database.dart'; -import 'package:aidedejeu_flutter/widgets/filterWidgets.dart'; +import 'package:aidedejeu_flutter/widgets/filters.dart'; import 'package:aidedejeu_flutter/models/items.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; @@ -61,7 +61,7 @@ class _MyHomePageState extends State { Future _loadItem() async { var item = await getItemWithId(this.widget.id); - var items = await loadChildrenItems(item); + var items = await loadChildrenItems(item, filters); //setItem(item); return item; } @@ -156,6 +156,12 @@ class _MyHomePageState extends State { setState(() { filter.selectedValues = choices; }); + loadChildrenItems(item, filters).then((value) => { + setState(() { + this.item = item; + this.filters = filters; + }) + }); }, ); } @@ -199,6 +205,7 @@ class _MyHomePageState extends State { @override Widget build(BuildContext context) { + print("build"); Widget currentPage; switch (indexPage) { case 0: diff --git a/aidedejeu_flutter/pubspec.lock b/aidedejeu_flutter/pubspec.lock index 0ac03612..a774e828 100644 --- a/aidedejeu_flutter/pubspec.lock +++ b/aidedejeu_flutter/pubspec.lock @@ -89,14 +89,14 @@ packages: name: flutter_markdown url: "https://pub.dartlang.org" source: hosted - version: "0.3.3" + version: "0.3.4" flutter_svg: dependency: "direct main" description: name: flutter_svg url: "https://pub.dartlang.org" source: hosted - version: "0.17.1" + version: "0.17.2" flutter_test: dependency: "direct dev" description: flutter @@ -211,7 +211,7 @@ packages: name: sqflite url: "https://pub.dartlang.org" source: hosted - version: "1.2.0" + version: "1.2.1" stack_trace: dependency: transitive description: diff --git a/aidedejeu_flutter/pubspec.yaml b/aidedejeu_flutter/pubspec.yaml index f0cf459c..a28d70cf 100644 --- a/aidedejeu_flutter/pubspec.yaml +++ b/aidedejeu_flutter/pubspec.yaml @@ -14,7 +14,7 @@ description: Haches & Dés version flutter version: 1.0.0+1 environment: - sdk: ">=2.1.0 <3.0.0" + sdk: ">=2.2.0 <3.0.0" dependencies: flutter: