CreateGameView erstellen #67
3 Participants
Notifications
Due Date
No due date set.
Blocks
Depends on
#78 Game zu Match umbenennen
liquid-development/game-tracker
#80 FutureBuilder Logik bei Interaktion mit DB verbessern
liquid-development/game-tracker
#20 GameHistoryView anpassen
liquid-development/game-tracker
Reference: liquid-development/game-tracker#67
Reference in New Issue
Block a user
Delete Branch "feature/3-creategameview-erstellen"
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?
CreateGameView erstellen
Zugehörige Issue(s):
Closes #3 #87
Beschreibung
Es wurde eine Ansicht zum Erstellen von Spielen hinzugefügt, bei welcher der Spielname, das Regelset, die Gruppe wie auch einzelne Spieler gesetzt werden können.
Änderungen
CreateGameViewerstellt, welche es ermöglich ein Spiel mit allen Eigentschaften zu erstellen und nach dem erstellen direkt zurGameResultViewnavigiert.ChooseGroupViewimplementiertChooseGroupViewkann eine Gruppe ausgewählt werden.ChooseGameViewimplementiertChooseGameViewkann eine Game ausgewählt werden.ChooseRulesetViewimplementiertChooseRulesetViewkann eine Ruleset ausgewählt werden.CreateGameView erstellento WIP: CreateGameView erstellenwollen wir nicht mit mergen warten bis #20 gemergt ist?
ja
@@ -11,0 +16,4 @@static BoxDecoration highlightedBoxDecoration = BoxDecoration(color: boxColor,border: Border.all(color: Colors.blue),zu primary color oder farbe ähnlich primary color ändern
@@ -11,0 +18,4 @@color: boxColor,border: Border.all(color: Colors.blue),borderRadius: BorderRadius.circular(12),boxShadow: [BoxShadow(color: Colors.blue.withAlpha(120), blurRadius: 12)],zu primary color oder farbe ähnlich primary color ändern
@@ -0,0 +36,4 @@backgroundColor: CustomTheme.backgroundColor,scrolledUnderElevation: 0,title: const Text('Choose Gametype',Macht keinen Sinn, da gametype und rulesets ausgewählt werden können
Habs jetzt zu
Choose Rulesetgeändert, da man mit den Gametypes ja auch im Prinzip nur n Ruleset festlegt@@ -0,0 +48,4 @@padding: const EdgeInsets.symmetric(horizontal: 12, vertical: 8),child: TabBar(padding: const EdgeInsets.symmetric(horizontal: 5),// Label Settingswarum so viele comments? ist doch klar wofür die settings jeweils sind, also label indicator, divider etc
Wollte das einfach bisschen klarer aufteilen
@@ -0,0 +105,4 @@),const Center(child: Text('No gametypes available',auch hier no gametypes und nicht irgendwas anderes bzw gametypes or rulesets
Was meinst du?
Da steht noch gametypes obwohls ruleset ist
Ja weil da die gametypes hin sollen, also sowas wie "Cabo", "Uno", etc.
Hä aber das sind doch rulesets und nicht gametypes?? Ist ja das file choose_ruleset_view
hätte ich das
choose_ruleset_or_gametypes_view.dartnennen sollen????evtl besser gametype und ruleset aufteilen und wenn man dann einen gametype auswählt, wird automatisch ein ruleset ausgewählt, ein gametype ist aber nicht erforderlich, ein ruleset schon. Das ruleset lässt sich aber nur ändern wenn kein gametype ausgewählt ist, bzw. wenn das ruleset geändert wird und ein gametype ausgewählt ist, wird der gametype auf null gesetzt.
@gelbeinhalb deine Meinung? So wie jetzt oder wie ich vorgeschlagen habe? Felix checkt beides
@@ -0,0 +42,4 @@Group? selectedGroup;/// The index of the currently selected group in [groupsList] to mark it in/// the [ChooseGroupView]warum auch hier bei allen vars comments??
Damit halt jede Variable klar ist und man auch entsprechende Docs hat, wenn man darüber hovert
@@ -0,0 +181,4 @@(p) => !selectedGroup!.members.any((m) => m.id == p.id),).toList(),);mehrere prints noch im code
@@ -0,0 +221,4 @@).toList(),onChanged: (value) {print(value);auch hier print
@@ -0,0 +236,4 @@selectedRuleset == null)? null: () async {Game game = Game(Ja ups haha ich hab ganz vergessen irgendwas mit den ausgewählten Spielern zu machen, hab die einfach nur geprinted haha. Hab die jetzt auch included und sollte jetzt funktionieren
@@ -173,0 +183,4 @@child: Center(child: CustomWidthButton(text: 'Create Game',sizeRelativeToWidth: 0.95,0.9, 0.95 sieht komisch aus mit der navbar, soll so sein wie im groupsview
Also ja ich änder das, aber den Button implementiert ja eh yannick in #2 , deswegen war der eh nur mittel zum swag
WIP: CreateGameView erstellento CreateGameView erstellenUnd
ruleset_list_tilebitte umbenennen zu was generellerem, nicht auf ruleset bezogenCreateGameView erstellento WIP: CreateGameView erstellenWIP: CreateGameView erstellento CreateGameView erstellen@@ -0,0 +56,4 @@child: CustomSearchBar(controller: searchBarController,hintText: 'Game Name',),Es ist kein OnChanged implementiert, die search functionality ist insgesamt nicht gegeben hier.
Note: Das onChanged sollte aber vllt. auch required sein in der CustomSearchBar (weiß gerade nicht ob ich das aus nem grund optional gelassen habe, macht aber ja glaube keinen sinn oder?)
Also ich habs explizit weggelassen, weil ich der einfachhalt halber das aktuell ausgesuchte Spiel über einen Index markiere. Wenn ich das jetzt implementieren würde, müsste ich dass unnötig kompliziert implementieren, weil die Games am Ende eh eine ID haben über die ich das markierte Identifizieren kann, deswegen würd ich das an dieser Stelle weglassen
dann mach die searchbar weg, entweder searchbar und functionality oder nicht, aber nicht so halbe sachen.
Ja aber das ist ja auch kacke, das layout an sich soll ja schon stehen
dann mach die functionality rein, entweder oder.
Du hast ja nur kein bock
@@ -0,0 +71,4 @@onPressed: () async {setState(() {selectedGameIndex = index;});warum ist unselecten hier nicht implementiert, beim choose group view aber schon?
ups, vergessen
@@ -46,12 +56,11 @@ class _ChooseGroupViewState extends State<ChooseGroupView> {return GestureDetector(Warum lässt sich in Choose Game View suchen, im Choose Group View aber nicht? Können beides ja potenziell sehr lange Listen sein
Erledigt (So würde dass dann auch für die Games funktionieren)
@@ -79,3 +84,4 @@Ruleset.leastPoints,'Least Points','Inverse scoring: the player with the fewest points wins.',),Du hast doch in enums die func translateRulesetToString für die Namen, warum nutzt du nicht die einfach für die Namen hier?
Hab ich danach erst implementiert, erledigt.
@@ -122,6 +134,27 @@ class _CreateGameViewState extends State<CreateGameView> {},die Function für onChanged wird nicht gebraucht, weil ja schon ein Listener auf den TextEditingController gesetzt ist
@@ -200,0 +230,4 @@final db = Provider.of<AppDatabase>(context,listen: false,);db ist doch schon assignt? warum nochmal? siehe zeile 99
@@ -223,4 +253,3 @@/// Determines whether the "Create Game" button should be enabled based on/// the current state of the input fields.bool _enableCreateGameButton() {hier sicherstellen, dass mindestens 2 spieler in nem game sind oder nicht?
kann leider nicht an der richtigen stelle kommentieren, aber in der function halt
@@ -0,0 +44,4 @@style: const TextStyle(fontWeight: FontWeight.bold,fontSize: 18,),title ist nicht overflow sicher und verdrängt das badge
@@ -0,0 +64,4 @@color: Colors.white,fontSize: 12,fontWeight: FontWeight.bold,),badgetext nicht overflow sicher

@@ -63,0 +88,4 @@child: GroupTile(group: filteredGroups[index],isHighlighted: selectedGroupId == filteredGroups[index].id,),hier noch etwas einblenden wenn kein suchergebnis da ist, also filteredGroups leer ist (bspw. topcenteredmessage)
Komisches Verhalten bei Group deselect, auch im Zusammenhang mit Ruleset:
https://drive.google.com/file/d/1ExIUfSBy3nRWqro8bU-K3G7YVpGaYp-Y/view?usp=sharing
Ruleset und Group alleine gehen aber.
Frage: ist es beabsichtigt, dass wenn ich spieler auswähle, dann ne group auswähle und dann wieder zurück gehe die Spieler nicht mehr da sind und die Seite neu lädt?
Also dass das ruleset weggeht, wenn du auch das game deselectest soll ja auch so, das ruleset ist in dem moment ja an das game geknüpft. Das andere schau ich mir an
Also eigentlich nicht, aber macht ja theoretisch sinn, weil in der gruppe ja theoretisch die spieler sein können, die du schon ausgewählt hattest. Oder wie würdest du das machen?
Die Spieler die dann doppelt sind aus selectedPlayers entfernen und die anderen da behalten
Habe das jetzt mal implementiert, so dass die Spieler 1. bleiben und 2. alle Spieler welche schon teil der Gruppe sind rausfliegen
wenn das hier gemerged ist machen wir zuerst #78 bevor irgendwas anderes angefangen wird oder?
ja
@@ -63,0 +78,4 @@icon: Icons.info,title: 'No group',message: 'There is no group matching your search.',),Hier bitte ohne Punkt, das hatten wir ja gesagt, und wir müssen uns darauf einigen ob der Titel infos erhält, oder nur keywords wie info/error, weil ich das bis jetzt so gemacht habe.
Sonst passt so
Wenn der Titel keine Infos enthalten soll, würd ich daraus n enum Attribut machen damit der je nach enum gesetzt wird (Icon und Titel)
ja findste mit oder ohne richtigen Title besser?
ist mir auch egal, lass es so oder nicht. Wenn du es mit Info/Error im Titel willst, mach am besten das einmal temporär in den Titel und dann nen Issue für Änderung der anderen Titel in eine enum Version oder halt eine Version mit aussagekräftigem Titel.
Aber auf jeden Fall den Punkt weg machen am Ende von Message
dann approve ich
erledigt
Obwohl andere Sache: gehört #87 nicht auch hierzu? Hat ja wahrscheinlich damit zu tun, dass du nach dem Aufrufen vom Navigator mit dem du die CreateGameView zeigst nicht reloadest
Nicht mergen
ja du musst ja auch noch approven
New commits pushed, approval review dismissed automatically according to repository settings
Fixed
@@ -121,1 +130,3 @@setState(() {});setState(() {_gameNameController;});bitte mit listener implementieren, außerdem hat das _gameNameController hier keinen Effekt, würde auch nur mit setState und leerem Inhalt gehen
Player werden nach auswählen der Gruppe nicht sortiert
Also bitte teste doch bevor du zur Review gibst einmal die Functionality und suche nach eventuellen Bugs, folgendes Problem:
//game erstellen klicken
//manuell spieler auswählen
//auf gruppe gehen
//gruppe auswählen
//spieler nicht mehr ausgewählt
chef also wirklich guckst du auch selber nach fehlern?
https://drive.google.com/file/d/119ZpheA7AE-STBo2C3anoNoWPQz8aBWi/view?usp=sharing
also es kann doch jetzt nicht sein dikker
@@ -92,6 +113,7 @@ class _CreateGameViewState extends State<CreateGameView> {Future.wait([_allGroupsFuture, _allPlayersFuture]).then((result) async {groupsList = result[0] as List<Group>;playerList = result[1] as List<Player>;filteredPlayerList = List.from(playerList);macht das nicht mehr sinn, rein logisch, die ausserhalb der future wait zu haben? weil die hat ja nichts in der future wait zu suchen oder?
theoreitisch ist das egal wo das ist hauptsache nach der future
ja ich weiß aber macht es nicht mehr sinn das ausserhalb zu machen
so vom logischen
und warum hast du den futurebuilder entfernt? weil die playerselection selber einen hat?
Ja ich dachte erst dass das das problem behoben hat