fixed a lot of things after i broke everything. Just the card is not implemented again yet

time
This commit is contained in:
Nico
2025-05-12 23:09:28 +02:00
parent 97691f3453
commit 74b4648e73
18 changed files with 599 additions and 479 deletions

View File

@@ -9,81 +9,111 @@ import 'package:fforte/screens/excursion/widgets/spur_gefunden.dart';
import 'package:fforte/screens/excursion/widgets/strecke_u_spurbedingungen.dart';
import 'package:fforte/screens/helper/add_entries_dialog_helper.dart';
import 'package:fforte/screens/sharedMethods/check_required.dart';
import 'package:fforte/screens/sharedMethods/save_template.dart';
import 'package:fforte/screens/sharedWidgets/datum.dart';
import 'package:fforte/screens/sharedWidgets/var_text_field.dart';
import 'package:fforte/l10n/app_localizations.dart';
import 'package:flutter/material.dart';
class ExcursionMain extends StatefulWidget {
const ExcursionMain({super.key});
final bool isTemplate;
final bool isSent;
final Map<String, dynamic>? existingData;
const ExcursionMain({
super.key,
this.isTemplate = false,
this.isSent = false,
this.existingData,
});
@override
State<ExcursionMain> createState() => _ExcursionMainState();
}
class _ExcursionMainState extends State<ExcursionMain> {
// all TextEditingController because its easier
int currentStep = 0;
// all TextEditingController because its easier
Map<String, Map<String, dynamic>> rmap = {
// Step 1
"LogDat": {"controller": TextEditingController(), "required": bool},
"Rudel": {"controller": TextEditingController(), "required": bool},
"Teilnehm": {"controller": TextEditingController(), "required": bool},
"Jahr": {"controller": TextEditingController(), "required": bool},
"Dauer": {"controller": TextEditingController(), "required": bool},
"MHund": {"controller": TextEditingController(), "required": bool},
"MLeine": {"controller": TextEditingController(), "required": bool},
"BLand": {"controller": TextEditingController(), "required": bool},
"Lkr": {"controller": TextEditingController(), "required": bool},
"BeiOrt": {"controller": TextEditingController(), "required": bool},
"BimaNr": {"controller": TextEditingController(), "required": bool},
"BimaName": {"controller": TextEditingController(), "required": bool},
"BimaNutzer": {"controller": TextEditingController(), "required": bool},
"BimaAGV": {"controller": TextEditingController(), "required": bool},
"LogDat": {"controller": TextEditingController(), "required": false},
"Rudel": {"controller": TextEditingController(), "required": false},
"Teilnehmer": {"controller": TextEditingController(), "required": false},
"Jahr": {"controller": TextEditingController(), "required": false},
"Dauer": {"controller": TextEditingController(), "required": false},
"MHund": {"controller": TextEditingController(), "required": false},
"MLeine": {"controller": TextEditingController(), "required": false},
"BLand": {"controller": TextEditingController(), "required": false},
"Lkr": {"controller": TextEditingController(), "required": false},
"BeiOrt": {"controller": TextEditingController(), "required": false},
"BimaNr": {"controller": TextEditingController(), "required": false},
"BimaName": {"controller": TextEditingController(), "required": false},
"BimaNutzer": {"controller": TextEditingController(), "required": false},
"BimaAGV": {"controller": TextEditingController(), "required": false},
// Step 2
"Wetter": {"controller": TextEditingController(), "required": bool},
"Temperat": {"controller": TextEditingController(), "required": bool},
"RegenVor": {"controller": TextEditingController(), "required": bool},
"KmAuto": {"controller": TextEditingController(), "required": bool},
"KmFuss": {"controller": TextEditingController(), "required": bool},
"KmRad": {"controller": TextEditingController(), "required": bool},
"KmTotal": {"controller": TextEditingController(), "required": bool},
"KmAuProz": {"controller": TextEditingController(), "required": bool},
"KmFuProz": {"controller": TextEditingController(), "required": bool},
"KmRaProz": {"controller": TextEditingController(), "required": bool},
"Wetter": {"controller": TextEditingController(), "required": false},
"Temperat": {"controller": TextEditingController(), "required": false},
"RegenVor": {"controller": TextEditingController(), "required": false},
"KmAuto": {"controller": TextEditingController(), "required": false},
"KmFuss": {"controller": TextEditingController(), "required": false},
"KmRad": {"controller": TextEditingController(), "required": false},
"KmTotal": {"controller": TextEditingController(), "required": false},
"KmAuProz": {"controller": TextEditingController(), "required": false},
"KmFuProz": {"controller": TextEditingController(), "required": false},
"KmRaProz": {"controller": TextEditingController(), "required": false},
// Spur maybe own step?
"SpGut": {"controller": TextEditingController(), "required": bool},
"SpMittel": {"controller": TextEditingController(), "required": bool},
"SpSchlecht": {"controller": TextEditingController(), "required": bool},
"SpurFund": {"controller": TextEditingController(), "required": bool},
"SpurLang": {"controller": TextEditingController(), "required": bool},
"SpurTiere": {"controller": TextEditingController(), "required": bool},
"SpSicher": {"controller": TextEditingController(), "required": bool},
"WelpenSp": {"controller": TextEditingController(), "required": bool},
"WelpenAnz": {"controller": TextEditingController(), "required": bool},
"WpSicher": {"controller": TextEditingController(), "required": bool},
"SpGut": {"controller": TextEditingController(), "required": false},
"SpMittel": {"controller": TextEditingController(), "required": false},
"SpSchlecht": {"controller": TextEditingController(), "required": false},
"SpurFund": {"controller": TextEditingController(), "required": false},
"SpurLang": {"controller": TextEditingController(), "required": false},
"SpurTiere": {"controller": TextEditingController(), "required": false},
"SpSicher": {"controller": TextEditingController(), "required": false},
"WelpenSp": {"controller": TextEditingController(), "required": false},
"WelpenAnz": {"controller": TextEditingController(), "required": false},
"WpSicher": {"controller": TextEditingController(), "required": false},
"LosungGes": {"controller": TextEditingController(), "required": bool},
"LosungAnz": {"controller": TextEditingController(), "required": bool},
"LosungGen": {"controller": TextEditingController(), "required": bool},
"UrinAnz": {"controller": TextEditingController(), "required": bool},
"UrinGen": {"controller": TextEditingController(), "required": bool},
"OestrAnz": {"controller": TextEditingController(), "required": bool},
"OestrGen": {"controller": TextEditingController(), "required": bool},
"HaarAnz": {"controller": TextEditingController(), "required": bool},
"HaarGen": {"controller": TextEditingController(), "required": bool},
"LosungKm": {"controller": TextEditingController(), "required": bool},
"GenetiKm": {"controller": TextEditingController(), "required": bool},
"Hinweise": {"controller": TextEditingController(), "required": bool},
"LosungGes": {"controller": TextEditingController(), "required": false},
"LosungAnz": {"controller": TextEditingController(), "required": false},
"LosungGen": {"controller": TextEditingController(), "required": false},
"UrinAnz": {"controller": TextEditingController(), "required": false},
"UrinGen": {"controller": TextEditingController(), "required": false},
"OestrAnz": {"controller": TextEditingController(), "required": false},
"OestrGen": {"controller": TextEditingController(), "required": false},
"HaarAnz": {"controller": TextEditingController(), "required": false},
"HaarGen": {"controller": TextEditingController(), "required": false},
"LosungKm": {"controller": TextEditingController(), "required": false},
"GenetiKm": {"controller": TextEditingController(), "required": false},
"Hinweise": {"controller": TextEditingController(), "required": false},
// Step 3
"Bemerk": {"controller": TextEditingController(), "required": bool},
"IntKomm": {"controller": TextEditingController(), "required": bool},
"FallNum": {"controller": TextEditingController(), "required": bool},
"Bemerk": {"controller": TextEditingController(), "required": false},
"IntKomm": {"controller": TextEditingController(), "required": false},
"FallNum": {"controller": TextEditingController(), "required": false},
};
@override
void initState() {
if (widget.existingData?.isNotEmpty ?? false) {
for (var key in widget.existingData!.keys) {
rmap[key]!["controller"]!.text =
widget.existingData?[key].toString() ?? "";
}
}
super.initState();
}
@override
void dispose() {
for (String key in rmap.keys) {
rmap[key]!["controller"].dispose();
}
super.dispose();
}
Map<String, String> getFieldsText() {
Map<String, String> puff = {};
@@ -94,7 +124,6 @@ class _ExcursionMainState extends State<ExcursionMain> {
return puff;
}
int currentStep = 0;
@override
Widget build(BuildContext context) {
@@ -123,9 +152,9 @@ class _ExcursionMainState extends State<ExcursionMain> {
const SizedBox(height: 10),
// ---------- Participants
VarTextField(
textController: rmap["Teilnehm"]!["controller"]!,
textController: rmap["Teilnehmer"]!["controller"]!,
localization: AppLocalizations.of(context)!.teilnehmer,
dbName: "Teilnehm",
dbName: "Teilnehmer",
required: false,
dbDesignation: DatabasesEnum.excursion,
),
@@ -344,23 +373,40 @@ class _ExcursionMainState extends State<ExcursionMain> {
final isLastStep = currentStep == getSteps().length - 1;
if (!isLastStep) {
saveTemplate(
getFieldsText(),
DatabasesEnum.excursion,
);
setState(() {
currentStep += 1;
});
} else {
if (widget.isSent) {
Navigator.pushNamedAndRemoveUntil(
context,
'/home',
(route) => false,
);
return;
}
bool empty = CheckRequired.checkRequired(rmap);
if (empty) {
await AddEntriesDialogHelper.showTemplateDialog(
// TODO for debugging always true
empty = false;
if (empty == true) {
AddEntriesDialogHelper.showTemplateDialog(
context,
getFieldsText(),
false,
);
} else {
return;
} else if (empty == false) {
await AddEntriesDialogHelper.showSaveOptionsDialog(
context,
getFieldsText(),
false,
DatabasesEnum.excursion
widget.isTemplate,
DatabasesEnum.excursion,
);
}
}