Bearbeiten und Löschen von Gruppen #148
2 Participants
Notifications
Due Date
No due date set.
Depends on
#88 Neue Datenbank-Struktur
liquid-development/game-tracker
Reference: liquid-development/game-tracker#148
Reference in New Issue
Block a user
Delete Branch "feature/118-bearbeiten-und-löschen-von-gruppen"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Bearbeiten und Löschen von Gruppen
Zugehörige Issue(s):
Closes #118 #155
Beschreibung
Es wurde ein View zum Bearbeiten und Löschen von Gruppen erstellt.
Dazu wurde auch eine neue Methode in der DB erstellt: deleteMatchGroup
Zusätzliche Anmerkungen
Ich habe einen Key zu jedem ScaffoldMessenger hinzugefügt, weil es ohne in dem
Group_Detail_Viewnicht funktioniert hat, obwohl es ohne Key durch das PlayerSelection Widget, was in dem View benutzt wird, funktioniert hat.TODO:
Ich hatte vergessen, dass du das Feature schon angefangen hast. Hatte auch schon angefangen, dass bearbeiten zu implementiert. Hab mir deine
loadPlayerList()angeschaut und gedacht, maybe willst du das eher so machen wie ich das hatte, ist etwas simpler und kürzer beim gleichen outcome (Kommentare wären mindestens gut, für die unterschiedlichen Fälle):@@ -248,0 +250,4 @@// Excludes already selected players from the suggested players list.suggestedPlayers = loadedPlayers.where((p) => !widget.initialSelectedPlayers!.any((ip) => ip.id == p.id)).toList();// Ensures that only players available for selection are pre-selected.selectedPlayers = widget.initialSelectedPlayers!Bzw das ist doch nicht notwendig oder? Ansonsten lass die doch so, das ist gut. Aber ergänz mal Kommentare zu den unterschiedlichen Cases
Du bist wirklich dumm
WIP: Bearbeiten und Löschen von Gruppento Bearbeiten und Löschen von Gruppenwas tun @flixcoo
fixed
Gruppen Sieger wird nicht aktualisiert wenn man Members entfernt.
@@ -146,3 +148,3 @@? null: () async {late Group? updatedGroup;Group? updatedGroup;Kompletten Code hier in mindestens eine Methode auslagern, falls sinnvoll auch mehrere
ja was machen wa denn? entfernen oder nicht?
Vorallem wird das doch in zukunft eh dynamisch berechnet oder nicht?
Also ich würde entfernen, weil das wird nur beim holen des matches dynamisch berechnet. Die Table hat keine Winner spalte mehr, das Objekt hat aber das Winner attribut noch, damit man den einfacher abgreifen kann
@@ -191,1 +158,4 @@/// Saves the group by creating a new one or updating the existing one,/// depending on whether the widget is in edit mode.Future<void> _saveGroup() async {gerne die Methode nochmal aufteilen, wie bei mir in
CreateMatchView:nö
Was gerade auch noch ein Problem ist:
aber dein kernpunkt ist: (?) [p = normaler spieler, pg = spieler in gruppe g]
und generell:
eigentlich würde ich ja als user wollen, dass meine matches nicht verändert werden, wenn ich ne gruppe lösche denke ich
Review
Paar Kleinigkeiten, Funktionalität top
@@ -338,6 +338,17 @@ class MatchDao extends DatabaseAccessor<AppDatabase> with _$MatchDaoMixin {return rowsAffected > 0;}/// Entfernt die Gruppen-Verknüpfung des Matches mit der gegebenen [matchId].Kommentar auf Deutsch
@@ -341,0 +341,4 @@/// Entfernt die Gruppen-Verknüpfung des Matches mit der gegebenen [matchId]./// Setzt die groupId auf null./// Gibt `true` zurück, wenn mehr als 0 Zeilen betroffen waren, ansonsten `false`.Future<bool> deleteMatchGroup({required String matchId}) async {Methode lieber sowas nennen
removeGroupFromMatchda hier ja keine keine Gruppe gelöscht wird@@ -192,0 +190,4 @@return (success, updatedGroup);}Future<void> deleteObsoleteMatchGroupRelations() async {Kurzen doc comment nochmal zu dieser Methode vllt
@@ -192,0 +191,4 @@}Future<void> deleteObsoleteMatchGroupRelations() async {final matches = await db.matchDao.getAllMatches();Lieber Methode
getMatchesToGroup()ingroupDao.dart, kann ggf. später auch noch einmal verwendet werdenhast das auch so gemacht
habs von dir kopiert
wo hab ich das gemacht? File und Zeile
hast das auch so gemacht, group detail view

ja aber da diese vorgehensweise jetzt mehr als einmal im code ist machts erst recht sinn dafür ne methode zu schreiben und entsprechende vorkommen zu ersetzen
@@ -195,0 +194,4 @@return CreateGroupView(groupToEdit: _group,onMembersChanged: () {isLoading = true;Warum wird
isLoadingnicht in_loadStatisticsauf true gesetzt?weil du's so gemacht hast großer
Setzt es mal in der Methode anfangs auf true, so ists z.B. auch im
GroupView@@ -308,2 +308,4 @@expect(fetchedMatch.winner!.id, testPlayer5.id);});// Tests for removeMatchGroupUnnötiger Kommentar
@@ -310,0 +323,4 @@matchId: testMatch1.id,);expect(updatedMatch.group, null);// Andere Felder bleiben unverändertUnnötiger Kommentar & auf deutsch
@@ -310,0 +338,4 @@final removed = await database.matchDao.deleteMatchGroup(matchId: testMatchOnlyPlayers.id,);// Update sollte trotzdem eine Zeile betreffenUnnötiger Kommentar & auf deutsch
@@ -172,2 +173,4 @@}/// Retrieves all matches associated with the given [groupId].Future<List<Match>> getGroupMatches({required String groupId}) async {Du sollst direkt die Datenbankanfrage so gestalten, dass du nur die Matches bekommst, welche die Gruppe enthalten. Das war mein Punkt
so wenig effort wie möglich
ja schlimm
match name soll nicht nullable sein oder?
Eigentlich nicht, das ist schon wieder Fusch am Bau