CreateGameView erstellen #67

Merged
sneeex merged 35 commits from feature/3-creategameview-erstellen into development 2025-12-10 20:43:54 +00:00
Showing only changes of commit 3b3d298ff5 - Show all commits

View File

@@ -43,6 +43,12 @@ class _CreateGameViewState extends State<CreateGameView> {
/// List of all players from the database /// List of all players from the database
List<Player> playerList = []; List<Player> playerList = [];
sneeex marked this conversation as resolved Outdated

warum auch hier bei allen vars comments??

warum auch hier bei allen vars comments??

Damit halt jede Variable klar ist und man auch entsprechende Docs hat, wenn man darüber hovert

Damit halt jede Variable klar ist und man auch entsprechende Docs hat, wenn man darüber hovert
/// List of players filtered based on the selected group
/// If a group is selected, this list contains all players from [playerList]
/// who are not members of the selected group. If no group is selected,
/// this list is identical to [playerList].
List<Player> filteredPlayerList = [];
/// The currently selected group /// The currently selected group
Group? selectedGroup; Group? selectedGroup;
@@ -57,6 +63,8 @@ class _CreateGameViewState extends State<CreateGameView> {
/// the [ChooseRulesetView] /// the [ChooseRulesetView]
int selectedRulesetIndex = -1; int selectedRulesetIndex = -1;
/// The index of the currently selected game in [games] to mark it in
/// the [ChooseGameView]
int selectedGameIndex = -1; int selectedGameIndex = -1;
/// The currently selected players /// The currently selected players
@@ -105,6 +113,7 @@ class _CreateGameViewState extends State<CreateGameView> {
Future.wait([_allGroupsFuture, _allPlayersFuture]).then((result) async { Future.wait([_allGroupsFuture, _allPlayersFuture]).then((result) async {
groupsList = result[0] as List<Group>; groupsList = result[0] as List<Group>;
playerList = result[1] as List<Player>; playerList = result[1] as List<Player>;
filteredPlayerList = List.from(playerList);
flixcoo marked this conversation as resolved Outdated

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?

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

theoreitisch ist das egal wo das ist hauptsache nach der future

ja ich weiß aber macht es nicht mehr sinn das ausserhalb zu machen

ja ich weiß aber macht es nicht mehr sinn das ausserhalb zu machen

so vom logischen

so vom logischen
}); });
} }
@@ -194,6 +203,15 @@ class _CreateGameViewState extends State<CreateGameView> {
), ),
); );
selectedGroupId = selectedGroup?.id ?? ''; selectedGroupId = selectedGroup?.id ?? '';
if (selectedGroup != null) {
filteredPlayerList = playerList
.where(
(p) => !selectedGroup!.members.any((m) => m.id == p.id),
)
.toList();
} else {
filteredPlayerList = List.from(playerList);
}
setState(() {}); setState(() {});
}, },
), ),
@@ -201,15 +219,7 @@ class _CreateGameViewState extends State<CreateGameView> {
child: PlayerSelection( child: PlayerSelection(
key: ValueKey(selectedGroup?.id ?? 'no_group'), key: ValueKey(selectedGroup?.id ?? 'no_group'),
initialSelectedPlayers: selectedPlayers ?? [], initialSelectedPlayers: selectedPlayers ?? [],
availablePlayers: selectedGroup == null availablePlayers: filteredPlayerList,
? playerList
: playerList
.where(
(p) => !selectedGroup!.members.any(
(m) => m.id == p.id,
),
)
.toList(),
onChanged: (value) { onChanged: (value) {
setState(() { setState(() {
flixcoo marked this conversation as resolved Outdated

auch hier print

auch hier print
selectedPlayers = value; selectedPlayers = value;
@@ -226,7 +236,7 @@ class _CreateGameViewState extends State<CreateGameView> {
Game game = Game( Game game = Game(
name: _gameNameController.text.trim(), name: _gameNameController.text.trim(),
createdAt: DateTime.now(), createdAt: DateTime.now(),
group: selectedGroup!, group: selectedGroup,
sneeex marked this conversation as resolved Outdated
grafik.png game lässt sich nicht erstellen, obwohl spieler, game name und ruleset ausgewählt ist (funktioniert auch mit 2 spielern nicht, hier muss aber darauf geachtet werden, dass ein spiel nur mit min. 2 spielern erstellt werden kann)
<img width="318" alt="grafik.png" src="attachments/1bb19145-834c-4a72-9399-a43972f77e46"> game lässt sich nicht erstellen, obwohl spieler, game name und ruleset ausgewählt ist (funktioniert auch mit 2 spielern nicht, hier muss aber darauf geachtet werden, dass ein spiel nur mit min. 2 spielern erstellt werden kann)
132 KiB

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

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
players: selectedPlayers, players: selectedPlayers,
); );
await db.gameDao.addGame(game: game); await db.gameDao.addGame(game: game);