feat: version 2.18.0 -- Panel: detalle de cada tarjeta en popup
Las 7 tarjetas abren su lista en un DetailPopup (proyectos o actividades segun la tarjeta); el bloque "Mis actividades" queda fijo. Nuevas listas de proximos a vencer y para hoy; "Para hoy" deja de contar eliminadas/cancelados. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -14,23 +14,31 @@ function memberFilterFor(currentUser) {
|
||||
|
||||
export const getSummary = asyncHandler(async (req, res) => {
|
||||
const memberUserId = memberFilterFor(req.currentUser);
|
||||
const [kpis, myActivities, byStatus, overdueProjects, activeProjects, pendingActivities, overdueActivities] = await Promise.all([
|
||||
const [kpis, myActivities, byStatus, overdueProjects, activeProjects, dueSoonProjects,
|
||||
pendingActivities, overdueActivities, todayActivities] = await Promise.all([
|
||||
repo.summary(memberUserId),
|
||||
repo.myPendingActivities(req.currentUser.id, memberUserId),
|
||||
repo.projectsByStatus(memberUserId),
|
||||
repo.overdueProjectsList(memberUserId),
|
||||
repo.activeProjectsList(memberUserId),
|
||||
repo.pendingActivitiesList(memberUserId),
|
||||
repo.pendingActivitiesList(memberUserId, true),
|
||||
repo.dueSoonProjectsList(memberUserId),
|
||||
repo.pendingActivitiesList(memberUserId, 'all'),
|
||||
repo.pendingActivitiesList(memberUserId, 'overdue'),
|
||||
repo.pendingActivitiesList(memberUserId, 'today'),
|
||||
]);
|
||||
const withProjectDue = (p) => ({ ...p, dueStatus: dueStatus(p.estimated_end_date) });
|
||||
const withActivityDue = (a) => ({ ...a, dueStatus: dueStatus(a.due_date) });
|
||||
ok(res, {
|
||||
kpis,
|
||||
myActivities: myActivities.map((a) => ({ ...a, dueStatus: dueStatus(a.due_date) })),
|
||||
myActivities: myActivities.map(withActivityDue),
|
||||
projectsByStatus: byStatus,
|
||||
overdueProjects,
|
||||
activeProjects: activeProjects.map((p) => ({ ...p, dueStatus: dueStatus(p.estimated_end_date) })),
|
||||
pendingActivities: pendingActivities.map((a) => ({ ...a, dueStatus: dueStatus(a.due_date) })),
|
||||
// Detalle de cada tarjeta del Panel (popup al hacer clic).
|
||||
overdueProjects: overdueProjects.map((p) => ({ ...p, dueStatus: 'overdue' })),
|
||||
activeProjects: activeProjects.map(withProjectDue),
|
||||
dueSoonProjects: dueSoonProjects.map(withProjectDue),
|
||||
pendingActivities: pendingActivities.map(withActivityDue),
|
||||
overdueActivities: overdueActivities.map((a) => ({ ...a, dueStatus: 'overdue' })),
|
||||
todayActivities: todayActivities.map(withActivityDue),
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user