Redisseny dels resultats de cerca
This commit is contained in:
@@ -1,3 +1,5 @@
|
||||
from collections.abc import Iterable
|
||||
|
||||
from folkugat_web.dal.sql.playlists import query as playlists_q
|
||||
from folkugat_web.dal.sql.temes import query as temes_q
|
||||
from folkugat_web.model import sessions as sessions_model
|
||||
@@ -28,7 +30,8 @@ def tema_compute_stats(
|
||||
return tema
|
||||
|
||||
|
||||
def temes_compute_stats(temes: list[model.Tema]) -> list[model.Tema]:
|
||||
def temes_compute_stats(temes: Iterable[model.Tema]) -> list[model.Tema]:
|
||||
temes = list(temes)
|
||||
tema_ids = [tema.id for tema in temes if tema.id is not None]
|
||||
tune_sessions_dict = playlists_q.get_tune_sessions(tema_ids=tema_ids)
|
||||
return [tema_compute_stats(tema=tema, tune_sessions_dict=tune_sessions_dict) for tema in temes]
|
||||
|
||||
@@ -12,6 +12,7 @@ from folkugat_web.log import logger
|
||||
from folkugat_web.model import search as search_model
|
||||
from folkugat_web.model import temes as model
|
||||
from folkugat_web.services.temes import properties as properties_service
|
||||
from folkugat_web.services.temes import query as query_service
|
||||
from folkugat_web.utils import FnChain
|
||||
|
||||
T = TypeVar("T")
|
||||
@@ -122,6 +123,7 @@ def busca_temes(
|
||||
_filter_hidden(hidden) |
|
||||
properties_service.add_properties_to_temes |
|
||||
_filter_properties(properties) |
|
||||
query_service.temes_compute_stats |
|
||||
_apply_limit_offset(limit=limit, offset=offset)
|
||||
).result()
|
||||
logger.info(f"Temes search time: { int((time.time() - t0) * 1000) } ms")
|
||||
|
||||
Reference in New Issue
Block a user