From c84acf6ae7a674367bb64a049a203069ac9aab6c Mon Sep 17 00:00:00 2001 From: Colin Powell Date: Mon, 19 Aug 2024 10:14:10 -0400 Subject: [PATCH] [boardgames] Add str rep for player dataclass --- vrobbler/apps/scrobbles/dataclasses.py | 29 ++++++++++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-) diff --git a/vrobbler/apps/scrobbles/dataclasses.py b/vrobbler/apps/scrobbles/dataclasses.py index 07c6322..d46a2f2 100644 --- a/vrobbler/apps/scrobbles/dataclasses.py +++ b/vrobbler/apps/scrobbles/dataclasses.py @@ -34,13 +34,38 @@ class JSONDataclass(JSONWizard): @dataclass class BoardGameScoreLogData(JSONDataclass): user_id: Optional[int] = None - name: Optional[str] = None - bgg_username: Optional[str] = None + name_str: str = "" + bgg_username: str = "" color: Optional[str] = None character: Optional[str] = None team: Optional[str] = None score: Optional[int] = None win: Optional[bool] = None + new: Optional[bool] = None + + @property + def user(self) -> Optional[User]: + user = None + if self.user_id: + user = User.objects.filter(id=self.user_id).first() + return user + + @property + def name(self) -> str: + name = self.name_str + if self.user_id: + name = self.user.first_name + return name + + def __str__(self) -> str: + out = self.name + if self.score: + out += f" {self.score}" + if self.color: + out += f" ({self.color})" + if self.win: + out += f" [W]" + return out @dataclass