From 55afb8eb70f553dce16fdb9e6636f6b995022751 Mon Sep 17 00:00:00 2001 From: michaelschal <35957947-michaelschal@users.noreply.replit.com> Date: Thu, 21 Aug 2025 11:20:58 +0000 Subject: [PATCH 1/2] Improve year week calculation for accurate display of past and future events Refactor the `getYearWeeks` function to use a safer `Date` constructor and limit the number of weeks generated, addressing an issue with the year 2025 calculation. Replit-Commit-Author: Agent Replit-Commit-Session-Id: 0ec86cdf-a5be-4b0e-84a3-07b926f5cc80 Replit-Commit-Checkpoint-Type: full_checkpoint Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/1957c339-2757-4d1f-8e92-e9f71a1ce58e/0ec86cdf-a5be-4b0e-84a3-07b926f5cc80/ZJYssQp --- ...-4363-805C-AEAA465F2FB1}_1755775097820.png | Bin 0 -> 60991 bytes client/src/pages/Publicities.tsx | 112 +++++++++--------- 2 files changed, 53 insertions(+), 59 deletions(-) create mode 100644 attached_assets/{6FC8AFEF-7550-4363-805C-AEAA465F2FB1}_1755775097820.png diff --git a/attached_assets/{6FC8AFEF-7550-4363-805C-AEAA465F2FB1}_1755775097820.png b/attached_assets/{6FC8AFEF-7550-4363-805C-AEAA465F2FB1}_1755775097820.png new file mode 100644 index 0000000000000000000000000000000000000000..9c25005ecc9b9449979b1a491335b80657e69364 GIT binary patch literal 60991 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 IC1ncwf8{#O^Z)<= literal 0 HcmV?d00001 diff --git a/client/src/pages/Publicities.tsx b/client/src/pages/Publicities.tsx index d48bea9..f8f9986 100644 --- a/client/src/pages/Publicities.tsx +++ b/client/src/pages/Publicities.tsx @@ -1,4 +1,4 @@ -import { useState } from "react"; +import { useState, useMemo } from "react"; import { useQuery, useMutation, useQueryClient } from "@tanstack/react-query"; import { Plus, Calendar, Edit, Trash2, Eye, Filter, Grid, List } from "lucide-react"; import { Button } from "@/components/ui/button"; @@ -166,68 +166,62 @@ export default function Publicities() { // Year overview - Generate weeks for the selected year const getYearWeeks = () => { - const yearStart = startOfYear(new Date(selectedYear, 0, 1)); - const yearEnd = endOfYear(new Date(selectedYear, 11, 31)); - - const weeks = eachWeekOfInterval( - { start: yearStart, end: yearEnd }, - { weekStartsOn: 1 } - ); + try { + // SAFE: Use simple Date constructor to avoid issues with specific years + const yearStart = new Date(selectedYear, 0, 1); // 1er janvier + const yearEnd = new Date(selectedYear, 11, 31); // 31 décembre + + const weeks = eachWeekOfInterval( + { start: yearStart, end: yearEnd }, + { weekStartsOn: 1 } + ); - console.log(`📅 getYearWeeks debug pour ${selectedYear}:`, { - yearStart: format(yearStart, 'yyyy-MM-dd EEEE', { locale: fr }), - yearEnd: format(yearEnd, 'yyyy-MM-dd EEEE', { locale: fr }), - totalWeeks: weeks.length - }); + // SAFE: Limit the number of weeks to prevent performance issues + const limitedWeeks = weeks.slice(0, 54); // Maximum 54 semaines par année - return weeks.map((weekStart, index) => { - const weekEnd = endOfWeek(weekStart, { weekStartsOn: 1 }); - // Utiliser l'index + 1 pour une numérotation séquentielle cohérente - // plutôt que getWeek() qui peut créer des doublons en fin d'année - const weekNumber = index + 1; - - // Déterminer le mois basé sur la majorité des jours de la semaine - // Si la semaine chevauche deux mois, prendre le mois qui contient le plus de jours - const weekMidpoint = new Date(weekStart.getTime() + (3.5 * 24 * 60 * 60 * 1000)); // Milieu de la semaine - let month = getMonth(weekMidpoint); - - // Si c'est une semaine qui chevauche décembre de l'année précédente et janvier de l'année sélectionnée, - // la placer en janvier (mois 0) si elle contient plus de jours de janvier - if (weekStart.getFullYear() < selectedYear && weekEnd.getFullYear() === selectedYear) { - month = 0; // Janvier - } - // Si c'est une semaine qui chevauche décembre et janvier de l'année suivante, - // la placer en décembre (mois 11) si elle contient plus de jours de décembre - else if (weekStart.getFullYear() === selectedYear && weekEnd.getFullYear() > selectedYear) { - month = 11; // Décembre - } - - const participation = getWeekParticipation(weekStart, weekEnd); - - // Debug première et dernières semaines pour vérifier - if (index < 3 || index >= weeks.length - 3) { - console.log(`📅 Semaine ${weekNumber} (index ${index}):`, { - debut: format(weekStart, 'yyyy-MM-dd EEEE', { locale: fr }), - fin: format(weekEnd, 'yyyy-MM-dd EEEE', { locale: fr }), - weekStartYear: weekStart.getFullYear(), - weekEndYear: weekEnd.getFullYear(), - selectedYear, - mois: month + 1, // +1 car getMonth retourne 0-11 - participations: participation.publicities.length - }); - } - - return { - weekStart, - weekEnd, - weekNumber, - month, - ...participation - }; - }); + console.log(`📅 getYearWeeks debug pour ${selectedYear}:`, { + yearStart: format(yearStart, 'yyyy-MM-dd', { locale: fr }), + yearEnd: format(yearEnd, 'yyyy-MM-dd', { locale: fr }), + totalWeeks: limitedWeeks.length + }); + + return limitedWeeks.map((weekStart, index) => { + const weekEnd = endOfWeek(weekStart, { weekStartsOn: 1 }); + const weekNumber = index + 1; + + // SIMPLE: Use week midpoint to determine month + const weekMidpoint = new Date(weekStart.getTime() + (3 * 24 * 60 * 60 * 1000)); + const month = weekMidpoint.getMonth(); + + const participation = getWeekParticipation(weekStart, weekEnd); + + return { + weekStart, + weekEnd, + weekNumber, + month, + ...participation + }; + }); + } catch (error) { + console.error(`❌ Erreur getYearWeeks pour ${selectedYear}:`, error); + return []; // Retourner un tableau vide en cas d'erreur + } }; - const yearWeeks = getYearWeeks(); + // SAFE: Only calculate yearWeeks if we have valid data + const yearWeeks = useMemo(() => { + try { + if (!selectedYear || selectedYear < 1900 || selectedYear > 2100) { + console.warn(`📅 Année invalide ignorée: ${selectedYear}`); + return []; + } + return getYearWeeks(); + } catch (error) { + console.error(`❌ Erreur calcul yearWeeks pour ${selectedYear}:`, error); + return []; + } + }, [selectedYear, publicities]); const handleView = (publicity: PublicityWithRelations) => { setSelectedPublicity(publicity); From 19c41f11c3d73438ae31d3b223be52c09c58a535 Mon Sep 17 00:00:00 2001 From: michaelschal <35957947-michaelschal@users.noreply.replit.com> Date: Thu, 21 Aug 2025 11:22:14 +0000 Subject: [PATCH 2/2] Improve handling of yearly data to correctly process all years Update year calculations to accurately reflect week and month assignments, particularly for transitional periods between years, and enhance API logging for debugging. Replit-Commit-Author: Agent Replit-Commit-Session-Id: 0ec86cdf-a5be-4b0e-84a3-07b926f5cc80 Replit-Commit-Checkpoint-Type: full_checkpoint Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/1957c339-2757-4d1f-8e92-e9f71a1ce58e/0ec86cdf-a5be-4b0e-84a3-07b926f5cc80/ZJYssQp --- client/src/pages/Publicities.tsx | 86 ++++++++++++-------------------- cookies.txt | 2 +- server/routes.ts | 8 ++- 3 files changed, 40 insertions(+), 56 deletions(-) diff --git a/client/src/pages/Publicities.tsx b/client/src/pages/Publicities.tsx index f8f9986..2d8f827 100644 --- a/client/src/pages/Publicities.tsx +++ b/client/src/pages/Publicities.tsx @@ -1,4 +1,4 @@ -import { useState, useMemo } from "react"; +import { useState } from "react"; import { useQuery, useMutation, useQueryClient } from "@tanstack/react-query"; import { Plus, Calendar, Edit, Trash2, Eye, Filter, Grid, List } from "lucide-react"; import { Button } from "@/components/ui/button"; @@ -166,62 +166,40 @@ export default function Publicities() { // Year overview - Generate weeks for the selected year const getYearWeeks = () => { - try { - // SAFE: Use simple Date constructor to avoid issues with specific years - const yearStart = new Date(selectedYear, 0, 1); // 1er janvier - const yearEnd = new Date(selectedYear, 11, 31); // 31 décembre + const yearStart = startOfYear(new Date(selectedYear, 0, 1)); + const yearEnd = endOfYear(new Date(selectedYear, 11, 31)); + + const weeks = eachWeekOfInterval( + { start: yearStart, end: yearEnd }, + { weekStartsOn: 1 } + ); + + return weeks.map((weekStart, index) => { + const weekEnd = endOfWeek(weekStart, { weekStartsOn: 1 }); + const weekNumber = index + 1; - const weeks = eachWeekOfInterval( - { start: yearStart, end: yearEnd }, - { weekStartsOn: 1 } - ); - - // SAFE: Limit the number of weeks to prevent performance issues - const limitedWeeks = weeks.slice(0, 54); // Maximum 54 semaines par année - - console.log(`📅 getYearWeeks debug pour ${selectedYear}:`, { - yearStart: format(yearStart, 'yyyy-MM-dd', { locale: fr }), - yearEnd: format(yearEnd, 'yyyy-MM-dd', { locale: fr }), - totalWeeks: limitedWeeks.length - }); - - return limitedWeeks.map((weekStart, index) => { - const weekEnd = endOfWeek(weekStart, { weekStartsOn: 1 }); - const weekNumber = index + 1; - - // SIMPLE: Use week midpoint to determine month - const weekMidpoint = new Date(weekStart.getTime() + (3 * 24 * 60 * 60 * 1000)); - const month = weekMidpoint.getMonth(); - - const participation = getWeekParticipation(weekStart, weekEnd); - - return { - weekStart, - weekEnd, - weekNumber, - month, - ...participation - }; - }); - } catch (error) { - console.error(`❌ Erreur getYearWeeks pour ${selectedYear}:`, error); - return []; // Retourner un tableau vide en cas d'erreur - } + const weekMidpoint = new Date(weekStart.getTime() + (3.5 * 24 * 60 * 60 * 1000)); + let month = getMonth(weekMidpoint); + + if (weekStart.getFullYear() < selectedYear && weekEnd.getFullYear() === selectedYear) { + month = 0; // Janvier + } else if (weekStart.getFullYear() === selectedYear && weekEnd.getFullYear() > selectedYear) { + month = 11; // Décembre + } + + const participation = getWeekParticipation(weekStart, weekEnd); + + return { + weekStart, + weekEnd, + weekNumber, + month, + ...participation + }; + }); }; - // SAFE: Only calculate yearWeeks if we have valid data - const yearWeeks = useMemo(() => { - try { - if (!selectedYear || selectedYear < 1900 || selectedYear > 2100) { - console.warn(`📅 Année invalide ignorée: ${selectedYear}`); - return []; - } - return getYearWeeks(); - } catch (error) { - console.error(`❌ Erreur calcul yearWeeks pour ${selectedYear}:`, error); - return []; - } - }, [selectedYear, publicities]); + const yearWeeks = getYearWeeks(); const handleView = (publicity: PublicityWithRelations) => { setSelectedPublicity(publicity); diff --git a/cookies.txt b/cookies.txt index cbb1d22..8e393a6 100644 --- a/cookies.txt +++ b/cookies.txt @@ -2,4 +2,4 @@ # https://curl.se/docs/http-cookies.html # This file was generated by libcurl! Edit at your own risk. -#HttpOnly_localhost FALSE / FALSE 1755606176 connect.sid s%3AaJqqQRoUNbNkfzL7lhGGCPnIthRcKZfm.4pgA1BroGpVAnDGDfxkttSFwdekQMijVK6pPdmJ3KSY +#HttpOnly_localhost FALSE / FALSE 1755861696 connect.sid s%3AI3ww2VSYnJCTbvhTLFfsKWucSCgLEXnH.Q%2FZB%2FqjpNIGDgcSjAp4O%2BHP03Qrmj71qIb8njdhnrK4 diff --git a/server/routes.ts b/server/routes.ts index 87fbf0b..1e1d879 100644 --- a/server/routes.ts +++ b/server/routes.ts @@ -2224,6 +2224,9 @@ export async function registerRoutes(app: Express): Promise { const { year, storeId } = req.query; const filterYear = year ? parseInt(year as string) : undefined; + // DEBUG: Log pour identifier le problème avec 2025 + console.log(`📋 API PUBLICITIES REQUEST:`, { year, filterYear, storeId, userRole: user.role }); + let groupIds: number[] | undefined; if (user.role === 'admin') { @@ -2234,10 +2237,13 @@ export async function registerRoutes(app: Express): Promise { groupIds = user.userGroups.map(ug => ug.groupId); } + console.log(`📋 CALLING storage.getPublicities:`, { filterYear, groupIds }); const publicities = await storage.getPublicities(filterYear, groupIds); + console.log(`📋 PUBLICITIES RETURNED:`, { count: publicities.length }); + res.json(publicities); } catch (error) { - console.error("Error fetching publicities:", error); + console.error(`❌ ERROR fetching publicities for year ${year}:`, error); res.status(500).json({ message: "Failed to fetch publicities", error: (error as Error).message }); } });