diff --git a/lib/modules/builderNormal.dart b/lib/modules/builderNormal.dart index ef702ed..94a9d51 100644 --- a/lib/modules/builderNormal.dart +++ b/lib/modules/builderNormal.dart @@ -3,9 +3,8 @@ import 'package:mensaappbackend/modules/ratingCard.dart'; import 'package:mensaappbackend/providers/timeProvider.dart'; import 'package:provider/provider.dart'; - class BuilderToday { - static Widget build (var context, var snapshot, var ratingNames) { + static Widget build(var context, var snapshot, var ratingNames) { var data = snapshot.data; List cards = []; @@ -18,8 +17,7 @@ class BuilderToday { for (var map in data) { var ratings = map["ratings"]; - List children = [ - ]; + List children = []; for (var key in ratings.keys) { var rating = ratings[key]; @@ -28,7 +26,8 @@ class BuilderToday { rating1: rating["q1"], rating2: rating["q2"], text: rating["t1"], - title: ratingNames[key]!["title"]! + (key == "page1" ? "${rating["food"]}" : ""), + title: ratingNames[key]!["title"]! + + (key == "page1" ? "${rating["food"]}" : ""), rating1Title: ratingNames[key]!["q1"]!, rating2Title: ratingNames[key]!["q2"]!, ); @@ -41,28 +40,33 @@ class BuilderToday { cards.add(Column( mainAxisAlignment: MainAxisAlignment.center, - crossAxisAlignment: CrossAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.stretch, 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)) + 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,), + Text( + "Bewertung $i", + style: const TextStyle(fontSize: 20), + ), + const SizedBox( + height: 10, + ), Wrap( - runSpacing: 10, + runAlignment: WrapAlignment.center, crossAxisAlignment: WrapCrossAlignment.center, - alignment: WrapAlignment.center, + runSpacing: 10, children: children, ) ], @@ -76,31 +80,34 @@ class BuilderToday { i++; } - return SingleChildScrollView( - child: Center( - child: Column( - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - const SizedBox( - height: 20, - ), - Consumer( - builder: (context, timeProvider, child) { - // Dynamischer Text basierend auf TimeProvider - String text = timeProvider.timeList[timeProvider.selectedTime]!; - return Text( - text + " - Alle", - style: const TextStyle(fontSize: 25), - ); - }, - ), - const SizedBox( - height: 20, - ), - for (var card in cards) card, - ], + return Center( + child: IntrinsicWidth( + stepWidth: 2, + child: SingleChildScrollView( + child: Column( + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + const SizedBox( + height: 20, + ), + Consumer( + builder: (context, timeProvider, child) { + // Dynamischer Text basierend auf TimeProvider + String text = timeProvider.timeList[timeProvider.selectedTime]!; + return Text( + text + " - Alle", + style: const TextStyle(fontSize: 25), + ); + }, + ), + const SizedBox( + height: 20, + ), + for (var card in cards) card, + ], + ), ), ), ); } -} \ No newline at end of file +} diff --git a/lib/modules/ratingCard.dart b/lib/modules/ratingCard.dart index 2319531..63416d0 100644 --- a/lib/modules/ratingCard.dart +++ b/lib/modules/ratingCard.dart @@ -22,6 +22,7 @@ class RatingCard extends StatelessWidget { @override Widget build(BuildContext context) { return Column( + crossAxisAlignment: CrossAxisAlignment.center, children: [ Container( padding: EdgeInsets.all(10), diff --git a/lib/pages/pageDashboard.dart b/lib/pages/pageDashboard.dart index 4561914..dbd6164 100644 --- a/lib/pages/pageDashboard.dart +++ b/lib/pages/pageDashboard.dart @@ -9,11 +9,17 @@ import 'package:supabase_flutter/supabase_flutter.dart'; class PageDashboard extends StatelessWidget { const PageDashboard({super.key}); - Future> requestSupabaseToday() async { + Future> requestSupabaseTimeSpan(int timeId) async { var supabase = Supabase.instance.client; var now = DateTime.now(); - var morning = DateTime(now.year, now.month, now.day, 0, 1); - var result = await supabase.from("ratings_database").select("ratings").gte("created_at", morning); + var nowMorning = DateTime(now.year, now.month, now.day, 0, 1); + 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; } @@ -26,8 +32,8 @@ class PageDashboard extends StatelessWidget { @override Widget build(BuildContext context) { var viewDatabaseFunctions = { - 0: requestSupabaseToday, - 1: requestSupabaseToday, + 0: requestSupabaseTimeSpan, + 1: requestSupabaseTimeSpan, //replace with avg function }; return Scaffold( @@ -106,7 +112,9 @@ class PageDashboard extends StatelessWidget { ), body: FutureBuilder( - future: viewDatabaseFunctions[Provider.of(context, listen: false).selectedView]!(), + future: viewDatabaseFunctions[Provider.of(context, listen: false).selectedView]!( + Provider.of(context).selectedTime + ), builder: (context, snapshot) { return Consumer ( builder: (context, viewProvider, child) {