Bearbeiten und Löschen von Matches #171

Merged
sneeex merged 64 commits from feature/120-bearbeiten-und-loeschen-von-matches into development 2026-03-08 08:28:10 +00:00
Owner

Zugehörige Issue(s)

Closes #120
Closes #190

Beschreibung

Es wurde eine neue View implementiert, um die Match-Details einzusehen, Ergebnisse einzutragen, die Gruppe zu bearbeiten und zu löschen. Das Bearbeiten Navigiert dann zu einer modifizierten CreateMatchView

Änderungen

  • MatchDetailView implementiert, welche Details zu einem Match anzeigt, und Buttons, zum löschen und bearbeiten des Matches sowie zum Ergebnisse eintragen enthält
  • Der Button zum Ergebnisse eintragen leitet weiter zum MatchResultView. Hier gesetzte Gewinner werden in der MatchDetailView aktualisiert.
  • Der Button zum Löschen, löscht das Match und navigiert zurück zur MatchView, in welcher die Liste der Matches aktualisiert wird.
  • Der Button zum bearbeiten des Matches navigiert zu einer modifizierten CreateMatchView, in welcher die Details des Matches, wie Name, Gruppe und Spieler, eingetragen sind
  • Theme-Anpassungen wegen Fehler bei Seed-Color
  • An diversen Stellen Logik zum Sammeln der Spieler aus den group.members- und players-Attribute vereinfacht
  • common.dart eingeführt, für Funktionen, die von unterschiedlichen Klassen genutzt werden

Die PlayerSelection wurde an die neue Datenbank angepasst

  • Wenn eine Gruppe ausgewählt wird, werden alle Member dieser Gruppe selected
  • Einzelne Member der Gruppe können wieder entfernt werden
  • Wenn der letzte Member der Gruppe entfernt wird, wird die Gruppe deselected

Fehler beim Setzen des Winners behoben

  • Problem der Datenbank behoben, bei welchem Winner nicht richtig gespeichert wurden
  • Tests ergänzt, welche die Funktionalität testen

Zusätzliche Anmerkungen

Dieser PR sollte mit dem PR #148 abgeglichen werden, um doppelte Arbeit zu vermeiden.
Es wurde hier auch der Issue #190 mit gelöst.

