Time Select for view all

This commit is contained in:
Jonas Braus
2025-01-15 20:25:47 +01:00
parent 5b844d3499
commit e2138439c2
3 changed files with 60 additions and 44 deletions
+22 -15
View File
@@ -3,7 +3,6 @@ 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;
@@ -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,8 +80,10 @@ class BuilderToday {
i++; i++;
} }
return SingleChildScrollView( return Center(
child: Center( child: IntrinsicWidth(
stepWidth: 2,
child: SingleChildScrollView(
child: Column( child: Column(
crossAxisAlignment: CrossAxisAlignment.center, crossAxisAlignment: CrossAxisAlignment.center,
children: [ children: [
@@ -101,6 +107,7 @@ class BuilderToday {
], ],
), ),
), ),
),
); );
} }
} }
+1
View File
@@ -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),
+14 -6
View File
@@ -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) {