Put "last played" in place of "path" in playlist
This commit is contained in:
parent
79f1a6afa3
commit
a6a0b905d8
@ -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 "-"
|
||||
|
||||
@ -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()
|
||||
|
||||
Loading…
Reference in New Issue
Block a user