description = request.form["description"]
startdate = request.form["startdate"]
enddate = request.form["enddate"]
- _validate_timestamp(startdate)
- _validate_timestamp(enddate)
+ startdate = _validate_timestamp(startdate)
+ enddate = _validate_timestamp(enddate)
db.query(
"""
UPDATE jam_events
def _validate_timestamp(timestamp):
try:
- datetime.fromisoformat(timestamp)
+ dt = datetime.fromisoformat(timestamp)
+ if dt.tzinfo:
+ # Has timezone, convert to UTC
+ return dt.astimezone(timezone.utc)
+ else:
+ # No timezone, assume it is already UTC
+ return dt.replace(tzinfo=timezone.utc)
except ValueError:
abort(400)
[sd["eventid"]],
one=True)
if event_row and event_row["enddate"]:
- enddate = datetime.fromisoformat(event_row["enddate"]).astimezone()
- hidden = datetime.now().astimezone() < enddate
+ enddate = datetime.fromisoformat(event_row["enddate"])
+ hidden = datetime.now(timezone.utc) < enddate
created = (
datetime.fromisoformat(sd["created"])
- .astimezone()
.strftime("%Y-%m-%d"))
songs.append(Song(
<br/>
{% if event.startdate %}
<strong>Start Date:</strong>
- {{ event.startdate.astimezone().strftime("%Y-%m-%d %I:%M%p") }}
+ {{ event.startdate.strftime("%Y-%m-%d %I:%M%p") }} (UTC)
<br/>
{% endif %}
{% if event.enddate %}
<strong>End Date:</strong>
- {{ event.enddate.astimezone().strftime("%Y-%m-%d %I:%M%p") }}
+ {{ event.enddate.strftime("%Y-%m-%d %I:%M%p") }} (UTC)
{% endif %}
</div>
{{ jam.description }}
</div>
- <h2>Submissions</h2>
+ <h2>Entries</h2>
<a class="button" href="/edit-song?eventid={{ event.eventid }}">Submit a Song</a>
<br/>
<br/>
- {% if songs %}<p><small>This event has received {{ songs|length }} submission{% if songs|length > 1 %}s{% endif %}</small></p>{% endif %}
+ {% if songs %}<p><small>This event has received {{ songs|length }} {% if songs|length > 1 %}entries{% else %}entry{% endif %}</small></p>{% endif %}
{% include "song-list.html" %}
<h2>Comments</h2>
<br/>
<label>
Event Start (When the event title and description become public)<br/>
- <input type="datetime-local" name="startdate" value="{{ event.startdate }}" required/>
+ <input type="datetime-local" name="startdate" value="{% if event.startdate %}{{ event.startdate.replace(tzinfo=None).isoformat() }}{% endif %}" required/> (UTC)
</label>
<br/>
<label>
Event End (When submitted songs become public)<br/>
- <input type="datetime-local" name="enddate" value="{{ event.enddate }}" required/>
+ <input type="datetime-local" name="enddate" value="{% if event.enddate %}{{ event.enddate.replace(tzinfo=None).isoformat() }}{% endif %}" required/> (UTC)
</label>
<br/>
<input type="submit" value="Save"/>