Giga Push (it is 1:30 am and I am tired)
Backend Structure implemented All Ratings will be pulled and validated Pop Up notfies user about all his ratings If confirmed, data will be send to the supabase server (if any data was found) No comments were made, who else needs to read this?
This commit is contained in:
+23
-3
@@ -9,8 +9,25 @@ import 'package:mensaapp/providers/spaceProvider.dart';
|
|||||||
import 'package:mensaapp/providers/spezielleErnaehrungProvider.dart';
|
import 'package:mensaapp/providers/spezielleErnaehrungProvider.dart';
|
||||||
import 'package:provider/provider.dart';
|
import 'package:provider/provider.dart';
|
||||||
import 'dart:async';
|
import 'dart:async';
|
||||||
|
import 'package:supabase_flutter/supabase_flutter.dart';
|
||||||
|
|
||||||
|
|
||||||
|
void main() async {
|
||||||
|
WidgetsFlutterBinding.ensureInitialized();
|
||||||
|
|
||||||
|
await Supabase.initialize(
|
||||||
|
url: "http://192.168.2.229:8000",
|
||||||
|
anonKey: "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyAgCiAgICAicm9sZSI6ICJhbm9uIiwKICAgICJpc3MiOiAic3VwYWJhc2UtZGVtbyIsCiAgICAiaWF0IjogMTY0MTc2OTIwMCwKICAgICJleHAiOiAxNzk5NTM1NjAwCn0.dc_X5iR_VP_qT0zsiyj_I_OZ2T9FtRU2BBNWN8Bu4GE",
|
||||||
|
);
|
||||||
|
|
||||||
|
var supabase = Supabase.instance.client;
|
||||||
|
|
||||||
|
/*
|
||||||
|
var test = await supabase.from('flutter').insert(
|
||||||
|
{"rating": {"huhu" : "Fuuuuck uuuuuu if this works"}}
|
||||||
|
);
|
||||||
|
*/
|
||||||
|
|
||||||
void main() {
|
|
||||||
runApp(const MyApp());
|
runApp(const MyApp());
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -71,7 +88,7 @@ class MyApp extends StatelessWidget {
|
|||||||
|
|
||||||
var lastTimeClick = DateTime.now();
|
var lastTimeClick = DateTime.now();
|
||||||
|
|
||||||
var secondsTimeOut = 80;
|
var secondsTimeOut = 80; //80
|
||||||
var popupOpen = false;
|
var popupOpen = false;
|
||||||
|
|
||||||
void _showTimeOverDialog(BuildContext context) {
|
void _showTimeOverDialog(BuildContext context) {
|
||||||
@@ -122,7 +139,7 @@ class MyHome extends StatelessWidget {
|
|||||||
(timer) {
|
(timer) {
|
||||||
var clickDiff = DateTime.now().difference(lastTimeClick).inSeconds;
|
var clickDiff = DateTime.now().difference(lastTimeClick).inSeconds;
|
||||||
if (clickDiff >= secondsTimeOut && Provider.of<SpaceProvider>(context, listen: false).selectedSpace == 1) {
|
if (clickDiff >= secondsTimeOut && Provider.of<SpaceProvider>(context, listen: false).selectedSpace == 1) {
|
||||||
Navigator.of(context).pop();
|
Navigator.of(context).popUntil((route) => route.isFirst);
|
||||||
Provider.of<AnmerkungProvider>(context, listen: false)
|
Provider.of<AnmerkungProvider>(context, listen: false)
|
||||||
.resetAllFields();
|
.resetAllFields();
|
||||||
Provider.of<EssenProvider>(context, listen: false)
|
Provider.of<EssenProvider>(context, listen: false)
|
||||||
@@ -135,6 +152,8 @@ class MyHome extends StatelessWidget {
|
|||||||
.resetAllFields();
|
.resetAllFields();
|
||||||
Provider.of<PageProvider>(context, listen: false)
|
Provider.of<PageProvider>(context, listen: false)
|
||||||
.resetSelectedEssen();
|
.resetSelectedEssen();
|
||||||
|
Provider.of<PageProvider>(context, listen: false)
|
||||||
|
.changePage(0);
|
||||||
Provider.of<SpaceProvider>(context, listen: false)
|
Provider.of<SpaceProvider>(context, listen: false)
|
||||||
.setSelectedSpace(0);
|
.setSelectedSpace(0);
|
||||||
Provider.of<LanguageProvider>(context, listen: false)
|
Provider.of<LanguageProvider>(context, listen: false)
|
||||||
@@ -142,6 +161,7 @@ class MyHome extends StatelessWidget {
|
|||||||
} else if (clickDiff >= secondsTimeOut - 30 && Provider.of<SpaceProvider>(context, listen: false).selectedSpace == 1) {
|
} else if (clickDiff >= secondsTimeOut - 30 && Provider.of<SpaceProvider>(context, listen: false).selectedSpace == 1) {
|
||||||
if (!popupOpen) {
|
if (!popupOpen) {
|
||||||
_showTimeOverDialog(context);
|
_showTimeOverDialog(context);
|
||||||
|
_showTimeOverDialog(context);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,181 @@
|
|||||||
|
import 'package:supabase_flutter/supabase_flutter.dart';
|
||||||
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:provider/provider.dart';
|
||||||
|
import 'package:mensaapp/providers/spezielleErnaehrungProvider.dart';
|
||||||
|
import 'package:mensaapp/providers/serviceProvider.dart';
|
||||||
|
import 'package:mensaapp/providers/ambienteProvider.dart';
|
||||||
|
import 'package:mensaapp/providers/anmerkungProvider.dart';
|
||||||
|
import 'package:mensaapp/providers/essenProvider.dart';
|
||||||
|
import '../providers/pageProvider.dart';
|
||||||
|
import '../providers/languageProvider.dart';
|
||||||
|
import 'package:mensaapp/providers/spaceProvider.dart';
|
||||||
|
|
||||||
|
|
||||||
|
class DatabaseService {
|
||||||
|
final SupabaseClient supabase = Supabase.instance.client;
|
||||||
|
|
||||||
|
void getAllRatings(BuildContext context) {
|
||||||
|
var serviceProvider = Provider.of<ServiceProvider>(context, listen: false);
|
||||||
|
var essenProvider = Provider.of<EssenProvider>(context, listen: false);
|
||||||
|
var speziellerProvider = Provider.of<SpezielleErnaehrungProvider>(context, listen: false);
|
||||||
|
var pageProvider = Provider.of<PageProvider>(context, listen: false);
|
||||||
|
|
||||||
|
var essenData = {
|
||||||
|
"q1": essenProvider.ratingQuali,
|
||||||
|
"q2": essenProvider.ratingGeschmack,
|
||||||
|
"t1": essenProvider.freiText,
|
||||||
|
"food": pageProvider.selectedEssenName
|
||||||
|
};
|
||||||
|
|
||||||
|
var serviceData = {
|
||||||
|
"q1": serviceProvider.ratingFrage1,
|
||||||
|
"q2": serviceProvider.ratingFrage2,
|
||||||
|
"t1": serviceProvider.freiText
|
||||||
|
};
|
||||||
|
|
||||||
|
var speziellerData = {
|
||||||
|
"q1": speziellerProvider.frage1,
|
||||||
|
"q2": speziellerProvider.frage2,
|
||||||
|
"t1": speziellerProvider.freiText
|
||||||
|
};
|
||||||
|
|
||||||
|
var sendData = {
|
||||||
|
"page1": {
|
||||||
|
"q1": 0,
|
||||||
|
"q2": 0,
|
||||||
|
"t1": "",
|
||||||
|
"food": ""
|
||||||
|
},
|
||||||
|
"page2": {
|
||||||
|
"q1": 0,
|
||||||
|
"q2": 0,
|
||||||
|
"t1": ""
|
||||||
|
},
|
||||||
|
"page3": {
|
||||||
|
"q1": 0,
|
||||||
|
"q2": 0,
|
||||||
|
"t1": ""
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
var jsonArray = [serviceData, essenData, speziellerData];
|
||||||
|
|
||||||
|
for (var element in jsonArray) {
|
||||||
|
var exists = checkIfRatingExists(element);
|
||||||
|
if (exists) {
|
||||||
|
if (element == essenData) {
|
||||||
|
sendData["page1"] = element;
|
||||||
|
} else if (element == serviceData) {
|
||||||
|
sendData["page2"] = element;
|
||||||
|
} else if (element == speziellerData) {
|
||||||
|
sendData["page3"] = element;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
print(sendData);
|
||||||
|
_showConfirmationDialog(context, sendData);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool checkIfRatingExists(Map<String, dynamic> myJson) {
|
||||||
|
return !myJson.values.any((value) => value == 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
Future<void> sendDataToSupabase(Map<String, dynamic> data) async {
|
||||||
|
try {
|
||||||
|
final response = await supabase.from('flutter').insert({"rating": data});
|
||||||
|
print("Antwort von Supabase: $response");
|
||||||
|
|
||||||
|
if (response == null) {
|
||||||
|
throw Exception("Antwort von Supabase ist null");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (response['error'] != null) {
|
||||||
|
throw Exception("Supabase-Fehler: ${response['error']}");
|
||||||
|
}
|
||||||
|
|
||||||
|
print("Daten erfolgreich gesendet: ${response['data']}");
|
||||||
|
} catch (error) { //vielleicht überarbeiten? Pop Up mit "Admin verständigen"
|
||||||
|
print("Fehler beim Senden der Daten: $error");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void _showConfirmationDialog(BuildContext context, data) {
|
||||||
|
String formatData(Map<String, dynamic> pageData, String title) {
|
||||||
|
if (pageData['q1'] != 0 && pageData['q2'] != 0) {
|
||||||
|
String foodLine = pageData.containsKey('food') ? "- ${pageData['food']}\n" : "";
|
||||||
|
return "$title:\n"
|
||||||
|
"$foodLine"
|
||||||
|
"- Frage 1: ${pageData['q1'].toInt()}/5 Sterne\n"
|
||||||
|
"- Frage 2: ${pageData['q2'].toInt()}/5 Sterne\n"
|
||||||
|
"- Freitext: ${pageData['t1']}\n\n";
|
||||||
|
}
|
||||||
|
return "$title: Nicht bewertet\n\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
bool allUnrated = data.values.every((pageData) => pageData['q1'] == 0 && pageData['q2'] == 0 && (pageData['t1'] ?? "").isEmpty);
|
||||||
|
|
||||||
|
String dialogContent =
|
||||||
|
formatData(data["page1"], "Essen") +
|
||||||
|
formatData(data["page2"], "Service") +
|
||||||
|
formatData(data["page3"], "Spezielle Nahrung");
|
||||||
|
|
||||||
|
|
||||||
|
showDialog(
|
||||||
|
context: context,
|
||||||
|
builder: (BuildContext dialogContext) {
|
||||||
|
return AlertDialog(
|
||||||
|
title: Text("Bestätigung"),
|
||||||
|
content: SizedBox(
|
||||||
|
width: MediaQuery.of(context).size.width * 0.6,
|
||||||
|
height: MediaQuery.of(context).size.height * 0.3,
|
||||||
|
child: SingleChildScrollView(
|
||||||
|
child: Text(
|
||||||
|
dialogContent,
|
||||||
|
style: TextStyle(fontSize: 18),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
actions: [
|
||||||
|
ElevatedButton(
|
||||||
|
onPressed: () {
|
||||||
|
Navigator.of(dialogContext).pop(); // Abbrechen
|
||||||
|
},
|
||||||
|
style: ElevatedButton.styleFrom(
|
||||||
|
backgroundColor: Theme.of(context).colorScheme.secondary),
|
||||||
|
child: Text("Abbrechen"),
|
||||||
|
),
|
||||||
|
ElevatedButton(
|
||||||
|
onPressed: allUnrated
|
||||||
|
? null // Button deaktivieren
|
||||||
|
: () async {
|
||||||
|
Navigator.of(dialogContext).pop(); // Dialog schließen
|
||||||
|
await sendDataToSupabase(data);
|
||||||
|
Provider.of<EssenProvider>(context, listen: false).resetAllFields();
|
||||||
|
Provider.of<ServiceProvider>(context, listen: false).resetAllFields();
|
||||||
|
Provider.of<SpezielleErnaehrungProvider>(context, listen: false)
|
||||||
|
.resetAllFields();
|
||||||
|
Provider.of<PageProvider>(context, listen: false).resetSelectedEssen();
|
||||||
|
Provider.of<SpaceProvider>(context, listen: false).setSelectedSpace(0);
|
||||||
|
Provider.of<LanguageProvider>(context, listen: false).setLanguage("de");
|
||||||
|
},
|
||||||
|
style: ElevatedButton.styleFrom(
|
||||||
|
backgroundColor: allUnrated
|
||||||
|
? Colors.grey // Button farblich anzeigen, wenn deaktiviert
|
||||||
|
: Theme.of(context).primaryColor,
|
||||||
|
),
|
||||||
|
child: Text("Absenden",
|
||||||
|
style: TextStyle(
|
||||||
|
decoration: allUnrated ? TextDecoration.lineThrough : null,
|
||||||
|
color: allUnrated ? Colors.black54 : Theme.of(context).colorScheme.secondary)
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
);
|
||||||
|
},
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@@ -63,10 +63,10 @@ class PageSpezielleErnaehrung extends StatelessWidget {
|
|||||||
return RatingStars(
|
return RatingStars(
|
||||||
onRate: (value) {
|
onRate: (value) {
|
||||||
spezielleErnaehrungProvider
|
spezielleErnaehrungProvider
|
||||||
.setRatingSitzmoeglichkeit(value);
|
.setRatingFrage1(value);
|
||||||
},
|
},
|
||||||
initRating: spezielleErnaehrungProvider
|
initRating: spezielleErnaehrungProvider
|
||||||
.ratingSitzmoeglichkeit,
|
.frage1,
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
@@ -85,10 +85,10 @@ class PageSpezielleErnaehrung extends StatelessWidget {
|
|||||||
return RatingStars(
|
return RatingStars(
|
||||||
onRate: (value) {
|
onRate: (value) {
|
||||||
spezielleErnaehrungProvider
|
spezielleErnaehrungProvider
|
||||||
.setRatingKeineAhnung(value);
|
.setRatingFrage2(value);
|
||||||
},
|
},
|
||||||
initRating:
|
initRating:
|
||||||
spezielleErnaehrungProvider.ratingKeineAhnung,
|
spezielleErnaehrungProvider.frage2,
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
|
|||||||
@@ -12,16 +12,16 @@ class LanguageProvider extends ChangeNotifier {
|
|||||||
},
|
},
|
||||||
"textfield": "Dein Feedback",
|
"textfield": "Dein Feedback",
|
||||||
"pageAmbiente": {
|
"pageAmbiente": {
|
||||||
"question1": "Frage1",
|
"question1": "Frage1*",
|
||||||
"question2": "Frage2",
|
"question2": "Frage2*",
|
||||||
},
|
},
|
||||||
"pageAnmerkungen": {
|
"pageAnmerkungen": {
|
||||||
"question1": "Frage1",
|
"question1": "Frage1*",
|
||||||
"question2": "Frage2",
|
"question2": "Frage2*",
|
||||||
},
|
},
|
||||||
"pageEssen": {
|
"pageEssen": {
|
||||||
"question1": "Geschmack",
|
"question1": "Geschmack*",
|
||||||
"question2": "Qualität",
|
"question2": "Qualität*",
|
||||||
},
|
},
|
||||||
"pageHome": {
|
"pageHome": {
|
||||||
"noTimePopupTitle": "Du kannst gerade nicht bewerten!",
|
"noTimePopupTitle": "Du kannst gerade nicht bewerten!",
|
||||||
@@ -30,12 +30,12 @@ class LanguageProvider extends ChangeNotifier {
|
|||||||
"noTimePopupButton": "OK"
|
"noTimePopupButton": "OK"
|
||||||
},
|
},
|
||||||
"pageService": {
|
"pageService": {
|
||||||
"question1": "Frage1",
|
"question1": "Frage1*",
|
||||||
"question2": "Frage2",
|
"question2": "Frage2*",
|
||||||
},
|
},
|
||||||
"pageSpecial": {
|
"pageSpecial": {
|
||||||
"question1": "Frage1",
|
"question1": "Frage1*",
|
||||||
"question2": "Frage2",
|
"question2": "Frage2*",
|
||||||
},
|
},
|
||||||
"navBar": {"0": "Essen", "1": "Service", "2": "Essenswünsche"},
|
"navBar": {"0": "Essen", "1": "Service", "2": "Essenswünsche"},
|
||||||
"floating": {
|
"floating": {
|
||||||
@@ -57,16 +57,16 @@ class LanguageProvider extends ChangeNotifier {
|
|||||||
},
|
},
|
||||||
"textfield": "Your Feedback",
|
"textfield": "Your Feedback",
|
||||||
"pageAmbiente": {
|
"pageAmbiente": {
|
||||||
"question1": "Question1",
|
"question1": "Question1*",
|
||||||
"question2": "Question2",
|
"question2": "Question2*",
|
||||||
},
|
},
|
||||||
"pageAnmerkungen": {
|
"pageAnmerkungen": {
|
||||||
"question1": "Question1",
|
"question1": "Question1*",
|
||||||
"question2": "Question2",
|
"question2": "Question2*",
|
||||||
},
|
},
|
||||||
"pageEssen": {
|
"pageEssen": {
|
||||||
"question1": "Taste",
|
"question1": "Taste*",
|
||||||
"question2": "Quality",
|
"question2": "Quality*",
|
||||||
},
|
},
|
||||||
"pageHome": {
|
"pageHome": {
|
||||||
"noTimePopupTitle": "You cannot rate right now!",
|
"noTimePopupTitle": "You cannot rate right now!",
|
||||||
@@ -75,12 +75,12 @@ class LanguageProvider extends ChangeNotifier {
|
|||||||
"noTimePopupButton": "OK"
|
"noTimePopupButton": "OK"
|
||||||
},
|
},
|
||||||
"pageService": {
|
"pageService": {
|
||||||
"question1": "Question1",
|
"question1": "Question1*",
|
||||||
"question2": "Question2",
|
"question2": "Question2*",
|
||||||
},
|
},
|
||||||
"pageSpecial": {
|
"pageSpecial": {
|
||||||
"question1": "Question1",
|
"question1": "Question1*",
|
||||||
"question2": "Question2",
|
"question2": "Question2*",
|
||||||
},
|
},
|
||||||
"navBar": {"0": "Food", "1": "Service", "2": "Food Requests"},
|
"navBar": {"0": "Food", "1": "Service", "2": "Food Requests"},
|
||||||
"floating": {
|
"floating": {
|
||||||
@@ -102,16 +102,16 @@ class LanguageProvider extends ChangeNotifier {
|
|||||||
},
|
},
|
||||||
"textfield": "Votre avis",
|
"textfield": "Votre avis",
|
||||||
"pageAmbiente": {
|
"pageAmbiente": {
|
||||||
"question1": "Question1",
|
"question1": "Question1*",
|
||||||
"question2": "Question2",
|
"question2": "Question2*",
|
||||||
},
|
},
|
||||||
"pageAnmerkungen": {
|
"pageAnmerkungen": {
|
||||||
"question1": "Question1",
|
"question1": "Question1*",
|
||||||
"question2": "Question2",
|
"question2": "Question2*",
|
||||||
},
|
},
|
||||||
"pageEssen": {
|
"pageEssen": {
|
||||||
"question1": "Goût",
|
"question1": "Goût*",
|
||||||
"question2": "Qualité",
|
"question2": "Qualité*",
|
||||||
},
|
},
|
||||||
"pageHome": {
|
"pageHome": {
|
||||||
"noTimePopupTitle": "Vous ne pouvez pas évaluer pour le moment !",
|
"noTimePopupTitle": "Vous ne pouvez pas évaluer pour le moment !",
|
||||||
@@ -120,12 +120,12 @@ class LanguageProvider extends ChangeNotifier {
|
|||||||
"noTimePopupButton": "D'ACCORD"
|
"noTimePopupButton": "D'ACCORD"
|
||||||
},
|
},
|
||||||
"pageService": {
|
"pageService": {
|
||||||
"question1": "Question1",
|
"question1": "Question1*",
|
||||||
"question2": "Question2",
|
"question2": "Question2*",
|
||||||
},
|
},
|
||||||
"pageSpecial": {
|
"pageSpecial": {
|
||||||
"question1": "Question1",
|
"question1": "Question1*",
|
||||||
"question2": "Question2",
|
"question2": "Question2*",
|
||||||
},
|
},
|
||||||
"navBar": {
|
"navBar": {
|
||||||
"0": "Nourriture",
|
"0": "Nourriture",
|
||||||
|
|||||||
@@ -2,17 +2,17 @@ import 'package:flutter/material.dart';
|
|||||||
|
|
||||||
|
|
||||||
class SpezielleErnaehrungProvider extends ChangeNotifier {
|
class SpezielleErnaehrungProvider extends ChangeNotifier {
|
||||||
double ratingSitzmoeglichkeit = 0;
|
double frage1 = 0;
|
||||||
double ratingKeineAhnung = 0;
|
double frage2 = 0;
|
||||||
String freiText = "";
|
String freiText = "";
|
||||||
|
|
||||||
void setRatingSitzmoeglichkeit(double rating) {
|
void setRatingFrage1(double rating) {
|
||||||
ratingSitzmoeglichkeit = rating;
|
frage1 = rating;
|
||||||
notifyListeners();
|
notifyListeners();
|
||||||
}
|
}
|
||||||
|
|
||||||
void setRatingKeineAhnung(double rating) {
|
void setRatingFrage2(double rating) {
|
||||||
ratingKeineAhnung = rating;
|
frage2 = rating;
|
||||||
notifyListeners();
|
notifyListeners();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -23,8 +23,8 @@ class SpezielleErnaehrungProvider extends ChangeNotifier {
|
|||||||
|
|
||||||
void resetAllFields(){
|
void resetAllFields(){
|
||||||
freiText = "";
|
freiText = "";
|
||||||
ratingSitzmoeglichkeit = 0;
|
frage1 = 0;
|
||||||
ratingKeineAhnung = 0;
|
frage2 = 0;
|
||||||
notifyListeners();
|
notifyListeners();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -50,7 +50,7 @@ class _SpaceHomeState extends State<SpaceHome> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// only for test
|
// only for test
|
||||||
var disableRateTimeDebug = false;
|
var disableRateTimeDebug = true;
|
||||||
|
|
||||||
// end only for test
|
// end only for test
|
||||||
void _showNotRateTimeDialog(BuildContext context) {
|
void _showNotRateTimeDialog(BuildContext context) {
|
||||||
@@ -138,6 +138,7 @@ class _SpaceHomeState extends State<SpaceHome> {
|
|||||||
children: [
|
children: [
|
||||||
Text(
|
Text(
|
||||||
text,
|
text,
|
||||||
|
textAlign: TextAlign.center,
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
fontSize: 70,
|
fontSize: 70,
|
||||||
fontWeight: FontWeight.bold,
|
fontWeight: FontWeight.bold,
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:google_nav_bar/google_nav_bar.dart';
|
import 'package:google_nav_bar/google_nav_bar.dart';
|
||||||
|
import 'package:mensaapp/modules/databaseService.dart';
|
||||||
import 'package:mensaapp/providers/spaceProvider.dart';
|
import 'package:mensaapp/providers/spaceProvider.dart';
|
||||||
import 'package:provider/provider.dart';
|
import 'package:provider/provider.dart';
|
||||||
|
|
||||||
@@ -46,18 +47,20 @@ class SpaceRate extends StatelessWidget {
|
|||||||
),
|
),
|
||||||
ElevatedButton(
|
ElevatedButton(
|
||||||
onPressed: () {
|
onPressed: () {
|
||||||
Provider.of<AnmerkungProvider>(context, listen: false)
|
/*Provider.of<AnmerkungProvider>(context, listen: false)
|
||||||
.resetAllFields();
|
.resetAllFields();*/
|
||||||
Provider.of<EssenProvider>(context, listen: false)
|
Provider.of<EssenProvider>(context, listen: false)
|
||||||
.resetAllFields();
|
.resetAllFields();
|
||||||
Provider.of<AmbienteProvider>(context, listen: false)
|
/*Provider.of<AmbienteProvider>(context, listen: false)
|
||||||
.resetAllFields();
|
.resetAllFields();*/
|
||||||
Provider.of<ServiceProvider>(context, listen: false)
|
Provider.of<ServiceProvider>(context, listen: false)
|
||||||
.resetAllFields();
|
.resetAllFields();
|
||||||
Provider.of<SpezielleErnaehrungProvider>(context, listen: false)
|
Provider.of<SpezielleErnaehrungProvider>(context, listen: false)
|
||||||
.resetAllFields();
|
.resetAllFields();
|
||||||
Provider.of<PageProvider>(context, listen: false)
|
Provider.of<PageProvider>(context, listen: false)
|
||||||
.resetSelectedEssen();
|
.resetSelectedEssen();
|
||||||
|
Provider.of<PageProvider>(context, listen: false)
|
||||||
|
.changePage(0);
|
||||||
Provider.of<SpaceProvider>(context, listen: false)
|
Provider.of<SpaceProvider>(context, listen: false)
|
||||||
.setSelectedSpace(0);
|
.setSelectedSpace(0);
|
||||||
Provider.of<LanguageProvider>(context, listen: false)
|
Provider.of<LanguageProvider>(context, listen: false)
|
||||||
@@ -213,7 +216,15 @@ class SpaceRate extends StatelessWidget {
|
|||||||
height: 10,
|
height: 10,
|
||||||
),
|
),
|
||||||
FloatingActionButton.extended(
|
FloatingActionButton.extended(
|
||||||
onPressed: () {},
|
onPressed: () {
|
||||||
|
DatabaseService().getAllRatings(
|
||||||
|
context
|
||||||
|
);
|
||||||
|
|
||||||
|
/*DatabaseService.getAllRatings(
|
||||||
|
Provider.of<ServiceProvider>(context), Provider.of<EssenProvider>(context), Provider.of<SpezielleErnaehrungProvider>(context)); // Passe den Kontext an, falls nötig
|
||||||
|
*/
|
||||||
|
},
|
||||||
label: Text(
|
label: Text(
|
||||||
Provider.of<LanguageProvider>(context).languageData[
|
Provider.of<LanguageProvider>(context).languageData[
|
||||||
Provider.of<LanguageProvider>(context).language]
|
Provider.of<LanguageProvider>(context).language]
|
||||||
|
|||||||
+256
@@ -1,6 +1,38 @@
|
|||||||
# Generated by pub
|
# Generated by pub
|
||||||
# See https://dart.dev/tools/pub/glossary#lockfile
|
# See https://dart.dev/tools/pub/glossary#lockfile
|
||||||
packages:
|
packages:
|
||||||
|
app_links:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: app_links
|
||||||
|
sha256: ad1a6d598e7e39b46a34f746f9a8b011ee147e4c275d407fa457e7a62f84dd99
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "6.3.2"
|
||||||
|
app_links_linux:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: app_links_linux
|
||||||
|
sha256: f5f7173a78609f3dfd4c2ff2c95bd559ab43c80a87dc6a095921d96c05688c81
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "1.0.3"
|
||||||
|
app_links_platform_interface:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: app_links_platform_interface
|
||||||
|
sha256: "05f5379577c513b534a29ddea68176a4d4802c46180ee8e2e966257158772a3f"
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "2.0.2"
|
||||||
|
app_links_web:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: app_links_web
|
||||||
|
sha256: af060ed76183f9e2b87510a9480e56a5352b6c249778d07bd2c95fc35632a555
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "1.0.4"
|
||||||
async:
|
async:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@@ -41,6 +73,14 @@ packages:
|
|||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.18.0"
|
version: "1.18.0"
|
||||||
|
crypto:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: crypto
|
||||||
|
sha256: "1e445881f28f22d6140f181e07737b22f1e099a5e1ff94b0af2f9e4a463f4855"
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "3.0.6"
|
||||||
cupertino_icons:
|
cupertino_icons:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
@@ -104,6 +144,14 @@ packages:
|
|||||||
description: flutter
|
description: flutter
|
||||||
source: sdk
|
source: sdk
|
||||||
version: "0.0.0"
|
version: "0.0.0"
|
||||||
|
functions_client:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: functions_client
|
||||||
|
sha256: "61597ed93be197b1be6387855e4b760e6aac2355fcfc4df6d20d2b4579982158"
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "2.4.0"
|
||||||
google_nav_bar:
|
google_nav_bar:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
@@ -112,6 +160,22 @@ packages:
|
|||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "5.0.7"
|
version: "5.0.7"
|
||||||
|
gotrue:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: gotrue
|
||||||
|
sha256: b9541c62edc0ee1fddf2c95364251b8076a93bcdbc3ad27f14a633d187e89ccc
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "2.11.0"
|
||||||
|
gtk:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: gtk
|
||||||
|
sha256: e8ce9ca4b1df106e4d72dad201d345ea1a036cc12c360f1a7d5a758f78ffa42c
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "2.1.0"
|
||||||
http:
|
http:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
@@ -128,6 +192,14 @@ packages:
|
|||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "4.0.2"
|
version: "4.0.2"
|
||||||
|
jwt_decode:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: jwt_decode
|
||||||
|
sha256: d2e9f68c052b2225130977429d30f187aa1981d789c76ad104a32243cfdebfbb
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "0.3.1"
|
||||||
leak_tracker:
|
leak_tracker:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@@ -160,6 +232,14 @@ packages:
|
|||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "4.0.0"
|
version: "4.0.0"
|
||||||
|
logging:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: logging
|
||||||
|
sha256: c8245ada5f1717ed44271ed1c26b8ce85ca3228fd2ffdb75468ab01979309d61
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "1.3.0"
|
||||||
matcher:
|
matcher:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@@ -184,6 +264,14 @@ packages:
|
|||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.15.0"
|
version: "1.15.0"
|
||||||
|
mime:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: mime
|
||||||
|
sha256: "801fd0b26f14a4a58ccb09d5892c3fbdeff209594300a542492cf13fba9d247a"
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "1.0.6"
|
||||||
nested:
|
nested:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@@ -200,6 +288,30 @@ packages:
|
|||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.9.0"
|
version: "1.9.0"
|
||||||
|
path_provider:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: path_provider
|
||||||
|
sha256: "50c5dd5b6e1aaf6fb3a78b33f6aa3afca52bf903a8a5298f53101fdaee55bbcd"
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "2.1.5"
|
||||||
|
path_provider_android:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: path_provider_android
|
||||||
|
sha256: "8c4967f8b7cb46dc914e178daa29813d83ae502e0529d7b0478330616a691ef7"
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "2.2.14"
|
||||||
|
path_provider_foundation:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: path_provider_foundation
|
||||||
|
sha256: f234384a3fdd67f989b4d54a5d73ca2a6c422fa55ae694381ae0f4375cd1ea16
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "2.4.0"
|
||||||
path_provider_linux:
|
path_provider_linux:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@@ -248,6 +360,14 @@ packages:
|
|||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.1.8"
|
version: "2.1.8"
|
||||||
|
postgrest:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: postgrest
|
||||||
|
sha256: "9f759ac497a24839addbed69d9569ea6d51d2e4834c672b8c2a73752fb6945c8"
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "2.4.0"
|
||||||
provider:
|
provider:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
@@ -256,6 +376,30 @@ packages:
|
|||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "6.1.2"
|
version: "6.1.2"
|
||||||
|
realtime_client:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: realtime_client
|
||||||
|
sha256: "173c3dc40922bb0ae19a558ae1a0acf7b28ec8a458b54390c499bbe5ff15f049"
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "2.4.0"
|
||||||
|
retry:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: retry
|
||||||
|
sha256: "822e118d5b3aafed083109c72d5f484c6dc66707885e07c0fbcb8b986bba7efc"
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "3.1.2"
|
||||||
|
rxdart:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: rxdart
|
||||||
|
sha256: "5c3004a4a8dbb94bd4bf5412a4def4acdaa12e12f269737a5751369e12d1a962"
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "0.28.0"
|
||||||
shared_preferences:
|
shared_preferences:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
@@ -333,6 +477,14 @@ packages:
|
|||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.11.1"
|
version: "1.11.1"
|
||||||
|
storage_client:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: storage_client
|
||||||
|
sha256: "833666edcd804aaf434f3b13165fd553a8c6371a488618a58be8914856795c04"
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "2.2.0"
|
||||||
stream_channel:
|
stream_channel:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@@ -349,6 +501,22 @@ packages:
|
|||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.2.0"
|
version: "1.2.0"
|
||||||
|
supabase:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: supabase
|
||||||
|
sha256: ecdfb226c483f05fd10425304de744144dfdda2f33d14151d2604cebe8c6d077
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "2.6.0"
|
||||||
|
supabase_flutter:
|
||||||
|
dependency: "direct main"
|
||||||
|
description:
|
||||||
|
name: supabase_flutter
|
||||||
|
sha256: bdbc6770e0e91db0b9d931f41ea4ee311d8819f539743f47e8cc795b492be75a
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "2.8.1"
|
||||||
term_glyph:
|
term_glyph:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@@ -373,6 +541,70 @@ packages:
|
|||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.4.0"
|
version: "1.4.0"
|
||||||
|
url_launcher:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: url_launcher
|
||||||
|
sha256: "9d06212b1362abc2f0f0d78e6f09f726608c74e3b9462e8368bb03314aa8d603"
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "6.3.1"
|
||||||
|
url_launcher_android:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: url_launcher_android
|
||||||
|
sha256: "6fc2f56536ee873eeb867ad176ae15f304ccccc357848b351f6f0d8d4a40d193"
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "6.3.14"
|
||||||
|
url_launcher_ios:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: url_launcher_ios
|
||||||
|
sha256: e43b677296fadce447e987a2f519dcf5f6d1e527dc35d01ffab4fff5b8a7063e
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "6.3.1"
|
||||||
|
url_launcher_linux:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: url_launcher_linux
|
||||||
|
sha256: "4e9ba368772369e3e08f231d2301b4ef72b9ff87c31192ef471b380ef29a4935"
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "3.2.1"
|
||||||
|
url_launcher_macos:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: url_launcher_macos
|
||||||
|
sha256: "769549c999acdb42b8bcfa7c43d72bf79a382ca7441ab18a808e101149daf672"
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "3.2.1"
|
||||||
|
url_launcher_platform_interface:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: url_launcher_platform_interface
|
||||||
|
sha256: "552f8a1e663569be95a8190206a38187b531910283c3e982193e4f2733f01029"
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "2.3.2"
|
||||||
|
url_launcher_web:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: url_launcher_web
|
||||||
|
sha256: "772638d3b34c779ede05ba3d38af34657a05ac55b06279ea6edd409e323dca8e"
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "2.3.3"
|
||||||
|
url_launcher_windows:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: url_launcher_windows
|
||||||
|
sha256: "44cf3aabcedde30f2dba119a9dea3b0f2672fbe6fa96e85536251d678216b3c4"
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "3.1.3"
|
||||||
vector_math:
|
vector_math:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@@ -397,6 +629,22 @@ packages:
|
|||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.1.0"
|
version: "1.1.0"
|
||||||
|
web_socket:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: web_socket
|
||||||
|
sha256: "3c12d96c0c9a4eec095246debcea7b86c0324f22df69893d538fcc6f1b8cce83"
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "0.1.6"
|
||||||
|
web_socket_channel:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: web_socket_channel
|
||||||
|
sha256: "9f187088ed104edd8662ca07af4b124465893caf063ba29758f97af57e61da8f"
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "3.0.1"
|
||||||
xdg_directories:
|
xdg_directories:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@@ -413,6 +661,14 @@ packages:
|
|||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "6.5.0"
|
version: "6.5.0"
|
||||||
|
yet_another_json_isolate:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: yet_another_json_isolate
|
||||||
|
sha256: "56155e9e0002cc51ea7112857bbcdc714d4c35e176d43e4d3ee233009ff410c9"
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "2.0.3"
|
||||||
sdks:
|
sdks:
|
||||||
dart: ">=3.5.2 <4.0.0"
|
dart: ">=3.5.2 <4.0.0"
|
||||||
flutter: ">=3.24.0"
|
flutter: ">=3.24.0"
|
||||||
|
|||||||
@@ -36,6 +36,8 @@ dependencies:
|
|||||||
http: ^1.2.2
|
http: ^1.2.2
|
||||||
shared_preferences: ^2.3.3
|
shared_preferences: ^2.3.3
|
||||||
xml: ^6.5.0
|
xml: ^6.5.0
|
||||||
|
supabase_flutter: ^2.8.1
|
||||||
|
|
||||||
|
|
||||||
# The following adds the Cupertino Icons font to your application.
|
# The following adds the Cupertino Icons font to your application.
|
||||||
# Use with the CupertinoIcons class for iOS style icons.
|
# Use with the CupertinoIcons class for iOS style icons.
|
||||||
|
|||||||
Reference in New Issue
Block a user