diff --git a/src/views/DashboardView.vue b/src/views/DashboardView.vue index 86200b0..b8ec9a9 100644 --- a/src/views/DashboardView.vue +++ b/src/views/DashboardView.vue @@ -13,7 +13,7 @@ import HuDrafts from '@/components/HuDrafts.vue' import AiProjectChat from '@/components/AiProjectChat.vue' import PrioritizerCard from '@/components/PrioritizerCard.vue' import SCurveChart from '@/components/SCurveChart.vue' -import { generateReportDocx } from '@/services/report-export' +// import { generateReportDocx } from '@/services/report-export' // Sidecar Python pending import { analyzeProjectEpics, analyzeProjectHUs, saveEpicDrafts, saveHUDrafts } from '@/services/project-analyzer' import { getDrafts, deleteDraft, type HuDraftRecord } from '@/services/hu-drafts-db' import { kappa } from '@/services/kappa-api' @@ -411,57 +411,7 @@ async function discardDraft(id: string) { await loadDrafts() } -// ─── Export report ────────────────────────────────── -async function exportReport() { - if (!project.value) return - showNotif('info', 'Generando informe DOCX...') - try { - const doneCount = workItems.userStories.filter(hu => { - const s = String(hu.status ?? '').toLowerCase() - return ['done', 'completed', 'closed', 'finalizado', '5', '6', '7', 'qa-client', 'ready to deploy'].includes(s) - }).length - - const blob = await generateReportDocx({ - projectId: project.value.id, - projectName: project.value.name || '', - epicCount: workItems.totalEpics, - huCount: workItems.totalHUs, - inProgressCount: workItems.inProgressHUs, - doneCount, - blockedCount: workItems.userStories.filter(hu => { - const s = String(hu.status ?? '').toLowerCase() - return ['blocked', 'bloqueado'].includes(s) - }).length, - epics: workItems.epics, - hus: workItems.userStories, - totalSessions: workItems.totalSessions, - metrics: { - totalSpPlanned: workItems.userStories.reduce((s, h) => s + (h.story_points || 0), 0), - totalSpCompleted: workItems.userStories.filter(hu => { - const s = String(hu.status ?? '').toLowerCase() - return ['done', 'completed', 'closed', 'finalizado', '5', '6', '7', 'qa-client', 'ready to deploy'].includes(s) - }).reduce((s, h) => s + (h.story_points || 0), 0), - velocityPerWeek: 0, - spi: 1, - estimatedEndDate: '', - clientBlockedHours: 0, - totalBlockedHours: 0, - }, - generatedAt: new Date().toLocaleDateString('es-CO', { year: 'numeric', month: 'long', day: 'numeric' }), - }) - - const url = URL.createObjectURL(blob) - const a = document.createElement('a') - a.href = url - a.download = `informe_${project.value.name?.replace(/[^a-z0-9]/gi, '_').toLowerCase() || 'proyecto'}.docx` - a.click() - URL.revokeObjectURL(url) - showNotif('success', 'Informe descargado') - } catch (e: any) { - console.error('[Alpha] Export error:', e) - showNotif('error', `Error al generar informe: ${e.message}`) - } -} +// ─── Export report (pending Python sidecar) ──────── // ─── Project analysis — Two-phase ───────────────────────── const phase = ref<'idle' | 'epics' | 'hus' | 'done'>('idle') @@ -652,56 +602,57 @@ const statusLabel = (status: unknown) => {
{{ project.key }} - +
- -
+ +
- {{ t('dashboard.epics') }} · {{ t('dashboard.hus') }} · {{ t('dashboard.inProgress') }} - + {{ t('dashboard.epics') }} + - -
- {{ workItems.totalEpics }} - {{ t('dashboard.epics') }} -
-
- {{ workItems.totalHUs }} - HUs -
-
- {{ workItems.inProgressHUs }} - En prog. -
-
-
-
+ +
{{ workItems.totalEpics }}
+

{{ t('dashboard.epicsSubtitle') }}

+
+ + + + + {{ t('dashboard.hus') }} + + + +
{{ workItems.totalHUs }}
+

{{ t('dashboard.husSubtitle') }}

+
+
+ + + + {{ t('dashboard.inProgress') }} + + + +
{{ workItems.inProgressHUs }}
+

{{ t('dashboard.activeHus') }}

- QA - + QA + -
{{ qaMetrics.total }}
-

Planes QA · {{ qaMetrics.totalCases }} casos

-
+
{{ qaMetrics.total }}
+

Planes QA · {{ qaMetrics.totalCases }} casos

+
{{ qaMetrics.auto }} auto {{ qaMetrics.parcial }} parcial {{ qaMetrics.manual }} manual @@ -711,22 +662,12 @@ const statusLabel = (status: unknown) => { - {{ t('dashboard.sessions') }} - + {{ t('dashboard.sessions') }} + -
{{ workItems.totalSessions }}
-

{{ t('dashboard.sessionsSubtitle') }}

-
-
- - - - Curva S - - - - +
{{ workItems.totalSessions }}
+

{{ t('dashboard.sessionsSubtitle') }}