New Layout - Pro Bewertung
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
import 'package:flutter/material.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';
|
||||
|
||||
@@ -24,6 +25,9 @@ class MyApp extends StatelessWidget {
|
||||
providers: [
|
||||
ChangeNotifierProvider(
|
||||
create: (context) => PageProvider(),
|
||||
),
|
||||
ChangeNotifierProvider(
|
||||
create: (context) => ViewProvider(),
|
||||
)
|
||||
],
|
||||
child: MaterialApp(
|
||||
|
||||
@@ -0,0 +1,96 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:mensaappbackend/modules/ratingCard.dart';
|
||||
|
||||
class BuilderToday {
|
||||
static Widget build (var context, var snapshot, var ratingNames) {
|
||||
var data = snapshot.data;
|
||||
List<Widget> cards = [];
|
||||
|
||||
if (data == null) {
|
||||
return const Center();
|
||||
}
|
||||
|
||||
var i = 0;
|
||||
for (var map in data) {
|
||||
var ratings = map["ratings"];
|
||||
|
||||
List<Widget> children = [
|
||||
];
|
||||
for (var key in ratings.keys) {
|
||||
var rating = ratings[key];
|
||||
|
||||
if (rating["q1"] != 0) {
|
||||
Widget card = RatingCard(
|
||||
rating1: rating["q1"],
|
||||
rating2: rating["q2"],
|
||||
text: rating["t1"],
|
||||
title: ratingNames[key]!["title"]!,
|
||||
rating1Title: ratingNames[key]!["q1"]!,
|
||||
rating2Title: ratingNames[key]!["q2"]!,
|
||||
);
|
||||
children.add(card);
|
||||
children.add(const SizedBox(
|
||||
width: 10,
|
||||
));
|
||||
}
|
||||
}
|
||||
|
||||
cards.add(Column(
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
crossAxisAlignment: CrossAxisAlignment.center,
|
||||
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))
|
||||
],
|
||||
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,),
|
||||
Wrap(
|
||||
runSpacing: 10,
|
||||
crossAxisAlignment: WrapCrossAlignment.center,
|
||||
alignment: WrapAlignment.center,
|
||||
children: children,
|
||||
)
|
||||
],
|
||||
),
|
||||
),
|
||||
const SizedBox(
|
||||
height: 15,
|
||||
),
|
||||
],
|
||||
));
|
||||
i++;
|
||||
}
|
||||
|
||||
return SingleChildScrollView(
|
||||
child: Center(
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.center,
|
||||
children: [
|
||||
const SizedBox(
|
||||
height: 20,
|
||||
),
|
||||
const Text(
|
||||
"Tagesaktuell",
|
||||
style: TextStyle(fontSize: 25),
|
||||
),
|
||||
const SizedBox(
|
||||
height: 20,
|
||||
),
|
||||
for (var card in cards) card
|
||||
],
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -24,17 +24,11 @@ class RatingCard extends StatelessWidget {
|
||||
return Column(
|
||||
children: [
|
||||
Container(
|
||||
padding: EdgeInsets.all(15),
|
||||
padding: EdgeInsets.all(10),
|
||||
decoration: BoxDecoration(
|
||||
color: Theme.of(context).colorScheme.surface,
|
||||
borderRadius: BorderRadius.circular(15),
|
||||
boxShadow: [
|
||||
BoxShadow(
|
||||
color: Colors.grey.withOpacity(0.5),
|
||||
spreadRadius: 5,
|
||||
blurRadius: 7,
|
||||
offset: Offset(0, 3))
|
||||
]),
|
||||
),
|
||||
child: Column(
|
||||
children: [
|
||||
Text(title, style: TextStyle(fontSize: 22),),
|
||||
@@ -49,9 +43,6 @@ class RatingCard extends StatelessWidget {
|
||||
],
|
||||
),
|
||||
),
|
||||
SizedBox(
|
||||
height: 20,
|
||||
)
|
||||
],
|
||||
);
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
},
|
||||
);
|
||||
},
|
||||
),
|
||||
|
||||
@@ -13,7 +13,6 @@ class PageProvider extends ChangeNotifier {
|
||||
];
|
||||
|
||||
void setSelectedPage(var index) {
|
||||
print("hallo");
|
||||
selectedPage = index;
|
||||
notifyListeners();
|
||||
}
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:mensaappbackend/modules/builderToday.dart';
|
||||
|
||||
class ViewProvider extends ChangeNotifier {
|
||||
var selectedView = 0;
|
||||
|
||||
var views = {
|
||||
0: (context, snapshot, ratingNames) => BuilderToday.build(context, snapshot, ratingNames)
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user