series in-progress filter

Updated series in-progress filter to return all series with books that have been started but not all finished.
This commit is contained in:
Licarious 2025-08-15 17:11:45 -05:00
parent dcaca43817
commit 81e0dcc942

View File

@ -84,7 +84,7 @@ module.exports = {
seriesWhere.push(Sequelize.where(Sequelize.literal(`(${progQuery})`), 0))
userPermissionBookWhere.replacements.userId = user.id
} else if (filterValue === 'in-progress') {
attrQuery = 'SELECT count(*) FROM books b, bookSeries bs LEFT OUTER JOIN mediaProgresses mp ON mp.mediaItemId = b.id AND mp.userId = :userId WHERE bs.seriesId = series.id AND bs.bookId = b.id AND (mp.currentTime > 0 OR mp.ebookProgress > 0) AND mp.isFinished = 0'
attrQuery = 'SELECT COUNT(*) FROM books b JOIN bookSeries bs ON bs.bookId = b.id LEFT JOIN mediaProgresses mp ON mp.mediaItemId = b.id AND mp.userId = :userId WHERE bs.seriesId = series.id GROUP BY bs.seriesId HAVING SUM(CASE WHEN mp.isFinished = 1 THEN 1 ELSE 0 END) < COUNT(*) AND SUM(CASE WHEN mp.currentTime > 0 OR mp.ebookProgress > 0 THEN 1 ELSE 0 END) > 0'
userPermissionBookWhere.replacements.userId = user.id
}
}