Merge pull request #515 from R0m1k3/1.1

Display processed products first and visually indicate their status
This commit is contained in:
LogiFlow authored and GitHub committed 2025-11-04 15:26:29 +01:00
commit e0b8fdfec9
2 files changed
+7 -6

No files matched your search

+1
View File
@@ -894,6 +894,7 @@ export default function DlcPage() {
key={product.id}
className={
product.status === "valides" ? "opacity-60 bg-gray-50 dark:bg-gray-800" :
product.processedUntilExpiry ? "opacity-60 bg-blue-50 dark:bg-blue-900/20" :
product.stockEpuise ? "opacity-50 bg-yellow-50 dark:bg-yellow-900/20" : ""
}
>
+6 -6
View File
@@ -1948,14 +1948,14 @@ export class DatabaseStorage implements IStorage {
query = query.where(and(...conditions));
}
// Tri intelligent : produits actifs en premier, puis produits traités/validés en dernier
// Tri intelligent : produits traités/validés en premier (grisés), puis produits actifs
const results = await query.orderBy(
// Priorité 1 : Produits actifs d'abord (non validés, non traités, stock disponible)
// Priorité 1 : Produits traités/validés d'abord (affichés en grisé)
sql`CASE
WHEN ${dlcProducts.status} = 'valides' THEN 3
WHEN ${dlcProducts.stockEpuise} = true THEN 2
WHEN ${dlcProducts.processedUntilExpiry} = true THEN 2
ELSE 1
WHEN ${dlcProducts.processedUntilExpiry} = true THEN 1
WHEN ${dlcProducts.status} = 'valides' THEN 1
WHEN ${dlcProducts.stockEpuise} = true THEN 1
ELSE 2
END`,
// Priorité 2 : Date d'expiration (croissante)
asc(dlcProducts.expiryDate)