Time Select for view all
This commit is contained in:
@@ -3,9 +3,8 @@ import 'package:mensaappbackend/modules/ratingCard.dart';
|
|||||||
import 'package:mensaappbackend/providers/timeProvider.dart';
|
import 'package:mensaappbackend/providers/timeProvider.dart';
|
||||||
import 'package:provider/provider.dart';
|
import 'package:provider/provider.dart';
|
||||||
|
|
||||||
|
|
||||||
class BuilderToday {
|
class BuilderToday {
|
||||||
static Widget build (var context, var snapshot, var ratingNames) {
|
static Widget build(var context, var snapshot, var ratingNames) {
|
||||||
var data = snapshot.data;
|
var data = snapshot.data;
|
||||||
|
|
||||||
List<Widget> cards = [];
|
List<Widget> cards = [];
|
||||||
@@ -18,8 +17,7 @@ class BuilderToday {
|
|||||||
for (var map in data) {
|
for (var map in data) {
|
||||||
var ratings = map["ratings"];
|
var ratings = map["ratings"];
|
||||||
|
|
||||||
List<Widget> children = [
|
List<Widget> children = [];
|
||||||
];
|
|
||||||
for (var key in ratings.keys) {
|
for (var key in ratings.keys) {
|
||||||
var rating = ratings[key];
|
var rating = ratings[key];
|
||||||
|
|
||||||
@@ -28,7 +26,8 @@ class BuilderToday {
|
|||||||
rating1: rating["q1"],
|
rating1: rating["q1"],
|
||||||
rating2: rating["q2"],
|
rating2: rating["q2"],
|
||||||
text: rating["t1"],
|
text: rating["t1"],
|
||||||
title: ratingNames[key]!["title"]! + (key == "page1" ? "${rating["food"]}" : ""),
|
title: ratingNames[key]!["title"]! +
|
||||||
|
(key == "page1" ? "${rating["food"]}" : ""),
|
||||||
rating1Title: ratingNames[key]!["q1"]!,
|
rating1Title: ratingNames[key]!["q1"]!,
|
||||||
rating2Title: ratingNames[key]!["q2"]!,
|
rating2Title: ratingNames[key]!["q2"]!,
|
||||||
);
|
);
|
||||||
@@ -41,28 +40,33 @@ class BuilderToday {
|
|||||||
|
|
||||||
cards.add(Column(
|
cards.add(Column(
|
||||||
mainAxisAlignment: MainAxisAlignment.center,
|
mainAxisAlignment: MainAxisAlignment.center,
|
||||||
crossAxisAlignment: CrossAxisAlignment.center,
|
crossAxisAlignment: CrossAxisAlignment.stretch,
|
||||||
children: [
|
children: [
|
||||||
Container(
|
Container(
|
||||||
padding: const EdgeInsets.all(15),
|
padding: const EdgeInsets.all(15),
|
||||||
decoration: BoxDecoration(
|
decoration: BoxDecoration(
|
||||||
boxShadow: [
|
boxShadow: [
|
||||||
BoxShadow(
|
BoxShadow(
|
||||||
color: Colors.grey.withOpacity(0.5),
|
color: Colors.grey.withOpacity(0.8),
|
||||||
spreadRadius: 5,
|
spreadRadius: 0,
|
||||||
blurRadius: 7,
|
blurRadius: 0,
|
||||||
offset: const Offset(0, 3))
|
offset: const Offset(0, 0))
|
||||||
],
|
],
|
||||||
borderRadius: BorderRadius.circular(15),
|
borderRadius: BorderRadius.circular(15),
|
||||||
color: Theme.of(context).colorScheme.surface.withOpacity(0.8)),
|
color: Theme.of(context).colorScheme.surface.withOpacity(0.8)),
|
||||||
child: Column(
|
child: Column(
|
||||||
children: [
|
children: [
|
||||||
Text("Bewertung $i", style: const TextStyle(fontSize: 20),),
|
Text(
|
||||||
const SizedBox(height: 10,),
|
"Bewertung $i",
|
||||||
|
style: const TextStyle(fontSize: 20),
|
||||||
|
),
|
||||||
|
const SizedBox(
|
||||||
|
height: 10,
|
||||||
|
),
|
||||||
Wrap(
|
Wrap(
|
||||||
runSpacing: 10,
|
runAlignment: WrapAlignment.center,
|
||||||
crossAxisAlignment: WrapCrossAlignment.center,
|
crossAxisAlignment: WrapCrossAlignment.center,
|
||||||
alignment: WrapAlignment.center,
|
runSpacing: 10,
|
||||||
children: children,
|
children: children,
|
||||||
)
|
)
|
||||||
],
|
],
|
||||||
@@ -76,31 +80,34 @@ class BuilderToday {
|
|||||||
i++;
|
i++;
|
||||||
}
|
}
|
||||||
|
|
||||||
return SingleChildScrollView(
|
return Center(
|
||||||
child: Center(
|
child: IntrinsicWidth(
|
||||||
child: Column(
|
stepWidth: 2,
|
||||||
crossAxisAlignment: CrossAxisAlignment.center,
|
child: SingleChildScrollView(
|
||||||
children: [
|
child: Column(
|
||||||
const SizedBox(
|
crossAxisAlignment: CrossAxisAlignment.center,
|
||||||
height: 20,
|
children: [
|
||||||
),
|
const SizedBox(
|
||||||
Consumer<TimeProvider>(
|
height: 20,
|
||||||
builder: (context, timeProvider, child) {
|
),
|
||||||
// Dynamischer Text basierend auf TimeProvider
|
Consumer<TimeProvider>(
|
||||||
String text = timeProvider.timeList[timeProvider.selectedTime]!;
|
builder: (context, timeProvider, child) {
|
||||||
return Text(
|
// Dynamischer Text basierend auf TimeProvider
|
||||||
text + " - Alle",
|
String text = timeProvider.timeList[timeProvider.selectedTime]!;
|
||||||
style: const TextStyle(fontSize: 25),
|
return Text(
|
||||||
);
|
text + " - Alle",
|
||||||
},
|
style: const TextStyle(fontSize: 25),
|
||||||
),
|
);
|
||||||
const SizedBox(
|
},
|
||||||
height: 20,
|
),
|
||||||
),
|
const SizedBox(
|
||||||
for (var card in cards) card,
|
height: 20,
|
||||||
],
|
),
|
||||||
|
for (var card in cards) card,
|
||||||
|
],
|
||||||
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -22,6 +22,7 @@ class RatingCard extends StatelessWidget {
|
|||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return Column(
|
return Column(
|
||||||
|
crossAxisAlignment: CrossAxisAlignment.center,
|
||||||
children: [
|
children: [
|
||||||
Container(
|
Container(
|
||||||
padding: EdgeInsets.all(10),
|
padding: EdgeInsets.all(10),
|
||||||
|
|||||||
@@ -9,11 +9,17 @@ import 'package:supabase_flutter/supabase_flutter.dart';
|
|||||||
class PageDashboard extends StatelessWidget {
|
class PageDashboard extends StatelessWidget {
|
||||||
const PageDashboard({super.key});
|
const PageDashboard({super.key});
|
||||||
|
|
||||||
Future<List<dynamic>> requestSupabaseToday() async {
|
Future<List<dynamic>> requestSupabaseTimeSpan(int timeId) async {
|
||||||
var supabase = Supabase.instance.client;
|
var supabase = Supabase.instance.client;
|
||||||
var now = DateTime.now();
|
var now = DateTime.now();
|
||||||
var morning = DateTime(now.year, now.month, now.day, 0, 1);
|
var nowMorning = DateTime(now.year, now.month, now.day, 0, 1);
|
||||||
var result = await supabase.from("ratings_database").select("ratings").gte("created_at", morning);
|
var morningDict = {
|
||||||
|
1: nowMorning,
|
||||||
|
2: nowMorning.subtract(const Duration(days: 7)),
|
||||||
|
3: nowMorning.subtract(const Duration(days: 30)),
|
||||||
|
4: nowMorning.subtract(const Duration(days: 365)),
|
||||||
|
};
|
||||||
|
var result = await supabase.from("ratings_database").select("ratings").gte("created_at", morningDict[timeId]!);
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -26,8 +32,8 @@ class PageDashboard extends StatelessWidget {
|
|||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
var viewDatabaseFunctions = {
|
var viewDatabaseFunctions = {
|
||||||
0: requestSupabaseToday,
|
0: requestSupabaseTimeSpan,
|
||||||
1: requestSupabaseToday,
|
1: requestSupabaseTimeSpan, //replace with avg function
|
||||||
};
|
};
|
||||||
|
|
||||||
return Scaffold(
|
return Scaffold(
|
||||||
@@ -106,7 +112,9 @@ class PageDashboard extends StatelessWidget {
|
|||||||
),
|
),
|
||||||
|
|
||||||
body: FutureBuilder(
|
body: FutureBuilder(
|
||||||
future: viewDatabaseFunctions[Provider.of<ViewProvider>(context, listen: false).selectedView]!(),
|
future: viewDatabaseFunctions[Provider.of<ViewProvider>(context, listen: false).selectedView]!(
|
||||||
|
Provider.of<TimeProvider>(context).selectedTime
|
||||||
|
),
|
||||||
builder: (context, snapshot) {
|
builder: (context, snapshot) {
|
||||||
return Consumer<ViewProvider> (
|
return Consumer<ViewProvider> (
|
||||||
builder: (context, viewProvider, child) {
|
builder: (context, viewProvider, child) {
|
||||||
|
|||||||
Reference in New Issue
Block a user