average PUUUUSH
This commit is contained in:
@@ -0,0 +1,166 @@
|
|||||||
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:mensaappbackend/modules/ratingCard.dart';
|
||||||
|
import 'package:mensaappbackend/providers/timeProvider.dart';
|
||||||
|
import 'package:provider/provider.dart';
|
||||||
|
|
||||||
|
class BuilderAverage {
|
||||||
|
static Widget build(var context, var snapshot, var ratingNames) {
|
||||||
|
var data = snapshot.data;
|
||||||
|
//print(data);
|
||||||
|
|
||||||
|
Map<String, Map> dic = {
|
||||||
|
"page1":{},
|
||||||
|
"page2": {
|
||||||
|
"q1" : 0,
|
||||||
|
"q2" : 0,
|
||||||
|
"counter" : 0
|
||||||
|
},
|
||||||
|
"page3": {
|
||||||
|
"q1" : 0,
|
||||||
|
"q2" : 0,
|
||||||
|
"counter" : 0
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
for (Map bewertung in data){
|
||||||
|
for (var page in bewertung["ratings"].keys) {
|
||||||
|
var tmp_dic = bewertung["ratings"][page];
|
||||||
|
switch (page){
|
||||||
|
case "page1":
|
||||||
|
var curKey = tmp_dic["food"].split(":")[1];
|
||||||
|
if (!dic["page1"]!.containsKey(curKey)){
|
||||||
|
dic["page1"]![curKey] = {
|
||||||
|
"q1" : 0,
|
||||||
|
"q2" : 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 ;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case "page2":
|
||||||
|
dic["page2"]!["q1"] += tmp_dic["q1"];
|
||||||
|
dic["page2"]!["q2"] += tmp_dic["q2"];
|
||||||
|
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 ;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
print(dic);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
List<Widget> cards = [];
|
||||||
|
|
||||||
|
if (data == null) {
|
||||||
|
return const Center();
|
||||||
|
}
|
||||||
|
|
||||||
|
var i = 0;
|
||||||
|
for (var map in data) {
|
||||||
|
var ratings = map["ratings"];
|
||||||
|
|
||||||
|
List<Widget> children = [];
|
||||||
|
for (var key in ratings.keys) {
|
||||||
|
var rating = ratings[key];
|
||||||
|
|
||||||
|
if (rating["q1"] != 0) {
|
||||||
|
Widget card = RatingCard(
|
||||||
|
rating1: rating["q1"],
|
||||||
|
rating2: rating["q2"],
|
||||||
|
text: rating["t1"],
|
||||||
|
title: ratingNames[key]!["title"]! +
|
||||||
|
(key == "page1" ? "${rating["food"]}" : ""),
|
||||||
|
rating1Title: ratingNames[key]!["q1"]!,
|
||||||
|
rating2Title: ratingNames[key]!["q2"]!,
|
||||||
|
);
|
||||||
|
children.add(card);
|
||||||
|
children.add(const SizedBox(
|
||||||
|
width: 10,
|
||||||
|
));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
cards.add(Column(
|
||||||
|
mainAxisAlignment: MainAxisAlignment.center,
|
||||||
|
crossAxisAlignment: CrossAxisAlignment.stretch,
|
||||||
|
children: [
|
||||||
|
Container(
|
||||||
|
padding: const EdgeInsets.all(15),
|
||||||
|
decoration: BoxDecoration(
|
||||||
|
boxShadow: [
|
||||||
|
BoxShadow(
|
||||||
|
color: Colors.grey.withOpacity(0.8),
|
||||||
|
spreadRadius: 0,
|
||||||
|
blurRadius: 0,
|
||||||
|
offset: const Offset(0, 0))
|
||||||
|
],
|
||||||
|
borderRadius: BorderRadius.circular(15),
|
||||||
|
color: Theme.of(context).colorScheme.surface.withOpacity(0.8)),
|
||||||
|
child: Column(
|
||||||
|
children: [
|
||||||
|
Text(
|
||||||
|
"Bewertung $i",
|
||||||
|
style: const TextStyle(fontSize: 20),
|
||||||
|
),
|
||||||
|
const SizedBox(
|
||||||
|
height: 10,
|
||||||
|
),
|
||||||
|
Wrap(
|
||||||
|
runAlignment: WrapAlignment.center,
|
||||||
|
crossAxisAlignment: WrapCrossAlignment.center,
|
||||||
|
runSpacing: 10,
|
||||||
|
children: children,
|
||||||
|
)
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
const SizedBox(
|
||||||
|
height: 15,
|
||||||
|
),
|
||||||
|
],
|
||||||
|
));
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
|
||||||
|
return Center(
|
||||||
|
child: IntrinsicWidth(
|
||||||
|
stepWidth: 2,
|
||||||
|
child: SingleChildScrollView(
|
||||||
|
child: Column(
|
||||||
|
crossAxisAlignment: CrossAxisAlignment.center,
|
||||||
|
children: [
|
||||||
|
const SizedBox(
|
||||||
|
height: 20,
|
||||||
|
),
|
||||||
|
Consumer<TimeProvider>(
|
||||||
|
builder: (context, timeProvider, child) {
|
||||||
|
// Dynamischer Text basierend auf TimeProvider
|
||||||
|
String text = timeProvider.timeList[timeProvider.selectedTime]!;
|
||||||
|
return Text(
|
||||||
|
text + " - Durchschnitt",
|
||||||
|
style: const TextStyle(fontSize: 25),
|
||||||
|
);
|
||||||
|
},
|
||||||
|
),
|
||||||
|
const SizedBox(
|
||||||
|
height: 20,
|
||||||
|
),
|
||||||
|
for (var card in cards) card,
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -31,10 +31,6 @@ class PageDashboard extends StatelessWidget {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
var viewDatabaseFunctions = {
|
|
||||||
0: requestSupabaseTimeSpan,
|
|
||||||
1: requestSupabaseTimeSpan, //replace with avg function
|
|
||||||
};
|
|
||||||
|
|
||||||
return Scaffold(
|
return Scaffold(
|
||||||
appBar: AppBar(
|
appBar: AppBar(
|
||||||
@@ -112,7 +108,7 @@ class PageDashboard extends StatelessWidget {
|
|||||||
),
|
),
|
||||||
|
|
||||||
body: FutureBuilder(
|
body: FutureBuilder(
|
||||||
future: viewDatabaseFunctions[Provider.of<ViewProvider>(context, listen: false).selectedView]!(
|
future: requestSupabaseTimeSpan(
|
||||||
Provider.of<TimeProvider>(context).selectedTime
|
Provider.of<TimeProvider>(context).selectedTime
|
||||||
),
|
),
|
||||||
builder: (context, snapshot) {
|
builder: (context, snapshot) {
|
||||||
|
|||||||
@@ -1,11 +1,14 @@
|
|||||||
import 'package:flutter/cupertino.dart';
|
import 'package:flutter/cupertino.dart';
|
||||||
import 'package:mensaappbackend/modules/builderNormal.dart';
|
import 'package:mensaappbackend/modules/builderNormal.dart';
|
||||||
|
import 'package:mensaappbackend/modules/builderAverage.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) => BuilderAverage.build(context, snapshot, ratingNames)
|
||||||
};
|
};
|
||||||
|
|
||||||
void setSelectedView(var index) {
|
void setSelectedView(var index) {
|
||||||
|
|||||||
Reference in New Issue
Block a user