### Zugehörige Issue(s) Closes #120 Closes #190 ### Beschreibung Es wurde eine neue View implementiert, um die Match-Details einzusehen, Ergebnisse einzutragen, die Gruppe zu bearbeiten und zu löschen. Das Bearbeiten Navigiert dann zu einer modifizierten `CreateMatchView` ### Änderungen - `MatchDetailView` implementiert, welche Details zu einem Match anzeigt, und Buttons, zum löschen und bearbeiten des Matches sowie zum Ergebnisse eintragen enthält - Der Button zum Ergebnisse eintragen leitet weiter zum `MatchResultView`. Hier gesetzte Gewinner werden in der `MatchDetailView` aktualisiert. - Der Button zum Löschen, löscht das Match und navigiert zurück zur `MatchView`, in welcher die Liste der Matches aktualisiert wird. - Der Button zum bearbeiten des Matches navigiert zu einer modifizierten `CreateMatchView`, in welcher die Details des Matches, wie Name, Gruppe und Spieler, eingetragen sind - Theme-Anpassungen wegen Fehler bei Seed-Color - An diversen Stellen Logik zum Sammeln der Spieler aus den `group.members`- und `players`-Attribute vereinfacht - `common.dart` eingeführt, für Funktionen, die von unterschiedlichen Klassen genutzt werden #### Die `PlayerSelection` wurde an die neue Datenbank angepasst - Wenn eine Gruppe ausgewählt wird, werden alle Member dieser Gruppe selected - Einzelne Member der Gruppe können wieder entfernt werden - Wenn der letzte Member der Gruppe entfernt wird, wird die Gruppe deselected #### Fehler beim Setzen des Winners behoben - Problem der Datenbank behoben, bei welchem Winner nicht richtig gespeichert wurden - Tests ergänzt, welche die Funktionalität testen ### Zusätzliche Anmerkungen Dieser PR sollte mit dem PR #148 abgeglichen werden, um doppelte Arbeit zu vermeiden. Es wurde hier auch der Issue #190 mit gelöst.
flixcoo added this to the Alpha milestone 2026-01-16 20:57:03 +00:00
flixcoo self-assigned this 2026-01-16 20:57:03 +00:00
flixcoo added 8 commits 2026-01-18 00:02:39 +00:00
flixcoo added the
Workflow
On Hold
3
label 2026-01-18 00:08:49 +00:00
flixcoo added 20 commits 2026-01-18 12:00:04 +00:00
implement group edit view
Some checks failed
Pull Request Pipeline / test (pull_request) Successful in 2m1s
Pull Request Pipeline / lint (pull_request) Failing after 2m3s
45a419cae7
Merge branch 'development' into feature/118-bearbeiten-und-löschen-von-gruppen
Some checks failed
Pull Request Pipeline / test (pull_request) Successful in 2m1s
Pull Request Pipeline / lint (pull_request) Failing after 2m3s
525acec1d3
rename CreateGroupView to GroupDetailView for clarity and consistency
All checks were successful
Pull Request Pipeline / test (pull_request) Successful in 2m3s
Pull Request Pipeline / lint (pull_request) Successful in 2m4s
b6dd0541ae
remove questionmark
All checks were successful
Pull Request Pipeline / test (pull_request) Successful in 2m2s
Pull Request Pipeline / lint (pull_request) Successful in 2m5s
ee84c60ba6
Merge remote-tracking branch 'origin/development' into feature/118-bearbeiten-und-löschen-von-gruppen
All checks were successful
Pull Request Pipeline / test (pull_request) Successful in 2m33s
Pull Request Pipeline / lint (pull_request) Successful in 2m44s
38663c6b67
# Conflicts:
#	lib/l10n/arb/app_de.arb
#	lib/l10n/arb/app_en.arb
#	lib/l10n/generated/app_localizations_de.dart
#	lib/presentation/views/main_menu/settings_view.dart
fix merge mistake
All checks were successful
Pull Request Pipeline / lint (pull_request) Successful in 3m9s
Pull Request Pipeline / test (pull_request) Successful in 2m30s
caf60d046b
# Conflicts:
#	lib/presentation/views/main_menu/settings_view.dart
merge dev into #118
All checks were successful
Pull Request Pipeline / test (pull_request) Successful in 1m59s
Pull Request Pipeline / lint (pull_request) Successful in 2m7s
ed642e3d4f
fix snackbar showing also showing on other screens (#155)
All checks were successful
Pull Request Pipeline / test (pull_request) Successful in 2m10s
Pull Request Pipeline / lint (pull_request) Successful in 2m12s
1b297d15b0
add context to mounted check
All checks were successful
Pull Request Pipeline / test (pull_request) Successful in 2m3s
Pull Request Pipeline / lint (pull_request) Successful in 2m9s
016c1ceb6e
# Conflicts:
#	lib/presentation/views/main_menu/group_view/create_group_view.dart
#	lib/presentation/views/main_menu/settings_view/settings_view.dart
#	lib/presentation/widgets/tiles/group_tile.dart
fix merge conflicts
All checks were successful
Pull Request Pipeline / test (pull_request) Successful in 2m4s
Pull Request Pipeline / lint (pull_request) Successful in 2m9s
919a38afe5
Merge remote-tracking branch 'origin/development' into feature/118-bearbeiten-und-löschen-von-gruppen
All checks were successful
Pull Request Pipeline / test (pull_request) Successful in 2m7s
Pull Request Pipeline / lint (pull_request) Successful in 2m9s
8b7300eac3
# Conflicts:
#	pubspec.yaml
delete group view & update build nr
All checks were successful
Pull Request Pipeline / test (pull_request) Successful in 2m6s
Pull Request Pipeline / lint (pull_request) Successful in 2m14s
f1df067824
# Conflicts:
#	lib/l10n/arb/app_de.arb
#	lib/l10n/arb/app_en.arb
#	lib/l10n/generated/app_localizations.dart
#	lib/l10n/generated/app_localizations_de.dart
#	lib/l10n/generated/app_localizations_en.dart
#	lib/presentation/views/main_menu/group_view/groups_view.dart
#	lib/presentation/views/main_menu/match_view/create_match/create_match_view.dart
#	lib/presentation/widgets/tiles/group_tile.dart
#	pubspec.yaml
merge & made group_detail_view.dart & group_create_view.dart work together when editing
All checks were successful
Pull Request Pipeline / test (pull_request) Successful in 2m5s
Pull Request Pipeline / lint (pull_request) Successful in 2m10s
e4c3bc1c5e
# Conflicts:
#	lib/presentation/views/main_menu/group_view/create_group_view.dart
#	pubspec.yaml
merge fix
All checks were successful
Pull Request Pipeline / test (pull_request) Successful in 2m2s
Pull Request Pipeline / lint (pull_request) Successful in 2m8s
810f635987
Merge remote-tracking branch 'origin/feature/118-bearbeiten-und-löschen-von-gruppen' into feature/120-bearbeiten-und-loeschen-von-matches
All checks were successful
Pull Request Pipeline / test (pull_request) Successful in 2m4s
Pull Request Pipeline / lint (pull_request) Successful in 2m15s
f00aa15518
# Conflicts:
#	lib/l10n/generated/app_localizations.dart
flixcoo added 2 commits 2026-01-18 12:08:40 +00:00
Changed button icon
All checks were successful
Pull Request Pipeline / test (pull_request) Successful in 2m4s
Pull Request Pipeline / lint (pull_request) Successful in 2m10s
9a5929382b
flixcoo added 2 commits 2026-02-23 20:34:35 +00:00
# Conflicts:
#	lib/presentation/views/main_menu/custom_navigation_bar.dart
#	lib/presentation/views/main_menu/group_view/create_group_view.dart
#	lib/presentation/views/main_menu/group_view/group_detail_view.dart
#	lib/presentation/views/main_menu/group_view/group_view.dart
#	lib/presentation/views/main_menu/match_view/create_match/create_match_view.dart
#	lib/presentation/views/main_menu/match_view/match_view.dart
#	pubspec.yaml
Fixed PR problems
All checks were successful
Pull Request Pipeline / test (pull_request) Successful in 37s
Pull Request Pipeline / lint (pull_request) Successful in 44s
527ffd194f
flixcoo added 1 commit 2026-02-23 20:35:30 +00:00
Typo
All checks were successful
Pull Request Pipeline / test (pull_request) Successful in 36s
Pull Request Pipeline / lint (pull_request) Successful in 42s
b84a893706
flixcoo added a new dependency 2026-02-24 16:39:46 +00:00
flixcoo added 2 commits 2026-02-24 17:01:34 +00:00
Implemented Radio Theme
All checks were successful
Pull Request Pipeline / test (pull_request) Successful in 35s
Pull Request Pipeline / lint (pull_request) Successful in 46s
e71943f6e2
flixcoo added 12 commits 2026-03-06 20:54:36 +00:00
flixcoo added 3 commits 2026-03-06 21:21:12 +00:00
Fix: Setting winner
All checks were successful
Pull Request Pipeline / test (pull_request) Successful in 39s
Pull Request Pipeline / lint (pull_request) Successful in 45s
2bd5c30094
flixcoo added
PR
Ready for Review
2
and removed
Workflow
On Hold
3
labels 2026-03-06 21:21:26 +00:00
flixcoo requested review from Owners 2026-03-06 21:21:30 +00:00
flixcoo added a new dependency 2026-03-06 21:28:08 +00:00
flixcoo changed title from WIP: Bearbeiten und Löschen von Matches to Bearbeiten und Löschen von Matches 2026-03-06 21:29:10 +00:00
sneeex added
PR
In Review
1
and removed
PR
Ready for Review
2
labels 2026-03-07 14:04:09 +00:00
sneeex requested changes 2026-03-07 14:33:28 +00:00
Dismissed
sneeex left a comment
Owner
  1. Wenn man einen Player als Winner setzt und ihn dann entfernt, wird er immer noch als winner angezeigt (in dem detailview erstmal), eigentlich ja nicht gut oder? oder wie machen wirs? vorallem ist er, wenn man dann einmal auf winner setzen klickt, weg, auch wenn man keinen neuen auswählt.
  2. Wenn man in einem Game, was nur aus 4 Spielern einer Gruppe besteht, einen Spieler aus den Playern entfernt, die Gruppe aber lässt, werden im GameHistoryView (oder wie auch immer der heißt) alle 4 Spieler angezeigt (was falsch ist), im GameDetailView (oder so ähnlich), aber nur die drei (was richtig ist). Wenn man dann den GameHistoryView reloadet durch wechseln der Page, wirds richtig angezeigt (irgendwas passt da mit dem aktualisieren nicht, hab das auch bei ändern von anderen sachen).
  3. Check mal selber nochmal die Features durch, sonst boykottiere ich die pr

Zu 1:

  • player als winner setzen
  • player aus match entfernen
  • player immer noch als winner gesetzt
  • wenn man jetzt wieder auf winner setzen geht und wieder zurück ohne neu zu setzen:
  • kein winner mehr gesetzt

Zu 2:

  • match aus gruppe (bspw. 4 player) erstellen
  • einen spieler aus match entfernen
  • auf game history view gehen
  • alter spielerstand (4 player) ohne gelöschten spieler wird noch angezeigt
  • im matchdetailview steht neuer spielerstand (3 player) mit gelöschtem spieler
  • wenn man gamehistoryview reloadet steht korrekter spielerstand (3 spieler)
  • das problem tritt auch bei anderen änderungen auf, also irgendwie wird da historyview nicht richtig aktualisiert
1. Wenn man einen Player als Winner setzt und ihn dann entfernt, wird er immer noch als winner angezeigt (in dem detailview erstmal), eigentlich ja nicht gut oder? oder wie machen wirs? vorallem ist er, wenn man dann einmal auf winner setzen klickt, weg, auch wenn man keinen neuen auswählt. 2. Wenn man in einem Game, was nur aus 4 Spielern einer Gruppe besteht, einen Spieler aus den Playern entfernt, die Gruppe aber lässt, werden im GameHistoryView (oder wie auch immer der heißt) alle 4 Spieler angezeigt (was falsch ist), im GameDetailView (oder so ähnlich), aber nur die drei (was richtig ist). Wenn man dann den GameHistoryView reloadet durch wechseln der Page, wirds richtig angezeigt (irgendwas passt da mit dem aktualisieren nicht, hab das auch bei ändern von anderen sachen). 3. Check mal selber nochmal die Features durch, sonst boykottiere ich die pr Zu 1: - player als winner setzen - player aus match entfernen - player immer noch als winner gesetzt - wenn man jetzt wieder auf winner setzen geht und wieder zurück ohne neu zu setzen: - kein winner mehr gesetzt Zu 2: - match aus gruppe (bspw. 4 player) erstellen - einen spieler aus match entfernen - auf game history view gehen - alter spielerstand (4 player) ohne gelöschten spieler wird noch angezeigt - im matchdetailview steht neuer spielerstand (3 player) mit gelöschtem spieler - wenn man gamehistoryview reloadet steht korrekter spielerstand (3 spieler) - das problem tritt auch bei anderen änderungen auf, also irgendwie wird da historyview nicht richtig aktualisiert
Owner
grafik.png wen willst du hier eigentlich schon wieder ficken
<img width="184" alt="grafik.png" src="attachments/5f3e8d8c-e3c3-4599-b191-cb6a837e271d"> wen willst du hier eigentlich schon wieder ficken
5.6 KiB
Author
Owner
grafik.png wen willst du hier eigentlich schon wieder ficken

ja das kommt nur weil hier auch viele änderungen von deiner pr drin sind

> <img width="184" alt="grafik.png" src="attachments/5f3e8d8c-e3c3-4599-b191-cb6a837e271d"> > wen willst du hier eigentlich schon wieder ficken ja das kommt nur weil hier auch viele änderungen von deiner pr drin sind
Owner
  • update mal dein flutter zur neusten version und lös die dependency dinger dann
+ update mal dein flutter zur neusten version und lös die dependency dinger dann
flixcoo added 3 commits 2026-03-07 16:38:40 +00:00
Added properties
Some checks failed
Pull Request Pipeline / test (pull_request) Successful in 39s
Pull Request Pipeline / lint (pull_request) Failing after 44s
4c479676d2
flixcoo added 1 commit 2026-03-07 16:43:52 +00:00
Removed import
All checks were successful
Pull Request Pipeline / test (pull_request) Successful in 38s
Pull Request Pipeline / lint (pull_request) Successful in 44s
90cc9587ca
Author
Owner
  1. Wenn man einen Player als Winner setzt und ihn dann entfernt, wird er immer noch als winner angezeigt (in dem detailview erstmal), eigentlich ja nicht gut oder? oder wie machen wirs? vorallem ist er, wenn man dann einmal auf winner setzen klickt, weg, auch wenn man keinen neuen auswählt.

Hab ich behoben, der Winner wird jetzt einfach zurückgesetzt (Auf null gesetzt), denke das ist erstmal die schlauste Variante

  1. Wenn man in einem Game, was nur aus 4 Spielern einer Gruppe besteht, einen Spieler aus den Playern entfernt, die Gruppe aber lässt, werden im GameHistoryView (oder wie auch immer der heißt) alle 4 Spieler angezeigt (was falsch ist), im GameDetailView (oder so ähnlich), aber nur die drei (was richtig ist). Wenn man dann den GameHistoryView reloadet durch wechseln der Page, wirds richtig angezeigt (irgendwas passt da mit dem aktualisieren nicht, hab das auch bei ändern von anderen sachen).

Hab ich gerade mal versucht, aber kriegs nicht hin. Es macht auch keinen sinn, dass das nicht aktualisiert, weil der spieler ist in der datenbank und das match wird auch richtig gefetched, aber irgendwie wird es nicht angezeigt

> 1. Wenn man einen Player als Winner setzt und ihn dann entfernt, wird er immer noch als winner angezeigt (in dem detailview erstmal), eigentlich ja nicht gut oder? oder wie machen wirs? vorallem ist er, wenn man dann einmal auf winner setzen klickt, weg, auch wenn man keinen neuen auswählt. Hab ich behoben, der Winner wird jetzt einfach zurückgesetzt (Auf `null` gesetzt), denke das ist erstmal die schlauste Variante > 2. Wenn man in einem Game, was nur aus 4 Spielern einer Gruppe besteht, einen Spieler aus den Playern entfernt, die Gruppe aber lässt, werden im GameHistoryView (oder wie auch immer der heißt) alle 4 Spieler angezeigt (was falsch ist), im GameDetailView (oder so ähnlich), aber nur die drei (was richtig ist). Wenn man dann den GameHistoryView reloadet durch wechseln der Page, wirds richtig angezeigt (irgendwas passt da mit dem aktualisieren nicht, hab das auch bei ändern von anderen sachen). Hab ich gerade mal versucht, aber kriegs nicht hin. Es macht auch keinen sinn, dass das nicht aktualisiert, weil der spieler ist in der datenbank und das match wird auch richtig gefetched, aber irgendwie wird es nicht angezeigt
Owner

Hab ich gerade mal versucht, aber kriegs nicht hin. Es macht auch keinen sinn, dass das nicht aktualisiert, weil der spieler ist in der datenbank und das match wird auch richtig gefetched, aber irgendwie wird es nicht angezeigt

Dann schau morgen noch mal oder so, aber sonst macht das ja keinen Sinn das mit nem Fehler zu approven

> Hab ich gerade mal versucht, aber kriegs nicht hin. Es macht auch keinen sinn, dass das nicht aktualisiert, weil der spieler ist in der datenbank und das match wird auch richtig gefetched, aber irgendwie wird es nicht angezeigt Dann schau morgen noch mal oder so, aber sonst macht das ja keinen Sinn das mit nem Fehler zu approven
Author
Owner

Dann schau morgen noch mal oder so, aber sonst macht das ja keinen Sinn das mit nem Fehler zu approven

Jep mach ich

> Dann schau morgen noch mal oder so, aber sonst macht das ja keinen Sinn das mit nem Fehler zu approven Jep mach ich
flixcoo added 2 commits 2026-03-07 20:50:30 +00:00
Fix: Not updated match view after updating matches players
All checks were successful
Pull Request Pipeline / test (pull_request) Successful in 38s
Pull Request Pipeline / lint (pull_request) Successful in 44s
0822039a5f
flixcoo requested review from sneeex 2026-03-07 20:50:37 +00:00
flixcoo added
PR
Ready for Review
2
and removed
PR
In Review
1
labels 2026-03-07 20:50:41 +00:00
sneeex requested changes 2026-03-07 21:06:29 +00:00
Dismissed
sneeex left a comment
Owner
  1. App starten
  2. Zu Game History View navigieren
  3. Match auswählen
  4. auf Edit klicken
  5. Error in Console
E/flutter (31333): [ERROR:flutter/runtime/dart_vm_initializer.cc(40)] Unhandled Exception: setState() called after dispose(): _PlayerSelectionState#c37a5(lifecycle state: defunct, not mounted)
E/flutter (31333): This error happens if you call setState() on a State object for a widget that no longer appears in the widget tree (e.g., whose parent widget no longer includes the widget in its build). This error can occur when code calls setState() from a timer or an animation callback.
E/flutter (31333): The preferred solution is to cancel the timer or stop listening to the animation in the dispose() callback. Another solution is to check the "mounted" property of this object before calling setState() to ensure the object is still in the tree.
E/flutter (31333): This error might indicate a memory leak if setState() is being called because another object is retaining a reference to this State object after it has been removed from the tree. To avoid memory leaks, consider breaking the reference to this object during dispose().
E/flutter (31333): #0      State.setState.<anonymous closure> (package:flutter/src/widgets/framework.dart:1163:9)
E/flutter (31333): #1      State.setState (package:flutter/src/widgets/framework.dart:1198:6)
E/flutter (31333): #2      _PlayerSelectionState.loadPlayerList.<anonymous closure> (package:tallee/presentation/widgets/player_selection.dart:229:9)
E/flutter (31333): #3      Future._propagateToListeners.handleValueCallback (dart:async/future_impl.dart:948:45)
E/flutter (31333): #4      Future._propagateToListeners (dart:async/future_impl.dart:977:13)
E/flutter (31333): #5      Future._completeWithValue (dart:async/future_impl.dart:720:5)
E/flutter (31333): #6      Future.wait.<anonymous closure> (dart:async/future.dart:554:23)
E/flutter (31333): #7      Future._propagateToListeners.handleValueCallback (dart:async/future_impl.dart:948:45)
E/flutter (31333): #8      Future._propagateToListeners (dart:async/future_impl.dart:977:13)
E/flutter (31333): #9      Future._complete (dart:async/future_impl.dart:711:7)
E/flutter (31333): #10     new Future.delayed.<anonymous closure> (dart:async/future.dart:436:16)
E/flutter (31333): #11     Timer._createTimer.<anonymous closure> (dart:async-patch/timer_patch.dart:18:15)
E/flutter (31333): #12     _Timer._runTimers (dart:isolate-patch/timer_impl.dart:423:19)
E/flutter (31333): #13     _Timer._handleMessage (dart:isolate-patch/timer_impl.dart:454:5)
E/flutter (31333): #14     _RawReceivePort._handleMessage (dart:isolate-patch/isolate_patch.dart:193:12)
1. App starten 2. Zu Game History View navigieren 3. Match auswählen 4. auf Edit klicken 5. Error in Console ``` E/flutter (31333): [ERROR:flutter/runtime/dart_vm_initializer.cc(40)] Unhandled Exception: setState() called after dispose(): _PlayerSelectionState#c37a5(lifecycle state: defunct, not mounted) E/flutter (31333): This error happens if you call setState() on a State object for a widget that no longer appears in the widget tree (e.g., whose parent widget no longer includes the widget in its build). This error can occur when code calls setState() from a timer or an animation callback. E/flutter (31333): The preferred solution is to cancel the timer or stop listening to the animation in the dispose() callback. Another solution is to check the "mounted" property of this object before calling setState() to ensure the object is still in the tree. E/flutter (31333): This error might indicate a memory leak if setState() is being called because another object is retaining a reference to this State object after it has been removed from the tree. To avoid memory leaks, consider breaking the reference to this object during dispose(). E/flutter (31333): #0 State.setState.<anonymous closure> (package:flutter/src/widgets/framework.dart:1163:9) E/flutter (31333): #1 State.setState (package:flutter/src/widgets/framework.dart:1198:6) E/flutter (31333): #2 _PlayerSelectionState.loadPlayerList.<anonymous closure> (package:tallee/presentation/widgets/player_selection.dart:229:9) E/flutter (31333): #3 Future._propagateToListeners.handleValueCallback (dart:async/future_impl.dart:948:45) E/flutter (31333): #4 Future._propagateToListeners (dart:async/future_impl.dart:977:13) E/flutter (31333): #5 Future._completeWithValue (dart:async/future_impl.dart:720:5) E/flutter (31333): #6 Future.wait.<anonymous closure> (dart:async/future.dart:554:23) E/flutter (31333): #7 Future._propagateToListeners.handleValueCallback (dart:async/future_impl.dart:948:45) E/flutter (31333): #8 Future._propagateToListeners (dart:async/future_impl.dart:977:13) E/flutter (31333): #9 Future._complete (dart:async/future_impl.dart:711:7) E/flutter (31333): #10 new Future.delayed.<anonymous closure> (dart:async/future.dart:436:16) E/flutter (31333): #11 Timer._createTimer.<anonymous closure> (dart:async-patch/timer_patch.dart:18:15) E/flutter (31333): #12 _Timer._runTimers (dart:isolate-patch/timer_impl.dart:423:19) E/flutter (31333): #13 _Timer._handleMessage (dart:isolate-patch/timer_impl.dart:454:5) E/flutter (31333): #14 _RawReceivePort._handleMessage (dart:isolate-patch/isolate_patch.dart:193:12) ```
flixcoo added 2 commits 2026-03-07 21:11:57 +00:00
Fix: SetState Error
All checks were successful
Pull Request Pipeline / test (pull_request) Successful in 39s
Pull Request Pipeline / lint (pull_request) Successful in 45s
7810443a00
flixcoo requested review from sneeex 2026-03-07 21:11:58 +00:00
sneeex requested changes 2026-03-07 21:36:28 +00:00
Dismissed
@@ -25,0 +24,4 @@
const CreateMatchView({
super.key,
this.onWinnerChanged,
this.match,
Owner

evtl. zu matchToEdit umbenennen wie in create group view

evtl. zu matchToEdit umbenennen wie in create group view
Author
Owner

Geändert

Geändert
flixcoo marked this conversation as resolved
@@ -50,3 +61,3 @@
/// who are not members of the selected group. If no group is selected,
/// this list is identical to [playerList].
List<Player> filteredPlayerList = [];
/*List<Player> filteredPlayerList = [];*/
Owner

??

??
Author
Owner

Hab die Variable entfernt, die wurde ursprünglich genutzt, damit die Spieler der ausgewählten Gruppe nicht in den suggestedPlayers auftauchen. Da diese aber nun auch in den selectedPlayers sind, wird die nicht mehr gebraucht

Hab die Variable entfernt, die wurde ursprünglich genutzt, damit die Spieler der ausgewählten Gruppe nicht in den `suggestedPlayers` auftauchen. Da diese aber nun auch in den `selectedPlayers` sind, wird die nicht mehr gebraucht
flixcoo marked this conversation as resolved
@@ -260,3 +239,2 @@
bool _enableCreateGameButton() {
return (selectedGroup != null ||
(selectedPlayers.length > 1));
return (selectedGroup != null || (selectedPlayers.length > 1));
Owner

sollte nicht auch hier als bedingung rein, dass game ausgewählt ist (auch wenns gerade noch keine funktion hat)

sollte nicht auch hier als bedingung rein, dass game ausgewählt ist (auch wenns gerade noch keine funktion hat)
Author
Owner

Geändert

Geändert
flixcoo marked this conversation as resolved
@@ -263,2 +241,3 @@
}
// If a match was provied to the view, it updates the match in the database
Owner

tippfehler: provided

tippfehler: provided
flixcoo marked this conversation as resolved
@@ -265,0 +350,4 @@
Future<Game> getTemporaryGame() async {
Game? game;
// No game is selected
Owner

dann button nicht aktiviert? (siehe oben)
d.h. überflüssig

dann button nicht aktiviert? (siehe oben) d.h. überflüssig
Author
Owner

Geändert

Geändert
flixcoo marked this conversation as resolved
@@ -0,0 +142,4 @@
const Icon(Icons.group),
const SizedBox(width: 8),
Text(
// TODO: Update after DB changes
Owner

??

??
Author
Owner

Entfernt

Entfernt
flixcoo marked this conversation as resolved
@@ -51,3 +50,1 @@
...previousChildren,
if (currentChild != null) currentChild,
],
children: [...previousChildren, ?currentChild],
Owner

was macht das?

was macht das?
Author
Owner

Das ist ein Null-aware Spread Operator, d.h. das Element currentChild wird nur in die Liste eingefügt, wenn es nicht null ist. Der Ausdruck ist Äquivalent zu

children: [
   ...previousChildren,
   if (currentChild != null) currentChild,
],

Siehe Discord-Nachricht bzw. Dart Documentation

Das ist ein Null-aware Spread Operator, d.h. das Element `currentChild` wird nur in die Liste eingefügt, wenn es nicht `null` ist. Der Ausdruck ist Äquivalent zu ```dart children: [ ...previousChildren, if (currentChild != null) currentChild, ], ``` Siehe [Discord-Nachricht](https://discord.com/channels/921763177245605888/922566373455048875/1479868438812950661) bzw. [Dart Documentation](https://dart.dev/language/collections#null-aware-element)
flixcoo marked this conversation as resolved
@@ -244,0 +262,4 @@
// Ensures that only players available for selection are pre-selected.
selectedPlayers = widget.initialSelectedPlayers!
.where(
(p) => allPlayers.any((available) => available.id == p.id),
Owner

was geht hier ab? wieso changes?

was geht hier ab? wieso changes?
Author
Owner

Da kam dieser Error, den du hattest her. Da habe ich ein if statement entfernt, dadurch hat sich alles verschoben und wird als Änderung markiert. Effektiv habe ich nur ein if(mounted){...} durch ein if(!mounted) return; ersetzt

Da kam dieser Error, den du hattest her. Da habe ich ein if statement entfernt, dadurch hat sich alles verschoben und wird als Änderung markiert. Effektiv habe ich nur ein `if(mounted){...}` durch ein `if(!mounted) return;` ersetzt
flixcoo marked this conversation as resolved
@@ -69,7 +69,6 @@ class CustomSearchBar extends StatelessWidget {
constraints ?? const BoxConstraints(maxHeight: 45, minHeight: 45),
hintText: hintText,
onChanged: onChanged,
hintStyle: WidgetStateProperty.all(const TextStyle(fontSize: 16)),
Owner

??

??
Author
Owner

Hab das über das Theme gelöst. Gibt jetzt ein SearchBarThemeData searchBarTheme worüber das geregelt wird

Hab das über das Theme gelöst. Gibt jetzt ein `SearchBarThemeData searchBarTheme` worüber das geregelt wird
flixcoo marked this conversation as resolved
flixcoo requested review from sneeex 2026-03-07 22:05:06 +00:00
flixcoo added 6 commits 2026-03-07 22:06:41 +00:00
Removed todo
All checks were successful
Pull Request Pipeline / test (pull_request) Successful in 38s
Pull Request Pipeline / lint (pull_request) Successful in 44s
73c8865eb5
Owner

wäre das nicht smart jetzt meins zu reviewen bei dir nochmal reinzumergen (weils ja sowieso schon drin ist) und dann zu mergen? oder wie geht jetzt ab hier?

wäre das nicht smart jetzt meins zu reviewen bei dir nochmal reinzumergen (weils ja sowieso schon drin ist) und dann zu mergen? oder wie geht jetzt ab hier?
Author
Owner

wäre das nicht smart jetzt meins zu reviewen bei dir nochmal reinzumergen (weils ja sowieso schon drin ist) und dann zu mergen? oder wie geht jetzt ab hier?

ich würde sagen erst meins, weil ich bei mir ja auch noch den anderen issues drin habe + weitere fixes die du dann parallel implementieren müsstest damit deins richtig funktioniert

> wäre das nicht smart jetzt meins zu reviewen bei dir nochmal reinzumergen (weils ja sowieso schon drin ist) und dann zu mergen? oder wie geht jetzt ab hier? ich würde sagen erst meins, weil ich bei mir ja auch noch den anderen issues drin habe + weitere fixes die du dann parallel implementieren müsstest damit deins richtig funktioniert
sneeex approved these changes 2026-03-08 08:28:06 +00:00
sneeex merged commit 934c048687 into development 2026-03-08 08:28:10 +00:00
sneeex deleted branch feature/120-bearbeiten-und-loeschen-von-matches 2026-03-08 08:28:10 +00:00
Sign in to join this conversation.
No Reviewers
2 Participants
Notifications
Due Date
No due date set.
Blocks
#190 Matchweise Groupmember entfernen
liquid-development/game-tracker
Depends on
#156 Neue Datenbank Struktur
liquid-development/game-tracker
Reference: liquid-development/game-tracker#171