fixed error where complete entries are shown as incomplete and made ui enhancements to overview

This commit is contained in:
Nico
2025-06-05 18:44:18 +02:00
parent cd2a80113e
commit 9431232e91
8 changed files with 70 additions and 84 deletions

View File

@@ -584,7 +584,7 @@ class _ExcursionMainState extends State<ExcursionMain> {
bool pop = await AddEntriesDialogHelper.showSaveOptionsDialog(
context,
getFieldsText(),
widget.isTemplate,
isTemplate,
DatabasesEnum.excursion,
);
if (pop && context.mounted) Navigator.of(context).pop();

View File

@@ -215,7 +215,7 @@ class _TrackingState extends State<Tracking> {
currentPosition!.longitude,
),
radius: currentPosition!.accuracy,
color: Colors.blue.withOpacity(0.2),
color: Colors.blue.withAlpha(2),
borderColor: Colors.blue,
borderStrokeWidth: 2,
),

View File

@@ -258,7 +258,7 @@ class AddEntriesDialogHelper {
);
}
} catch (e) {
debugPrint(e.toString());
print(e.toString());
}
},
child: Text(AppLocalizations.of(context)!.justsave),

View File

@@ -5,7 +5,7 @@ import 'package:fforte/screens/sharedMethods/delete_templates.dart';
import 'package:flutter/material.dart';
class ViewEntriesDialogHelper {
static void deleteAllMainEntries(
static Future<void> deleteAllMainEntries(
BuildContext context,
DatabasesEnum dbType,
) async {
@@ -24,10 +24,10 @@ class ViewEntriesDialogHelper {
),
actions: <Widget>[
TextButton(
onPressed: () {
DeleteMainEntries.deleteAll(dbType);
onPressed: () async {
await DeleteMainEntries.deleteAll(dbType);
Navigator.of(context).pop();
if (context.mounted) Navigator.of(context).pop();
},
child: Text(AppLocalizations.of(context)!.deleteEverything),
),
@@ -43,7 +43,7 @@ class ViewEntriesDialogHelper {
);
}
static void deleteAllTemplates(
static Future<void> deleteAllTemplates(
BuildContext context,
DatabasesEnum dbType,
) async {
@@ -62,9 +62,9 @@ class ViewEntriesDialogHelper {
),
actions: <Widget>[
TextButton(
onPressed: () {
DeleteTemplates.deleteAll(dbType);
Navigator.of(context).pop();
onPressed: () async {
await DeleteTemplates.deleteAll(dbType);
if (context.mounted) Navigator.of(context).pop();
},
child: Text(AppLocalizations.of(context)!.deleteEverything),
),

View File

@@ -4,7 +4,7 @@ import 'package:fforte/methods/excursion_db_helper.dart';
import 'package:fforte/methods/place_db_helper.dart';
class DeleteMainEntries {
static void deleteAll(DatabasesEnum dbType) {
static Future<void> deleteAll(DatabasesEnum dbType) async {
IDb? db;
if (dbType == DatabasesEnum.place) {
@@ -12,10 +12,10 @@ class DeleteMainEntries {
} else if (dbType == DatabasesEnum.excursion) {
db = ExcursionDBHelper();
}
db!.deleteAllMainEntries();
await db!.deleteAllMainEntries();
}
static void deleteSingle(DatabasesEnum dbType, int id) {
static Future<void> deleteSingle(DatabasesEnum dbType, int id) async {
IDb? db;
if (dbType == DatabasesEnum.place) {
@@ -24,6 +24,6 @@ class DeleteMainEntries {
db = ExcursionDBHelper();
}
db!.deleteMainEntryById(id.toString());
await db!.deleteMainEntryById(id.toString());
}
}

View File

@@ -5,7 +5,7 @@ import 'package:fforte/methods/place_db_helper.dart';
class DeleteTemplates {
static void deleteSingle(DatabasesEnum dbType, String id) {
static Future<void> deleteSingle(DatabasesEnum dbType, String id) async {
IDb? db;
if (dbType == DatabasesEnum.place) {
@@ -14,10 +14,10 @@ class DeleteTemplates {
db = ExcursionDBHelper();
}
db!.deleteTemplateById(id);
await db!.deleteTemplateById(id);
}
static void deleteAll(DatabasesEnum dbType) {
static Future<void> deleteAll(DatabasesEnum dbType) async {
IDb? db;
if (dbType == DatabasesEnum.place) {
@@ -26,6 +26,6 @@ class DeleteTemplates {
db = ExcursionDBHelper();
}
db!.deleteAllMainEntries();
await db!.deleteAllMainEntries();
}
}

View File

@@ -1,4 +1,3 @@
// TODO remove sent
import 'dart:convert';
import 'package:dio/dio.dart';

View File

@@ -11,6 +11,7 @@ import 'package:flutter/material.dart';
import 'package:fforte/l10n/app_localizations.dart';
import 'package:flutter_map/flutter_map.dart';
import 'package:flutter_slidable/flutter_slidable.dart';
import 'package:intl/intl.dart';
import 'package:latlong2/latlong.dart';
// * Site that shows all entries in the databases
@@ -28,11 +29,13 @@ class _ViewEntriesState extends State<ViewEntries> {
List<Map<String, dynamic>> templates = [];
List<Marker> marker = [];
final DateFormat dateFormat = DateFormat('dd.MM.yyyy');
// loads the entries
@override
void initState() {
super.initState();
reloadAllEntries();
super.initState();
}
Future<void> reloadAllEntries() async {
@@ -89,7 +92,9 @@ class _ViewEntriesState extends State<ViewEntries> {
Tab(text: AppLocalizations.of(context)!.map),
],
),
title: widget.dbType == DatabasesEnum.place ? Text(AppLocalizations.of(context)!.viewplacesappbar) : Text(AppLocalizations.of(context)!.viewExcursionen) ,
title: widget.dbType == DatabasesEnum.place
? Text(AppLocalizations.of(context)!.viewplacesappbar)
: Text(AppLocalizations.of(context)!.viewExcursionen),
),
body: TabBarView(
children: [
@@ -97,11 +102,14 @@ class _ViewEntriesState extends State<ViewEntries> {
child: Scaffold(
floatingActionButton: FloatingActionButton(
child: const Icon(Icons.delete),
onPressed: () {
ViewEntriesDialogHelper.deleteAllMainEntries(
onPressed: () async {
await ViewEntriesDialogHelper.deleteAllMainEntries(
context,
widget.dbType,
);
setState(() {
reloadAllEntries();
});
},
),
body: Column(
@@ -170,15 +178,15 @@ class _ViewEntriesState extends State<ViewEntries> {
],
),
child: ListTile(
title: Text('Standort ${index + 1}'),
title: Text(
'${widget.dbType == DatabasesEnum.place ? AppLocalizations.of(context)!.justplace : AppLocalizations.of(context)!.excursion} ${mainEntries[index]["ID"]}'),
subtitle: Text(
'ID: ${mainEntries[index]['ID']} DATUM: ${widget.dbType == DatabasesEnum.place ? mainEntries[index]['Datum'] : mainEntries[index]["LogDat"]}',
dateFormat.format(DateTime.parse(mainEntries[index]["Datum"])),
),
trailing: Checkbox(
value:
mainEntries[index]['Sent'] == 0
? false
: true,
value: mainEntries[index]['Sent'] == 0
? false
: true,
onChanged: null,
),
onTap: () async {
@@ -186,14 +194,12 @@ class _ViewEntriesState extends State<ViewEntries> {
Navigator.push(
context,
MaterialPageRoute(
builder:
(context) => AddCamMain(
isSent:
mainEntries[index]['Sent'] == 1
? true
: false,
existingData: mainEntries[index],
),
builder: (context) => AddCamMain(
isSent: mainEntries[index]['Sent'] == 1
? true
: false,
existingData: mainEntries[index],
),
),
);
} else if (widget.dbType ==
@@ -201,14 +207,12 @@ class _ViewEntriesState extends State<ViewEntries> {
Navigator.push(
context,
MaterialPageRoute(
builder:
(context) => ExcursionMain(
isSent:
mainEntries[index]['Sent'] == 1
? true
: false,
existingData: mainEntries[index],
),
builder: (context) => ExcursionMain(
isSent: mainEntries[index]['Sent'] == 1
? true
: false,
existingData: mainEntries[index],
),
),
);
}
@@ -226,11 +230,14 @@ class _ViewEntriesState extends State<ViewEntries> {
child: Scaffold(
floatingActionButton: FloatingActionButton(
child: const Icon(Icons.delete),
onPressed: () {
ViewEntriesDialogHelper.deleteAllTemplates(
onPressed: () async {
await ViewEntriesDialogHelper.deleteAllTemplates(
context,
widget.dbType,
);
setState(() {
reloadAllEntries();
});
},
),
body: Column(
@@ -263,16 +270,14 @@ class _ViewEntriesState extends State<ViewEntries> {
),
child: ListTile(
onTap: () {
if (widget.dbType == DatabasesEnum.place) {
Navigator.push(
context,
MaterialPageRoute(
builder:
(context) => AddCamMain(
isTemplate: true,
existingData: templates[index],
),
builder: (context) => AddCamMain(
isTemplate: true,
existingData: templates[index],
),
),
);
} else if (widget.dbType ==
@@ -280,34 +285,18 @@ class _ViewEntriesState extends State<ViewEntries> {
Navigator.push(
context,
MaterialPageRoute(
builder:
(context) => ExcursionMain(
isTemplate: true,
existingData: templates[index],
),
builder: (context) => ExcursionMain(
isTemplate: true,
existingData: templates[index],
),
),
);
}
// Navigator.push(
// context,
// MaterialPageRoute(
// builder:
// (context) => AddCamMain(
// isTemplate: true,
// existingData: templates[index],
// ),
// ),
// );
},
title: Text('Place ${index + 1}'),
title: Text(
'${widget.dbType == DatabasesEnum.place ? AppLocalizations.of(context)!.justplace : AppLocalizations.of(context)!.excursion} ${templates[index]["ID"]}'),
subtitle: Text(
'ID: ${templates[index]['CID']} DATUM: ${templates[index]['Datum']} RUDEL: ${templates[index]['Rudel']} STATUS: ${templates[index]['Status']}',
dateFormat.format(DateTime.parse(templates[index]["Datum"])),
),
),
);
@@ -322,13 +311,11 @@ class _ViewEntriesState extends State<ViewEntries> {
Tab(
child: FlutterMap(
options: MapOptions(
initialCenter:
marker.isEmpty
? const LatLng(50, 10)
: marker.first.point,
initialCenter: marker.isEmpty
? const LatLng(50, 10)
: marker.first.point,
interactionOptions: const InteractionOptions(
flags:
InteractiveFlag.pinchZoom |
flags: InteractiveFlag.pinchZoom |
InteractiveFlag.drag |
InteractiveFlag.pinchMove,
),
@@ -337,7 +324,7 @@ class _ViewEntriesState extends State<ViewEntries> {
TileLayer(
urlTemplate:
'https://tile.openstreetmap.org/{z}/{x}/{y}.png',
userAgentPackageName: 'com.example.app',
userAgentPackageName: 'de.lupus.apps',
),
MarkerLayer(markers: marker),
],