From 42a7c494f245718ac27a411669ec0d98bd1efae5 Mon Sep 17 00:00:00 2001 From: michaelschal <35957947-michaelschal@users.noreply.replit.com> Date: Tue, 4 Nov 2025 14:24:37 +0000 Subject: [PATCH] Display processed products first and visually indicate their status Adjusted product display logic to prioritize and style products that have been processed or validated, ensuring they appear at the beginning of the list with a distinct visual treatment. Replit-Commit-Author: Agent Replit-Commit-Session-Id: 1e4433b5-47ab-464c-b663-fea2e53367dd Replit-Commit-Checkpoint-Type: full_checkpoint Replit-Commit-Event-Id: 7b704198-c867-4dc2-bcfa-f3fd0e9ea029 Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/1957c339-2757-4d1f-8e92-e9f71a1ce58e/1e4433b5-47ab-464c-b663-fea2e53367dd/LXHtbOp --- client/src/pages/DlcPage.tsx | 1 + server/storage.ts | 12 ++++++------ 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/client/src/pages/DlcPage.tsx b/client/src/pages/DlcPage.tsx index f7ce77d..6df2f66 100644 --- a/client/src/pages/DlcPage.tsx +++ b/client/src/pages/DlcPage.tsx @@ -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" : "" } > diff --git a/server/storage.ts b/server/storage.ts index ef00317..7ca5d88 100644 --- a/server/storage.ts +++ b/server/storage.ts @@ -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)