mirror of
https://github.com/R0m1k3/LogiFlow.git
synced 2026-10-20 13:38:15 +02:00
Merge pull request #249 from R0m1k3/1.1
Fix task due date not saving correctly to a future date
This commit is contained in:
4 files changed
+93
-2
No files matched your search
Binary file not shown.
|
After Width: | Height: | Size: 330 KiB |
@@ -134,7 +134,12 @@ export default function TaskForm({ task, onClose }: TaskFormProps) {
|
|||||||
createdBy: user?.id,
|
createdBy: user?.id,
|
||||||
dueDate: data.dueDate || null
|
dueDate: data.dueDate || null
|
||||||
};
|
};
|
||||||
console.log('🚀 Creating task with data:', taskData);
|
console.log('🚀 Creating task with data:', {
|
||||||
|
...taskData,
|
||||||
|
dueDate: taskData.dueDate,
|
||||||
|
dueDateType: typeof taskData.dueDate,
|
||||||
|
dueDateISO: taskData.dueDate?.toISOString?.()
|
||||||
|
});
|
||||||
return apiRequest("/api/tasks", "POST", taskData);
|
return apiRequest("/api/tasks", "POST", taskData);
|
||||||
},
|
},
|
||||||
onSuccess: () => {
|
onSuccess: () => {
|
||||||
@@ -156,7 +161,16 @@ export default function TaskForm({ task, onClose }: TaskFormProps) {
|
|||||||
});
|
});
|
||||||
|
|
||||||
const updateMutation = useMutation({
|
const updateMutation = useMutation({
|
||||||
mutationFn: (data: any) => apiRequest(`/api/tasks/${task?.id}`, "PUT", data),
|
mutationFn: (data: any) => {
|
||||||
|
console.log('🔄 Updating task with data:', {
|
||||||
|
taskId: task?.id,
|
||||||
|
data,
|
||||||
|
dueDate: data.dueDate,
|
||||||
|
dueDateType: typeof data.dueDate,
|
||||||
|
dueDateISO: data.dueDate?.toISOString?.()
|
||||||
|
});
|
||||||
|
return apiRequest(`/api/tasks/${task?.id}`, "PUT", data);
|
||||||
|
},
|
||||||
onSuccess: () => {
|
onSuccess: () => {
|
||||||
queryClient.invalidateQueries({ queryKey: ["/api/tasks"] });
|
queryClient.invalidateQueries({ queryKey: ["/api/tasks"] });
|
||||||
toast({
|
toast({
|
||||||
@@ -176,6 +190,17 @@ export default function TaskForm({ task, onClose }: TaskFormProps) {
|
|||||||
});
|
});
|
||||||
|
|
||||||
const onSubmit = (data: TaskFormData) => {
|
const onSubmit = (data: TaskFormData) => {
|
||||||
|
// Debug: log des données de soumission
|
||||||
|
console.log('📝 TaskForm onSubmit:', {
|
||||||
|
isEdit: !!task,
|
||||||
|
taskId: task?.id,
|
||||||
|
formData: data,
|
||||||
|
dueDate: data.dueDate,
|
||||||
|
dueDateType: typeof data.dueDate,
|
||||||
|
dueDateISO: data.dueDate?.toISOString(),
|
||||||
|
localSelectedStoreId
|
||||||
|
});
|
||||||
|
|
||||||
// Vérifier qu'un magasin est auto-sélectionné
|
// Vérifier qu'un magasin est auto-sélectionné
|
||||||
if (!localSelectedStoreId) {
|
if (!localSelectedStoreId) {
|
||||||
toast({
|
toast({
|
||||||
@@ -196,9 +221,11 @@ export default function TaskForm({ task, onClose }: TaskFormProps) {
|
|||||||
assignedTo: data.assignedTo,
|
assignedTo: data.assignedTo,
|
||||||
dueDate: data.dueDate || null,
|
dueDate: data.dueDate || null,
|
||||||
};
|
};
|
||||||
|
console.log('🔄 Update task submitData:', submitData);
|
||||||
updateMutation.mutate(submitData);
|
updateMutation.mutate(submitData);
|
||||||
} else {
|
} else {
|
||||||
// Création d'une nouvelle tâche - le groupId sera ajouté dans createMutation
|
// Création d'une nouvelle tâche - le groupId sera ajouté dans createMutation
|
||||||
|
console.log('➕ Create task data:', data);
|
||||||
createMutation.mutate(data);
|
createMutation.mutate(data);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1390,6 +1390,14 @@ export async function registerRoutes(app: Express): Promise<Server> {
|
|||||||
createdBy: user.id,
|
createdBy: user.id,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
console.log('📝 POST /api/tasks - Received data:', {
|
||||||
|
originalBody: req.body,
|
||||||
|
processedData: data,
|
||||||
|
dueDate: data.dueDate,
|
||||||
|
dueDateType: typeof data.dueDate,
|
||||||
|
dueDateValue: data.dueDate
|
||||||
|
});
|
||||||
|
|
||||||
// Check if user has access to the group
|
// Check if user has access to the group
|
||||||
if (user.role !== 'admin') {
|
if (user.role !== 'admin') {
|
||||||
const userGroupIds = user.userGroups.map(ug => ug.groupId);
|
const userGroupIds = user.userGroups.map(ug => ug.groupId);
|
||||||
@@ -1399,6 +1407,12 @@ export async function registerRoutes(app: Express): Promise<Server> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const task = await storage.createTask(data);
|
const task = await storage.createTask(data);
|
||||||
|
console.log('✅ Task created:', {
|
||||||
|
id: task.id,
|
||||||
|
title: task.title,
|
||||||
|
dueDate: task.dueDate,
|
||||||
|
dueDateType: typeof task.dueDate
|
||||||
|
});
|
||||||
res.json(task);
|
res.json(task);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error("Error creating task:", error);
|
console.error("Error creating task:", error);
|
||||||
@@ -1420,6 +1434,19 @@ export async function registerRoutes(app: Express): Promise<Server> {
|
|||||||
return res.status(404).json({ message: "Task not found" });
|
return res.status(404).json({ message: "Task not found" });
|
||||||
}
|
}
|
||||||
|
|
||||||
|
console.log('🔄 PUT /api/tasks/:id - Received data:', {
|
||||||
|
taskId: id,
|
||||||
|
originalTask: {
|
||||||
|
id: task.id,
|
||||||
|
title: task.title,
|
||||||
|
dueDate: task.dueDate,
|
||||||
|
dueDateType: typeof task.dueDate
|
||||||
|
},
|
||||||
|
updateBody: req.body,
|
||||||
|
newDueDate: req.body.dueDate,
|
||||||
|
newDueDateType: typeof req.body.dueDate
|
||||||
|
});
|
||||||
|
|
||||||
// Check permissions
|
// Check permissions
|
||||||
if (user.role !== 'admin') {
|
if (user.role !== 'admin') {
|
||||||
const userGroupIds = user.userGroups.map(ug => ug.groupId);
|
const userGroupIds = user.userGroups.map(ug => ug.groupId);
|
||||||
@@ -1429,6 +1456,12 @@ export async function registerRoutes(app: Express): Promise<Server> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const updatedTask = await storage.updateTask(id, req.body);
|
const updatedTask = await storage.updateTask(id, req.body);
|
||||||
|
console.log('✅ Task updated:', {
|
||||||
|
id: updatedTask.id,
|
||||||
|
title: updatedTask.title,
|
||||||
|
dueDate: updatedTask.dueDate,
|
||||||
|
dueDateType: typeof updatedTask.dueDate
|
||||||
|
});
|
||||||
res.json(updatedTask);
|
res.json(updatedTask);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error("Error updating task:", error);
|
console.error("Error updating task:", error);
|
||||||
|
|||||||
@@ -1622,16 +1622,47 @@ export class DatabaseStorage implements IStorage {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async createTask(taskData: InsertTask): Promise<Task> {
|
async createTask(taskData: InsertTask): Promise<Task> {
|
||||||
|
console.log('💾 DatabaseStorage.createTask - Input:', {
|
||||||
|
taskData,
|
||||||
|
dueDate: taskData.dueDate,
|
||||||
|
dueDateType: typeof taskData.dueDate,
|
||||||
|
dueDateISO: taskData.dueDate instanceof Date ? taskData.dueDate.toISOString() : taskData.dueDate
|
||||||
|
});
|
||||||
|
|
||||||
const [task] = await db.insert(tasks).values(taskData).returning();
|
const [task] = await db.insert(tasks).values(taskData).returning();
|
||||||
|
|
||||||
|
console.log('💾 DatabaseStorage.createTask - Result:', {
|
||||||
|
taskId: task.id,
|
||||||
|
title: task.title,
|
||||||
|
dueDate: task.dueDate,
|
||||||
|
dueDateType: typeof task.dueDate
|
||||||
|
});
|
||||||
|
|
||||||
return task;
|
return task;
|
||||||
}
|
}
|
||||||
|
|
||||||
async updateTask(id: number, taskData: Partial<InsertTask>): Promise<Task> {
|
async updateTask(id: number, taskData: Partial<InsertTask>): Promise<Task> {
|
||||||
|
console.log('💾 DatabaseStorage.updateTask - Input:', {
|
||||||
|
taskId: id,
|
||||||
|
taskData,
|
||||||
|
dueDate: taskData.dueDate,
|
||||||
|
dueDateType: typeof taskData.dueDate,
|
||||||
|
dueDateISO: taskData.dueDate instanceof Date ? taskData.dueDate.toISOString() : taskData.dueDate
|
||||||
|
});
|
||||||
|
|
||||||
const [task] = await db
|
const [task] = await db
|
||||||
.update(tasks)
|
.update(tasks)
|
||||||
.set({ ...taskData, updatedAt: new Date() })
|
.set({ ...taskData, updatedAt: new Date() })
|
||||||
.where(eq(tasks.id, id))
|
.where(eq(tasks.id, id))
|
||||||
.returning();
|
.returning();
|
||||||
|
|
||||||
|
console.log('💾 DatabaseStorage.updateTask - Result:', {
|
||||||
|
taskId: task.id,
|
||||||
|
title: task.title,
|
||||||
|
dueDate: task.dueDate,
|
||||||
|
dueDateType: typeof task.dueDate
|
||||||
|
});
|
||||||
|
|
||||||
return task;
|
return task;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user