diff --git a/vrobbler/apps/boardgames/models.py b/vrobbler/apps/boardgames/models.py
index 851e822..fe45d15 100644
--- a/vrobbler/apps/boardgames/models.py
+++ b/vrobbler/apps/boardgames/models.py
@@ -103,6 +103,35 @@ class BoardGameLogData(BaseLogData, LongPlayLogData):
)
return ""
+ def as_html(self) -> str:
+ html_parts = []
+
+ if self.board:
+ html_parts.append(f'
{self.board}
')
+
+ if self.location:
+ html_parts.append(f'{self.location}
')
+
+ if self.players:
+ players_html = []
+ for player_data in self.players:
+ player = BoardGameScoreLogData(**player_data)
+ player_info = player.name
+ if player.score:
+ player_info += f" ({player.score})"
+ if player.win:
+ player_info += " 🏆"
+ if player.new:
+ player_info += " (new)"
+ players_html.append(
+ f'{player_info}
'
+ )
+ html_parts.append(
+ f'{"".join(players_html)}
'
+ )
+
+ return "".join(html_parts)
+
@classmethod
def override_fields(cls) -> dict:
fields = {}
@@ -262,7 +291,6 @@ class BoardGame(ScrobblableMixin):
def fix_metadata(self, data: dict = {}, force_update=False) -> None:
if not self.published_date or force_update:
-
if not data:
data = lookup_boardgame_from_bgg(str(self.bggeek_id))
diff --git a/vrobbler/templates/boardgames/boardgame_detail.html b/vrobbler/templates/boardgames/boardgame_detail.html
index f7364e4..f7456a5 100644
--- a/vrobbler/templates/boardgames/boardgame_detail.html
+++ b/vrobbler/templates/boardgames/boardgame_detail.html
@@ -71,7 +71,7 @@
| {{scrobble.local_timestamp}} |
{{scrobble.logdata.location }} |
- {% if scrobble.logdata.player_log %}{{scrobble.logdata.player_log}}{% else %}No data{% endif %} |
+ {% if scrobble.logdata.player_log %}{{scrobble.logdata.as_html|safe }}{% else %}No data{% endif %} |
{% endfor %}
diff --git a/vrobbler/templates/scrobbles/scrobble_detail.html b/vrobbler/templates/scrobbles/scrobble_detail.html
index 22770df..42cad5e 100644
--- a/vrobbler/templates/scrobbles/scrobble_detail.html
+++ b/vrobbler/templates/scrobbles/scrobble_detail.html
@@ -28,6 +28,13 @@
Rate: {{object.logdata.avg_seconds_per_page}}s per page
{% endif %}
+{% if object.media_type == "BoardGame" and object.logdata.as_html %}
+
+
Game Details
+ {{ object.logdata.as_html|safe }}
+
+{% endif %}
+