New Layout - Pro Bewertung

This commit is contained in:
Jonas Braus
2024-11-28 19:39:06 +01:00
parent c272b80f15
commit 7f85b84a15
6 changed files with 123 additions and 61 deletions
+11 -49
View File
@@ -1,15 +1,18 @@
import 'package:flutter/material.dart';
import 'package:mensaappbackend/modules/ratingCard.dart';
import 'package:mensaappbackend/providers/pageProvider.dart';
import 'package:mensaappbackend/providers/viewProvider.dart';
import 'package:provider/provider.dart';
import 'package:supabase_flutter/supabase_flutter.dart';
class PageDashboard extends StatelessWidget {
const PageDashboard({super.key});
Future<List<dynamic>> requestSupaBase7Days() async {
Future<List<dynamic>> requestSupabaseToday() async {
var supabase = Supabase.instance.client;
var result = await supabase.from("ratings_database").select("ratings");
var now = DateTime.now();
var morning = DateTime(now.year, now.month, now.day, 10, 0);
var result = await supabase.from("ratings_database").select("ratings").gte("created_at", morning);
return result;
}
@@ -25,7 +28,7 @@ class PageDashboard extends StatelessWidget {
appBar: AppBar(
backgroundColor: Theme.of(context).colorScheme.primary,
title: Text(
"Dashboard - Bewertungen",
"Dashboard",
style: TextStyle(color: Theme.of(context).colorScheme.onPrimary),
),
centerTitle: false,
@@ -49,53 +52,12 @@ class PageDashboard extends StatelessWidget {
],
),
body: FutureBuilder(
future: requestSupaBase7Days(),
future: requestSupabaseToday(),
builder: (context, snapshot) {
var data = snapshot.data;
List<Widget> cards = [];
if (data == null) {
return Center();
}
for (var map in data) {
var ratings = map["ratings"];
for (var key in ratings.keys) {
var rating = ratings[key];
if (rating["q1"] != 0) {
cards.add(RatingCard(
rating1: rating["q1"],
rating2: rating["q2"],
text: rating["t1"],
title: ratingNames[key]!["title"]!,
rating1Title: ratingNames[key]!["q1"]!,
rating2Title: ratingNames[key]!["q2"]!,
));
}
}
}
return SingleChildScrollView(
child: Center(
child: Column(
crossAxisAlignment: CrossAxisAlignment.center,
children: [
SizedBox(
height: 20,
),
Text(
"Letze 7 Tage:",
style: TextStyle(fontSize: 25),
),
SizedBox(
height: 20,
),
for (var card in cards) card
],
),
),
return Consumer<ViewProvider> (
builder: (context, viewProvider, child) {
return viewProvider.views[viewProvider.selectedView]!(context, snapshot, ratingNames);
},
);
},
),