Move querylistmodel from SQL to filter
This commit is contained in:
parent
8b8edba64d
commit
994d510ed9
@ -27,6 +27,7 @@ from sqlalchemy.orm.session import Session
|
|||||||
# App imports
|
# App imports
|
||||||
from classes import (
|
from classes import (
|
||||||
ApplicationError,
|
ApplicationError,
|
||||||
|
Filter,
|
||||||
QueryCol,
|
QueryCol,
|
||||||
)
|
)
|
||||||
from config import Config
|
from config import Config
|
||||||
@ -37,7 +38,7 @@ from helpers import (
|
|||||||
show_warning,
|
show_warning,
|
||||||
)
|
)
|
||||||
from log import log
|
from log import log
|
||||||
from models import db, Playdates, run_sql
|
from models import db, Playdates
|
||||||
from music_manager import RowAndTrack
|
from music_manager import RowAndTrack
|
||||||
|
|
||||||
|
|
||||||
@ -62,16 +63,16 @@ class QuerylistModel(QAbstractTableModel):
|
|||||||
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
def __init__(self, session: Session, sql: str) -> None:
|
def __init__(self, session: Session, filter: Filter) -> None:
|
||||||
"""
|
"""
|
||||||
Load query
|
Load query
|
||||||
"""
|
"""
|
||||||
|
|
||||||
log.debug(f"QuerylistModel.__init__({sql=})")
|
log.debug(f"QuerylistModel.__init__({filter=})")
|
||||||
|
|
||||||
super().__init__()
|
super().__init__()
|
||||||
self.session = session
|
self.session = session
|
||||||
self.sql = sql
|
self.filter = filter
|
||||||
|
|
||||||
self.querylist_rows: dict[int, QueryRow] = {}
|
self.querylist_rows: dict[int, QueryRow] = {}
|
||||||
self._selected_rows: set[int] = set()
|
self._selected_rows: set[int] = set()
|
||||||
@ -79,7 +80,7 @@ class QuerylistModel(QAbstractTableModel):
|
|||||||
self.load_data()
|
self.load_data()
|
||||||
|
|
||||||
def __repr__(self) -> str:
|
def __repr__(self) -> str:
|
||||||
return f"<QuerylistModel: sql={self.sql}, {self.rowCount()} rows>"
|
return f"<QuerylistModel: filter={self.filter}, {self.rowCount()} rows>"
|
||||||
|
|
||||||
def background_role(self, row: int, column: int, qrow: QueryRow) -> QVariant:
|
def background_role(self, row: int, column: int, qrow: QueryRow) -> QVariant:
|
||||||
"""Return background setting"""
|
"""Return background setting"""
|
||||||
@ -227,7 +228,7 @@ class QuerylistModel(QAbstractTableModel):
|
|||||||
row = 0
|
row = 0
|
||||||
|
|
||||||
try:
|
try:
|
||||||
results = run_sql(self.session, self.sql)
|
results = Tracks.get_filtered(self.session, self.filter)
|
||||||
for result in results:
|
for result in results:
|
||||||
if hasattr(result, "lastplayed"):
|
if hasattr(result, "lastplayed"):
|
||||||
lastplayed = result["lastplayed"]
|
lastplayed = result["lastplayed"]
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user