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
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))
# 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"])
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
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",