aliAproved

This commit is contained in:
Jonas Braus
2025-01-15 22:07:16 +01:00
parent 0b85bb9ba9
commit ef09f5b165
+42 -54
View File
@@ -8,103 +8,91 @@ class BuilderAverage {
var data = snapshot.data; var data = snapshot.data;
Map<String, Map> dic = { Map<String, Map> dic = {
"page1":{}, "page1": {},
"page2": { "page2": {"q1": 0, "q2": 0, "avg_q1": 0, "avg_q2": 0, "counter": 0},
"q1" : 0, "page3": {"q1": 0, "q2": 0, "avg_q1": 0, "avg_q2": 0, "counter": 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) { for (var page in bewertung["ratings"].keys) {
var tmp_dic = bewertung["ratings"][page]; var tmp_dic = bewertung["ratings"][page];
switch (page){ switch (page) {
case "page1": case "page1":
var curKey = tmp_dic["food"].split(": ")[1]; var curKey = tmp_dic["food"].split(": ")[1];
if (!dic["page1"]!.containsKey(curKey)){ if (!dic["page1"]!.containsKey(curKey)) {
dic["page1"]![curKey] = { dic["page1"]![curKey] = {
"q1" : 0, "q1": 0,
"q2" : 0, "q2": 0,
"avg_q1": 0, "avg_q1": 0,
"avg_q2": 0, "avg_q2": 0,
"counter" : 0 "counter": 0
}; };
} }
dic["page1"]![curKey]["q1"] += tmp_dic["q1"]; dic["page1"]![curKey]["q1"] += tmp_dic["q1"];
dic["page1"]![curKey]["q2"] += tmp_dic["q2"]; 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; break;
case "page2": case "page2":
dic["page2"]!["q1"] += tmp_dic["q1"]; dic["page2"]!["q1"] += tmp_dic["q1"];
dic["page2"]!["q2"] += tmp_dic["q2"]; 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; break;
case "page3": case "page3":
dic["page3"]!["q1"] += tmp_dic["q1"]; dic["page3"]!["q1"] += tmp_dic["q1"];
dic["page3"]!["q2"] += tmp_dic["q2"]; 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; break;
} }
} }
} }
Map finalDic = { Map finalDic = {};
"Service": {"q1": 0, "q2": 0, "org": "page2"},
"Essenswünsche": {"q1": 0, "q2": 0, "org": "page3"}
};
finalDic["Service"]!["q1"] = dic["page2"]!["q1"] ~/ dic["page2"]!["counter"]; if (dic["page2"]!["q1"] != 0) {
finalDic["Service"]!["q2"] = dic["page2"]!["q2"] ~/ dic["page2"]!["counter"]; 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"]; if (dic["page3"]!["q2"] != 0) {
finalDic["Essenswünsche"]!["q2"] = dic["page3"]!["q2"] ~/ dic["page3"]!["counter"]; 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) { for (var food in dic["page1"]!.keys) {
var foodData = dic["page1"]![food]; var foodData = dic["page1"]![food];
finalDic[food] = {"q1": 0, "q2": 0, "org": "page1"}; finalDic[food] = {"q1": 0, "q2": 0, "org": "page1"};
finalDic[food]["q1"] = foodData["q1"] ~/ foodData["counter"]; finalDic[food]["q1"] = (foodData["q1"] / foodData["counter"]).round().toInt();
finalDic[food]?["q2"] = foodData["q2"] ~/ foodData["counter"]; finalDic[food]?["q2"] = (foodData["q2"] / foodData["counter"]).round().toInt();
} }
List<Widget> cards = []; List<Widget> cards = [];
if (data == null) { if (data == null) {
return const Center(); return const Center();
} }
var i = 0;
for (var title in finalDic.keys) { for (var title in finalDic.keys) {
List<Widget> children = []; List<Widget> children = [];
var rating = finalDic[title]; 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,
));
}
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( cards.add(Column(
mainAxisAlignment: MainAxisAlignment.center, mainAxisAlignment: MainAxisAlignment.center,
@@ -138,7 +126,6 @@ class BuilderAverage {
), ),
], ],
)); ));
i++;
} }
return Center( return Center(
@@ -154,7 +141,8 @@ class BuilderAverage {
Consumer<TimeProvider>( Consumer<TimeProvider>(
builder: (context, timeProvider, child) { builder: (context, timeProvider, child) {
// Dynamischer Text basierend auf TimeProvider // Dynamischer Text basierend auf TimeProvider
String text = timeProvider.timeList[timeProvider.selectedTime]!; String text =
timeProvider.timeList[timeProvider.selectedTime]!;
return Text( return Text(
text + " - Durchschnitt", text + " - Durchschnitt",
style: const TextStyle(fontSize: 25), style: const TextStyle(fontSize: 25),