Brrrrrrrrrrr
This commit is contained in:
@@ -1,150 +0,0 @@
|
|||||||
import 'package:flutter/material.dart';
|
|
||||||
import 'package:mensaappbackend/modules/ratingCard.dart';
|
|
||||||
import 'package:provider/provider.dart';
|
|
||||||
import 'package:mensaappbackend/providers/timeProvider.dart';
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class BuilderTodayAverage {
|
|
||||||
static Widget _getRatingWidget(
|
|
||||||
var q1, var q2, var page, var essen, var ratingNames, var context) {
|
|
||||||
Widget card = Column(
|
|
||||||
children: [
|
|
||||||
Container(
|
|
||||||
padding: const EdgeInsets.all(15),
|
|
||||||
decoration: BoxDecoration(
|
|
||||||
boxShadow: [
|
|
||||||
BoxShadow(
|
|
||||||
color: Colors.grey.withOpacity(0.5),
|
|
||||||
spreadRadius: 5,
|
|
||||||
blurRadius: 7,
|
|
||||||
offset: const Offset(0, 3))
|
|
||||||
],
|
|
||||||
borderRadius: BorderRadius.circular(15),
|
|
||||||
color: Theme.of(context).colorScheme.surface.withOpacity(0.8)),
|
|
||||||
child: RatingCard(
|
|
||||||
rating1: q1,
|
|
||||||
rating2: q2,
|
|
||||||
title: ratingNames[page]["title"] + (essen == -1 ? "" : "$essen"),
|
|
||||||
rating1Title: ratingNames[page]["q1"],
|
|
||||||
rating2Title: ratingNames[page]["q2"],
|
|
||||||
text: "",
|
|
||||||
),
|
|
||||||
),
|
|
||||||
const SizedBox(
|
|
||||||
height: 20,
|
|
||||||
)
|
|
||||||
],
|
|
||||||
);
|
|
||||||
|
|
||||||
if (q1 != 0) {
|
|
||||||
return card;
|
|
||||||
} else {
|
|
||||||
return Container();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static Widget build(var context, var snapshot, var ratingNames) {
|
|
||||||
var data = snapshot.data;
|
|
||||||
|
|
||||||
if (data == null) {
|
|
||||||
return const Center();
|
|
||||||
}
|
|
||||||
|
|
||||||
var avgP1F1 = [0.0, 0.0, 0];
|
|
||||||
var avgP1F2 = [0.0, 0.0, 0];
|
|
||||||
var avgP1F3 = [0.0, 0.0, 0];
|
|
||||||
var avgP2 = [0.0, 0.0, 0];
|
|
||||||
var avgP3 = [0.0, 0.0, 0];
|
|
||||||
|
|
||||||
var foodIdx = 1;
|
|
||||||
var foodNameMap = {};
|
|
||||||
|
|
||||||
var foodMap = {1: avgP1F1, 2: avgP1F2, 3: avgP1F3};
|
|
||||||
|
|
||||||
for (var map in data) {
|
|
||||||
var ratings = map["ratings"];
|
|
||||||
|
|
||||||
ratings["page1"]["food"] = ratings["page1"]["food"].toString();
|
|
||||||
|
|
||||||
print(ratings["page1"]["food"]);
|
|
||||||
|
|
||||||
ratings["page1"]["food"] = ratings["page1"]["food"];
|
|
||||||
|
|
||||||
if (!foodNameMap.containsKey(ratings["page1"]["food"])) {
|
|
||||||
foodNameMap[ratings["page1"]["food"]] = foodIdx;
|
|
||||||
foodIdx++;
|
|
||||||
}
|
|
||||||
|
|
||||||
var food = foodNameMap[ratings["page1"]["food"]];
|
|
||||||
var page1 = ratings["page1"],
|
|
||||||
page2 = ratings["page2"],
|
|
||||||
page3 = ratings["page3"];
|
|
||||||
|
|
||||||
foodMap[food]?[0] += page1["q1"];
|
|
||||||
foodMap[food]?[1] += page1["q2"];
|
|
||||||
foodMap[food]?[2] += page1["q1"] == 0 ? 0 : 1;
|
|
||||||
avgP2[0] += page2["q1"];
|
|
||||||
avgP2[1] += page2["q2"];
|
|
||||||
avgP2[2] += page2["q1"] == 0 ? 0 : 1;
|
|
||||||
avgP3[0] += page3["q1"];
|
|
||||||
avgP3[1] += page3["q2"];
|
|
||||||
avgP3[2] += page3["q1"] == 0 ? 0 : 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
for (var i in [1, 2, 3]) {
|
|
||||||
foodMap[i]?[0] =
|
|
||||||
(foodMap[i]![0] / (foodMap[i]![2] == 0 ? 1 : foodMap[i]![2])).toInt();
|
|
||||||
foodMap[i]?[1] =
|
|
||||||
(foodMap[i]![1] / (foodMap[i]![2] == 0 ? 1 : foodMap[i]![2])).toInt();
|
|
||||||
}
|
|
||||||
|
|
||||||
avgP2[0] = (avgP2[0] / avgP2[2] == 0 ? 1 : avgP2[2]).toInt();
|
|
||||||
avgP2[1] = (avgP2[1] / avgP2[2] == 0 ? 1 : avgP2[2]).toInt();
|
|
||||||
avgP3[0] = (avgP3[0] / avgP3[2] == 0 ? 1 : avgP3[2]).toInt();
|
|
||||||
avgP3[1] = (avgP3[1] / avgP3[2] == 0 ? 1 : avgP3[2]).toInt();
|
|
||||||
|
|
||||||
return SingleChildScrollView(
|
|
||||||
child: Center(
|
|
||||||
child: Column(
|
|
||||||
crossAxisAlignment: CrossAxisAlignment.center,
|
|
||||||
children: [
|
|
||||||
const SizedBox(
|
|
||||||
height: 20,
|
|
||||||
),
|
|
||||||
Consumer<TimeProvider>(
|
|
||||||
builder: (context, timeProvider, child) {
|
|
||||||
// Dynamischer Text basierend auf TimeProvider
|
|
||||||
String text = timeProvider.selectedTime == 1
|
|
||||||
? "Heute - Durchschnitt"
|
|
||||||
: "Letzte 7 Tage - Durchschnitt";
|
|
||||||
return Text(
|
|
||||||
text,
|
|
||||||
style: const TextStyle(fontSize: 25),
|
|
||||||
);
|
|
||||||
},
|
|
||||||
),
|
|
||||||
const SizedBox(
|
|
||||||
height: 20,
|
|
||||||
),
|
|
||||||
Column(
|
|
||||||
crossAxisAlignment: CrossAxisAlignment.center,
|
|
||||||
children: [
|
|
||||||
_getRatingWidget(avgP1F1[0], avgP1F1[1], "page1",
|
|
||||||
foodNameMap.keys.elementAtOrNull(0), ratingNames, context),
|
|
||||||
_getRatingWidget(avgP1F2[0], avgP1F2[1], "page1",
|
|
||||||
foodNameMap.keys.elementAtOrNull(1), ratingNames, context),
|
|
||||||
_getRatingWidget(avgP1F3[0], avgP1F3[1], "page1",
|
|
||||||
foodNameMap.keys.elementAtOrNull(2), ratingNames, context),
|
|
||||||
_getRatingWidget(
|
|
||||||
avgP2[0], avgP2[1], "page2", -1, ratingNames, context),
|
|
||||||
_getRatingWidget(
|
|
||||||
avgP3[0], avgP3[1], "page3", -1, ratingNames, context)
|
|
||||||
],
|
|
||||||
)
|
|
||||||
],
|
|
||||||
),
|
|
||||||
),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,13 +1,11 @@
|
|||||||
import 'package:flutter/cupertino.dart';
|
import 'package:flutter/cupertino.dart';
|
||||||
import 'package:mensaappbackend/modules/builderToday.dart';
|
import 'package:mensaappbackend/modules/builderNormal.dart';
|
||||||
import 'package:mensaappbackend/modules/builderTodayAverage.dart';
|
|
||||||
|
|
||||||
class ViewProvider extends ChangeNotifier {
|
class ViewProvider extends ChangeNotifier {
|
||||||
var selectedView = 0;
|
var selectedView = 0;
|
||||||
|
|
||||||
var views = {
|
var views = {
|
||||||
0: (context, snapshot, ratingNames) => BuilderToday.build(context, snapshot, ratingNames),
|
0: (context, snapshot, ratingNames) => BuilderToday.build(context, snapshot, ratingNames)
|
||||||
1: (context, snapshot, ratingNames) => BuilderTodayAverage.build(context, snapshot, ratingNames)
|
|
||||||
};
|
};
|
||||||
|
|
||||||
void setSelectedView(var index) {
|
void setSelectedView(var index) {
|
||||||
|
|||||||
Reference in New Issue
Block a user