diff --git a/MtdrSpring/backend/src/main/frontend/src/components/dashboard/EfficiencyChart.jsx b/MtdrSpring/backend/src/main/frontend/src/components/dashboard/EfficiencyChart.jsx
index 2ae103276..f64423c73 100644
--- a/MtdrSpring/backend/src/main/frontend/src/components/dashboard/EfficiencyChart.jsx
+++ b/MtdrSpring/backend/src/main/frontend/src/components/dashboard/EfficiencyChart.jsx
@@ -36,7 +36,7 @@ const CustomLegend = ({ payload }) => (
);
-export default function EfficiencyChart({ sprintId, devId }) {
+export default function EfficiencyChart({ sprintId }) {
const { project } = useProject();
const [data, setData] = useState(null);
const [loading, setLoading] = useState(true);
@@ -54,11 +54,10 @@ export default function EfficiencyChart({ sprintId, devId }) {
if (loading) return
{error}
; if (!data) returnSelect a sprint to view data.
; - const visibleMembers = (data.members || []).filter((m) => !devId || m.userId === devId); - if (!visibleMembers.length) returnNo completed tasks in this sprint.
; + if (!data.members?.length) returnNo completed tasks in this sprint.
; const handleExport = () => { - const rows = visibleMembers.map((m) => ({ + const rows = data.members.map((m) => ({ Miembro: m.fullName, 'SP Completados': m.spCompleted, 'Horas Reales': parseFloat(m.actualHours.toFixed(1)), @@ -66,7 +65,7 @@ export default function EfficiencyChart({ sprintId, devId }) { exportCsv(rows, `efficiency-sprint-${sprintId}`); }; - const chartData = visibleMembers.map((m) => ({ + const chartData = data.members.map((m) => ({ name: m.fullName.split(' ')[0], 'SP done': m.spCompleted, 'Hours': parseFloat(m.actualHours.toFixed(1)), diff --git a/MtdrSpring/backend/src/main/frontend/src/components/dashboard/HoursByDeveloperChart.jsx b/MtdrSpring/backend/src/main/frontend/src/components/dashboard/HoursByDeveloperChart.jsx index 8ac70a616..a77701585 100644 --- a/MtdrSpring/backend/src/main/frontend/src/components/dashboard/HoursByDeveloperChart.jsx +++ b/MtdrSpring/backend/src/main/frontend/src/components/dashboard/HoursByDeveloperChart.jsx @@ -41,7 +41,7 @@ const CustomLegend = ({ payload }) => ( ); -export default function HoursByDeveloperChart({ sprints, selectedSprintId, devId }) { +export default function HoursByDeveloperChart({ sprints, selectedSprintId }) { const { project } = useProject(); const [chartData, setChartData] = useState([]); const [members, setMembers] = useState([]); @@ -78,11 +78,10 @@ export default function HoursByDeveloperChart({ sprints, selectedSprintId, devId }); }); - let candidateIds = Object.entries(totals) + const top8ids = Object.entries(totals) .sort((a, b) => b[1] - a[1]) + .slice(0, 8) .map(([id]) => Number(id)); - if (devId) candidateIds = candidateIds.filter((id) => id === devId); - const top8ids = candidateIds.slice(0, 8); const data = selected.map((s, i) => { const row = { sprint: s.sprintName }; @@ -99,7 +98,7 @@ export default function HoursByDeveloperChart({ sprints, selectedSprintId, devId }) .catch((err) => setError(err.message)) .finally(() => setLoading(false)); - }, [project.id, sprints, selectedSprintId, devId]); + }, [project.id, sprints, selectedSprintId]); if (loading) return{error}
; diff --git a/MtdrSpring/backend/src/main/frontend/src/components/dashboard/HoursPerMember.jsx b/MtdrSpring/backend/src/main/frontend/src/components/dashboard/HoursPerMember.jsx index d24ad7cf1..bfd131bca 100644 --- a/MtdrSpring/backend/src/main/frontend/src/components/dashboard/HoursPerMember.jsx +++ b/MtdrSpring/backend/src/main/frontend/src/components/dashboard/HoursPerMember.jsx @@ -10,7 +10,7 @@ function initials(name) { return name?.split(' ').map((n) => n[0]).slice(0, 2).join('') ?? '?'; } -export default function HoursPerMember({ sprintId, devId }) { +export default function HoursPerMember({ sprintId }) { const { project } = useProject(); const [data, setData] = useState(null); const [loading, setLoading] = useState(true); @@ -30,8 +30,7 @@ export default function HoursPerMember({ sprintId, devId }) { if (!data) returnSelect a sprint to view data.
; if (!data.members?.length) returnNo hours logged yet.
; - const filtered = devId ? data.members.filter((m) => m.userId === devId) : data.members; - const sorted = [...filtered].sort((a, b) => b.actualHours - a.actualHours); + const sorted = [...data.members].sort((a, b) => b.actualHours - a.actualHours); const max = sorted[0]?.actualHours || 1; return ( diff --git a/MtdrSpring/backend/src/main/frontend/src/components/dashboard/KpiDevStats.jsx b/MtdrSpring/backend/src/main/frontend/src/components/dashboard/KpiDevStats.jsx index d793034c9..a2cd97fa3 100644 --- a/MtdrSpring/backend/src/main/frontend/src/components/dashboard/KpiDevStats.jsx +++ b/MtdrSpring/backend/src/main/frontend/src/components/dashboard/KpiDevStats.jsx @@ -23,7 +23,7 @@ function MiniKpi({ label, value, sub }) { ); } -export default function KpiDevStats({ sprintId, devId }) { +export default function KpiDevStats({ sprintId }) { const { project } = useProject(); const [effData, setEffData] = useState(null); const [wkData, setWkData] = useState(null); @@ -51,8 +51,8 @@ export default function KpiDevStats({ sprintId, devId }) { } if (error) return{error}
; - const effMembers = (effData?.members || []).filter((m) => !devId || m.userId === devId); - const wkMembers = (wkData || []).filter((m) => !devId || m.userId === devId); + const effMembers = effData?.members || []; + const wkMembers = wkData || []; const hoursArr = effMembers.map((m) => m.actualHours || 0); const tasksArr = wkMembers.map((m) => m.taskCounts?.DONE || 0); diff --git a/MtdrSpring/backend/src/main/frontend/src/components/dashboard/TasksByDeveloperChart.jsx b/MtdrSpring/backend/src/main/frontend/src/components/dashboard/TasksByDeveloperChart.jsx index b3ba8b79e..18cc204ba 100644 --- a/MtdrSpring/backend/src/main/frontend/src/components/dashboard/TasksByDeveloperChart.jsx +++ b/MtdrSpring/backend/src/main/frontend/src/components/dashboard/TasksByDeveloperChart.jsx @@ -41,7 +41,7 @@ const CustomLegend = ({ payload }) => ( ); -export default function TasksByDeveloperChart({ sprints, selectedSprintId, devId }) { +export default function TasksByDeveloperChart({ sprints, selectedSprintId }) { const { project } = useProject(); const [chartData, setChartData] = useState([]); const [members, setMembers] = useState([]); @@ -78,11 +78,10 @@ export default function TasksByDeveloperChart({ sprints, selectedSprintId, devId }); }); - let candidateIds = Object.entries(totals) + const top8ids = Object.entries(totals) .sort((a, b) => b[1] - a[1]) + .slice(0, 8) .map(([id]) => Number(id)); - if (devId) candidateIds = candidateIds.filter((id) => id === devId); - const top8ids = candidateIds.slice(0, 8); const data = selected.map((s, i) => { const row = { sprint: s.sprintName }; @@ -99,7 +98,7 @@ export default function TasksByDeveloperChart({ sprints, selectedSprintId, devId }) .catch((err) => setError(err.message)) .finally(() => setLoading(false)); - }, [project.id, sprints, selectedSprintId, devId]); + }, [project.id, sprints, selectedSprintId]); if (loading) return{error}
; diff --git a/MtdrSpring/backend/src/main/frontend/src/components/dashboard/WorkloadTable.jsx b/MtdrSpring/backend/src/main/frontend/src/components/dashboard/WorkloadTable.jsx index 4992f9211..1957de9ba 100644 --- a/MtdrSpring/backend/src/main/frontend/src/components/dashboard/WorkloadTable.jsx +++ b/MtdrSpring/backend/src/main/frontend/src/components/dashboard/WorkloadTable.jsx @@ -8,7 +8,7 @@ const STATUSES = ['TODO', 'IN_PROGRESS', 'BLOCKED', 'DONE']; function Skeleton() { return ; } -export default function WorkloadTable({ sprintId, devId }) { +export default function WorkloadTable({ sprintId }) { const { project } = useProject(); const [data, setData] = useState([]); const [loading, setLoading] = useState(true); @@ -26,8 +26,7 @@ export default function WorkloadTable({ sprintId, devId }) { if (loading) return{error}
; - const visibleData = data.filter((m) => !devId || m.userId === devId); - if (!visibleData.length) returnSelect a sprint to view data.
; + if (!data.length) returnSelect a sprint to view data.
; const getValue = (member, status) => mode === 'tasks' @@ -38,7 +37,7 @@ export default function WorkloadTable({ sprintId, devId }) { STATUSES.reduce((sum, s) => sum + getValue(member, s), 0); const handleExport = () => { - const rows = visibleData.map((m) => ({ + const rows = data.map((m) => ({ Miembro: m.fullName, 'Tasks TODO': m.taskCounts?.TODO ?? 0, 'Tasks IN_PROGRESS': m.taskCounts?.IN_PROGRESS ?? 0, @@ -87,8 +86,8 @@ export default function WorkloadTable({ sprintId, devId }) { - {visibleData.map((member, i) => ( -{project.projectName}
-