Баг с подсчётом завершённых сценариев в админке

This commit is contained in:
2026-02-12 10:04:06 +03:00
parent ab5cdef34a
commit 41cceabd5e

View File

@@ -550,25 +550,25 @@ def get_stats() -> dict:
) )
""").fetchone()[0] """).fetchone()[0]
# Количество полностью озвученных сценариев (все дорожки сценария озвучены) # Количество полностью озвученных сценариев (все дорожки озвучены хотя бы раз)
stats["completed_scenarios"] = conn.execute(""" stats["completed_scenarios"] = conn.execute("""
SELECT COUNT(*) FROM scenarios s SELECT COUNT(*) FROM scenarios s
WHERE ( WHERE (
SELECT COUNT(DISTINCT speaker_id) FROM replicas WHERE scenario_id = s.id SELECT COUNT(DISTINCT speaker_id) FROM replicas WHERE scenario_id = s.id
) = ( ) = (
SELECT COUNT(DISTINCT speaker_id) FROM ( SELECT COUNT(DISTINCT speaker_id) FROM (
SELECT r.scenario_id, rep.speaker_id, COUNT(*) as cnt SELECT rep.speaker_id
FROM recordings r FROM recordings r
JOIN replicas rep ON r.scenario_id = rep.scenario_id JOIN replicas rep ON r.scenario_id = rep.scenario_id
AND r.replica_index = rep.replica_index AND r.replica_index = rep.replica_index
WHERE r.scenario_id = s.id WHERE r.scenario_id = s.id
GROUP BY r.scenario_id, rep.speaker_id GROUP BY rep.speaker_id, r.user_id
HAVING cnt = ( HAVING COUNT(*) = (
SELECT COUNT(*) FROM replicas rp SELECT COUNT(*) FROM replicas rp
WHERE rp.scenario_id = r.scenario_id WHERE rp.scenario_id = s.id
AND rp.speaker_id = rep.speaker_id AND rp.speaker_id = rep.speaker_id
) )
) AS completed ) AS completed_tracks
) )
""").fetchone()[0] """).fetchone()[0]