mirror of
https://github.com/Nioux/AideDeJeu.git
synced 2025-10-29 14:35:45 +00:00
Filtres
This commit is contained in:
parent
60d83137be
commit
8a261c7545
5 changed files with 24 additions and 8 deletions
|
|
@ -52,7 +52,7 @@ Future<Item> getItemWithId(String id) async {
|
|||
return response.isNotEmpty ? itemFromMap(response.first) : null;
|
||||
}
|
||||
|
||||
Future<Item> loadChildrenItems(Item item) async {
|
||||
Future<Item> loadChildrenItems(Item item, List<Filter> filters) async {
|
||||
print("getChildrenItems " + (item?.ItemType ?? ""));
|
||||
if (item.ItemType.endsWith("Items")) {
|
||||
String itemType =
|
||||
|
|
@ -61,10 +61,19 @@ Future<Item> 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"
|
||||
);
|
||||
|
|
|
|||
|
|
@ -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<MyHomePage> {
|
|||
|
||||
Future<Item> _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<MyHomePage> {
|
|||
setState(() {
|
||||
filter.selectedValues = choices;
|
||||
});
|
||||
loadChildrenItems(item, filters).then((value) => {
|
||||
setState(() {
|
||||
this.item = item;
|
||||
this.filters = filters;
|
||||
})
|
||||
});
|
||||
},
|
||||
);
|
||||
}
|
||||
|
|
@ -199,6 +205,7 @@ class _MyHomePageState extends State<MyHomePage> {
|
|||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
print("build");
|
||||
Widget currentPage;
|
||||
switch (indexPage) {
|
||||
case 0:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue