diff --git a/lib/modules/builderAverage.dart b/lib/modules/builderAverage.dart index 06b86c7..d66de1d 100644 --- a/lib/modules/builderAverage.dart +++ b/lib/modules/builderAverage.dart @@ -8,103 +8,91 @@ class BuilderAverage { var data = snapshot.data; Map dic = { - "page1":{}, - "page2": { - "q1" : 0, - "q2" : 0, - "avg_q1": 0, - "avg_q2": 0, - "counter" : 0 - }, - "page3": { - "q1" : 0, - "q2" : 0, - "avg_q1": 0, - "avg_q2": 0, - "counter" : 0 - } + "page1": {}, + "page2": {"q1": 0, "q2": 0, "avg_q1": 0, "avg_q2": 0, "counter": 0}, + "page3": {"q1": 0, "q2": 0, "avg_q1": 0, "avg_q2": 0, "counter": 0} }; - for (Map bewertung in data){ + for (Map bewertung in data) { for (var page in bewertung["ratings"].keys) { var tmp_dic = bewertung["ratings"][page]; - switch (page){ + switch (page) { case "page1": var curKey = tmp_dic["food"].split(": ")[1]; - if (!dic["page1"]!.containsKey(curKey)){ + if (!dic["page1"]!.containsKey(curKey)) { dic["page1"]![curKey] = { - "q1" : 0, - "q2" : 0, + "q1": 0, + "q2": 0, "avg_q1": 0, "avg_q2": 0, - "counter" : 0 + "counter": 0 }; } dic["page1"]![curKey]["q1"] += tmp_dic["q1"]; dic["page1"]![curKey]["q2"] += tmp_dic["q2"]; - dic["page1"]![curKey]["counter"] += tmp_dic["q1"] == 0 ? 0 : 1 ; + dic["page1"]![curKey]["counter"] += tmp_dic["q1"] == 0 ? 0 : 1; break; case "page2": dic["page2"]!["q1"] += tmp_dic["q1"]; dic["page2"]!["q2"] += tmp_dic["q2"]; - dic["page2"]!["counter"] += tmp_dic["q1"] == 0 ? 0 : 1 ; + dic["page2"]!["counter"] += tmp_dic["q1"] == 0 ? 0 : 1; break; case "page3": dic["page3"]!["q1"] += tmp_dic["q1"]; dic["page3"]!["q2"] += tmp_dic["q2"]; - dic["page3"]!["counter"] += tmp_dic["q1"] == 0 ? 0 : 1 ; + dic["page3"]!["counter"] += tmp_dic["q1"] == 0 ? 0 : 1; break; } } } - Map finalDic = { - "Service": {"q1": 0, "q2": 0, "org": "page2"}, - "Essenswünsche": {"q1": 0, "q2": 0, "org": "page3"} - }; + Map finalDic = {}; - finalDic["Service"]!["q1"] = dic["page2"]!["q1"] ~/ dic["page2"]!["counter"]; - finalDic["Service"]!["q2"] = dic["page2"]!["q2"] ~/ dic["page2"]!["counter"]; + if (dic["page2"]!["q1"] != 0) { + finalDic["Service"] = {"org": "page2", "q1": 0, "q2": 0}; + finalDic["Service"]!["q1"] = (dic["page2"]!["q1"] / dic["page2"]!["counter"]).round().toInt(); + finalDic["Service"]!["q2"] = (dic["page2"]!["q2"] / dic["page2"]!["counter"]).round().toInt(); + } - finalDic["Essenswünsche"]!["q1"] = dic["page3"]!["q1"] ~/ dic["page3"]!["counter"]; - finalDic["Essenswünsche"]!["q2"] = dic["page3"]!["q2"] ~/ dic["page3"]!["counter"]; + if (dic["page3"]!["q2"] != 0) { + finalDic["Essenswünsche"] = {"org": "page3", "q1": 0, "q2": 0}; + finalDic["Essenswünsche"]!["q1"] = (dic["page3"]!["q1"] / dic["page3"]!["counter"]).round().toInt(); + finalDic["Essenswünsche"]!["q2"] = (dic["page3"]!["q2"] / dic["page3"]!["counter"]).round().toInt(); + } for (var food in dic["page1"]!.keys) { var foodData = dic["page1"]![food]; finalDic[food] = {"q1": 0, "q2": 0, "org": "page1"}; - finalDic[food]["q1"] = foodData["q1"] ~/ foodData["counter"]; - finalDic[food]?["q2"] = foodData["q2"] ~/ foodData["counter"]; + finalDic[food]["q1"] = (foodData["q1"] / foodData["counter"]).round().toInt(); + finalDic[food]?["q2"] = (foodData["q2"] / foodData["counter"]).round().toInt(); } - List cards = []; if (data == null) { return const Center(); } - var i = 0; for (var title in finalDic.keys) { List children = []; - var rating = finalDic[title]; - - if (rating["q1"] != 0) { - Widget card = RatingCard( - rating1: rating["q1"], - rating2: rating["q2"], - text: "", - title: title, - rating1Title: ratingNames[rating["org"]]!["q1"]!, - rating2Title: ratingNames[rating["org"]]!["q2"]!, - ); - children.add(card); - children.add(const SizedBox( - width: 10, - )); - } + var rating = finalDic[title]; + if (rating["q1"] != 0) { + Widget card = RatingCard( + rating1: rating["q1"], + rating2: rating["q2"], + text: "", + title: title, + rating1Title: ratingNames[rating["org"]]!["q1"]!, + rating2Title: ratingNames[rating["org"]]!["q2"]!, + ); + children.add(card); + children.add(const SizedBox( + width: 10, + )); + } cards.add(Column( mainAxisAlignment: MainAxisAlignment.center, @@ -138,7 +126,6 @@ class BuilderAverage { ), ], )); - i++; } return Center( @@ -154,7 +141,8 @@ class BuilderAverage { Consumer( builder: (context, timeProvider, child) { // Dynamischer Text basierend auf TimeProvider - String text = timeProvider.timeList[timeProvider.selectedTime]!; + String text = + timeProvider.timeList[timeProvider.selectedTime]!; return Text( text + " - Durchschnitt", style: const TextStyle(fontSize: 25),