fix: tri "derniers ajoutés" utilise created_at au lieu de updated_at
Le tri par date d'ajout utilisait updated_at qui est écrasé à chaque rescan de l'indexer, empêchant les livres/séries récemment ajoutés de remonter en premier. Utilise maintenant created_at qui reflète la vraie date d'ajout. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -180,7 +180,7 @@ pub async fn list_books(
|
||||
);
|
||||
|
||||
let order_clause = if query.sort.as_deref() == Some("latest") {
|
||||
"b.updated_at DESC".to_string()
|
||||
"b.created_at DESC".to_string()
|
||||
} else {
|
||||
"b.volume NULLS LAST, REGEXP_REPLACE(LOWER(b.title), '[0-9].*$', ''), COALESCE((REGEXP_MATCH(LOWER(b.title), '\\d+'))[1]::int, 0), b.title ASC".to_string()
|
||||
};
|
||||
|
||||
@@ -458,7 +458,7 @@ pub async fn list_all_series(
|
||||
);
|
||||
|
||||
let series_order_clause = if query.sort.as_deref() == Some("latest") {
|
||||
"sc.latest_updated_at DESC".to_string()
|
||||
"sc.latest_created_at DESC".to_string()
|
||||
} else {
|
||||
"REGEXP_REPLACE(LOWER(sc.name), '[0-9].*$', ''), COALESCE((REGEXP_MATCH(LOWER(sc.name), '\\d+'))[1]::int, 0), sc.name ASC".to_string()
|
||||
};
|
||||
@@ -470,7 +470,7 @@ pub async fn list_all_series(
|
||||
COALESCE(NULLIF(series, ''), 'unclassified') as name,
|
||||
id,
|
||||
library_id,
|
||||
updated_at,
|
||||
created_at,
|
||||
ROW_NUMBER() OVER (
|
||||
PARTITION BY COALESCE(NULLIF(series, ''), 'unclassified')
|
||||
ORDER BY
|
||||
@@ -488,7 +488,7 @@ pub async fn list_all_series(
|
||||
sb.library_id,
|
||||
COUNT(*) as book_count,
|
||||
COUNT(brp.book_id) FILTER (WHERE brp.status = 'read') as books_read_count,
|
||||
MAX(sb.updated_at) as latest_updated_at
|
||||
MAX(sb.created_at) as latest_created_at
|
||||
FROM sorted_books sb
|
||||
LEFT JOIN book_reading_progress brp ON brp.book_id = sb.id AND ${user_id_p}::uuid IS NOT NULL AND brp.user_id = ${user_id_p}
|
||||
GROUP BY sb.name, sb.library_id
|
||||
|
||||
Reference in New Issue
Block a user