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) => {
{{ t('dashboard.epicsSubtitle') }}
+{{ t('dashboard.husSubtitle') }}
+{{ t('dashboard.activeHus') }}
Planes QA · {{ qaMetrics.totalCases }} casos
-Planes QA · {{ qaMetrics.totalCases }} casos
+{{ t('dashboard.sessionsSubtitle') }}
-{{ t('dashboard.sessionsSubtitle') }}