From 5c352fef62c1ca8465d5cbf604c1a533e45ac031 Mon Sep 17 00:00:00 2001 From: Chris Fulljames Date: Sun, 20 Apr 2025 09:09:47 -0400 Subject: [PATCH] Show event title on entry song details --- src/littlesongplace/songs.py | 20 ++++++++++++++++--- .../templates/song-macros.html | 6 ++++++ test/test_jams.py | 4 ++++ 3 files changed, 27 insertions(+), 3 deletions(-) diff --git a/src/littlesongplace/songs.py b/src/littlesongplace/songs.py index 5e4e021..110643c 100644 --- a/src/littlesongplace/songs.py +++ b/src/littlesongplace/songs.py @@ -6,6 +6,7 @@ import subprocess import tempfile from datetime import datetime, timezone from dataclasses import dataclass +from typing import Optional from flask import Blueprint, current_app, render_template, request, redirect, \ session, abort, send_from_directory @@ -31,6 +32,9 @@ class Song: collaborators: list[str] user_has_pfp: bool hidden: bool + eventid: Optional[int] + jamid: Optional[int] + event_title: Optional[str] def json(self): return json.dumps(vars(self)) @@ -177,14 +181,21 @@ def _from_db(query, args=()): # Song is hidden if it was submitted to an event that hasn't ended yet hidden = False + jamid = None + event_title = None + if sd["eventid"]: event_row = db.query( "SELECT * FROM jam_events WHERE eventid = ?", [sd["eventid"]], one=True) - if event_row and event_row["enddate"]: - enddate = datetime.fromisoformat(event_row["enddate"]) - hidden = datetime.now(timezone.utc) < enddate + if event_row: + jamid = event_row["jamid"] + event_title = event_row["title"] + if event_row["enddate"]: + enddate = datetime.fromisoformat(event_row["enddate"]) + hidden = datetime.now(timezone.utc) < enddate + created = ( datetime.fromisoformat(sd["created"]) @@ -202,6 +213,9 @@ def _from_db(query, args=()): collaborators=song_collabs, user_has_pfp=users.user_has_pfp(sd["userid"]), hidden=hidden, + eventid=sd["eventid"], + jamid=jamid, + event_title=event_title, )) return songs diff --git a/src/littlesongplace/templates/song-macros.html b/src/littlesongplace/templates/song-macros.html index 71db298..f272529 100644 --- a/src/littlesongplace/templates/song-macros.html +++ b/src/littlesongplace/templates/song-macros.html @@ -64,6 +64,12 @@ {%- endif %} + {% if song.eventid %} +
+ Jam Event: {{ song.event_title }} +
+ {% endif %} +
Uploaded {{ song.created }}
diff --git a/test/test_jams.py b/test/test_jams.py index f6393f2..c1ea34a 100644 --- a/test/test_jams.py +++ b/test/test_jams.py @@ -268,6 +268,10 @@ def test_submit_song_to_event(client, user, jam, event): response = client.get(f"/jams/{jam}/events/{event}") assert b"song title" in response.data, response.data.decode() + # Check for event title on song page + response = client.get(f"/song/1/1?action=view") + assert b"Event Title" in response.data, response.data.decode() + def test_submitted_song_hidden_before_enddate(client, user, jam, event): client.post( f"/jams/{jam}/events/{event}/update", -- 2.39.5