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: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<Widget> cards = [];
|
||||
@@ -18,8 +17,7 @@ class BuilderToday {
|
||||
for (var map in data) {
|
||||
var ratings = map["ratings"];
|
||||
|
||||
List<Widget> children = [
|
||||
];
|
||||
List<Widget> 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<TimeProvider>(
|
||||
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<TimeProvider>(
|
||||
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,
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -22,6 +22,7 @@ class RatingCard extends StatelessWidget {
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.center,
|
||||
children: [
|
||||
Container(
|
||||
padding: EdgeInsets.all(10),
|
||||
|
||||
@@ -9,11 +9,17 @@ import 'package:supabase_flutter/supabase_flutter.dart';
|
||||
class PageDashboard extends StatelessWidget {
|
||||
const PageDashboard({super.key});
|
||||
|
||||
Future<List<dynamic>> requestSupabaseToday() async {
|
||||
Future<List<dynamic>> 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<ViewProvider>(context, listen: false).selectedView]!(),
|
||||
future: viewDatabaseFunctions[Provider.of<ViewProvider>(context, listen: false).selectedView]!(
|
||||
Provider.of<TimeProvider>(context).selectedTime
|
||||
),
|
||||
builder: (context, snapshot) {
|
||||
return Consumer<ViewProvider> (
|
||||
builder: (context, viewProvider, child) {
|
||||
|
||||
Reference in New Issue
Block a user