Browse Source

[tasks] Fix dataclass models

Colin Powell 3 weeks ago
parent
commit
ad0f9a54d0
2 changed files with 30 additions and 3 deletions
  1. 24 2
      vrobbler/apps/scrobbles/dataclasses.py
  2. 6 1
      vrobbler/apps/tasks/models.py

+ 24 - 2
vrobbler/apps/scrobbles/dataclasses.py

@@ -78,6 +78,14 @@ class BoardGameScoreLogData(JSONDataclass):
     rank: Optional[int] = None
     seat_order: Optional[int] = None
     role: Optional[str] = None
+    rank: Optional[int] = None
+    seat_order: Optional[int] = None
+    role: Optional[str] = None
+    lichess_username: Optional[str] = None
+    # Legacy
+    user_id: Optional[int] = None
+    name_str: Optional[str] = None
+
 
     @property
     def person(self) -> Optional[Person]:
@@ -111,7 +119,19 @@ class BoardGameLogData(LongPlayLogData):
     solo: Optional[bool] = None
     two_handed: Optional[bool] = None
     expansion_ids: Optional[int] = None
-
+    moves: Optional[list] = None
+    rated: Optional[str] = None
+    speed: Optional[str] = None
+    variant: Optional[str] = None
+    lichess_id: Optional[int] = None
+    board: Optional[str] = None
+    rounds: Optional[int] = None
+    details: Optional[str] = None
+    # Legacy
+    learning: Optional[bool] = None
+    location: Optional[str] = None
+    geo_location_id: Optional[int] = None
+    scenario: Optional[str] = None
     @cached_property
     def geo_location(self) -> Optional[GeoLocation]:
         if self.geo_location_id:
@@ -119,7 +139,9 @@ class BoardGameLogData(LongPlayLogData):
 
     @cached_property
     def player_log(self) -> str:
-        return ", ".join([BoardGameScoreLogData(**player).__str__() for player in self.players])
+        if self.players:
+            return ", ".join([BoardGameScoreLogData(**player).__str__() for player in self.players])
+        return ""
 
 @dataclass
 class BookPageLogData(JSONDataclass):

+ 6 - 1
vrobbler/apps/tasks/models.py

@@ -18,10 +18,15 @@ class TaskLogData(JSONDataclass):
     description: Optional[str] = None
     title: Optional[str] = None
     project: Optional[str] = None
+    notes: Optional[dict] = None
+    updated_at: Optional[str] = None
     todoist_id: Optional[str] = None
     todoist_event: Optional[str] = None
     todoist_type: Optional[str] = None
-    notes: Optional[dict] = None
+    todoist_type: Optional[str] = None
+    todoist_label_list: Optional[list] = None
+    todoist_project_id: Optional[str] = None
+
 
     def notes_as_str(self) -> str:
         """Return formatted notes with line breaks and no keys"""