Put "last played" in place of "path" in playlist

This commit is contained in:
Keith Edmunds 2021-08-06 10:23:30 +01:00
parent 79f1a6afa3
commit a6a0b905d8
2 changed files with 38 additions and 6 deletions

View File

@ -1,3 +1,26 @@
from datetime import datetime, date
def get_relative_date(past_date, reference_date=None):
"""
Return relative date as string.
"""
if not reference_date:
reference_date = datetime.now().date()
# Check parameters
if type(past_date) != date:
return "get_relative_date() first parameter is not a date"
if type(reference_date) != date:
return "get_relative_date() second parameter is not a date"
if past_date > reference_date:
return "get_relative_date() past_date is after relative_date"
weeks, days = divmod((reference_date - past_date).days, 7)
return f"{weeks} weeks, {days} days ago"
def ms_to_mmss(ms, decimals=0, negative=False):
if not ms:
return "-"

View File

@ -16,8 +16,11 @@ import os
from config import Config
from datetime import datetime, timedelta
from helpers import get_relative_date
from log import DEBUG, ERROR
from model import Notes, Playlists, PlaylistTracks, Session, Settings, Tracks
from model import (
Notes, Playdates, Playlists, PlaylistTracks, Session, Settings, Tracks
)
class PlaylistTab(QTableWidget):
@ -30,7 +33,7 @@ class PlaylistTab(QTableWidget):
COL_DURATION = 4
COL_START_TIME = 5
COL_END_TIME = 6
COL_PATH = 7
COL_LAST_PLAYED = 7
NOTE_COL_SPAN = 4
NOTE_ROW_SPAN = 1
@ -66,7 +69,7 @@ class PlaylistTab(QTableWidget):
self._set_column_widths()
self.setHorizontalHeaderLabels(["ID", "Lead", "Title", "Artist",
"Len", "Start", "End", "Path"])
"Len", "Start", "End", "Last played"])
self.setDragEnabled(True)
self.setAcceptDrops(True)
@ -209,7 +212,7 @@ class PlaylistTab(QTableWidget):
item = QTableWidgetItem()
self.setItem(row, self.COL_END_TIME, item)
item = QTableWidgetItem()
self.setItem(row, self.COL_PATH, item)
self.setItem(row, self.COL_LAST_PLAYED, item)
self._meta_set_note(row)
@ -255,8 +258,14 @@ class PlaylistTab(QTableWidget):
self.setItem(row, self.COL_ARTIST, item)
item = QTableWidgetItem(helpers.ms_to_mmss(track.duration))
self.setItem(row, self.COL_DURATION, item)
item = QTableWidgetItem(track.path)
self.setItem(row, self.COL_PATH, item)
last_playdate = Playdates.last_played(session, track)
if last_playdate:
playdate_date = last_playdate.lastplayed.date()
last_played_str = get_relative_date(playdate_date)
else:
last_played_str = "Never"
item = QTableWidgetItem(last_played_str)
self.setItem(row, self.COL_LAST_PLAYED, item)
# Add empty start time for now as background
# colour won't be set for columns without items
item = QTableWidgetItem()