Volver a la wiki

UI del preview de import Visio v2 — categorías por shape y renombrado inline

Descripción

Segunda entrega (PR 2/3) del plan de modernización del import de Visio, aprobado en s220.

El usuario ahora accede a una interfaz visual completa para importar y personalizar stencils desde ficheros modernos Visio (.vsdx / .vsd) sin abandone la página: el modal muestra progreso en tiempo real (spinner + polling asíncrono), previsualizaciones de cada shape, edición inline de nombres y asignación de categorías por shape (en lugar de una sola categoría global).

Lo que cambia

Frontend (UI)

Modal de import mejorado (static/js/editor/import_export.js):

Estilos (static/css/components.css):

Internacionalización:

Backend (API)

Endpoint POST /api/racks/visio/confirm (racks/api/library_files.py):

Fix inmediato: reset del input Visio tras análisis, para permitir reelegir el mismo fichero si el polling fue abortado (cierre modal).

Tests

test_confirm_per_shape_categories (tests/api/test_visio_import_v2.py):

Arquitectura del flujo

Usuario sube .vsdx
    ↓
POST /api/visio/analyze (formData)
    ↓
  Backend inicia worker async → responde { session_id, status="processing", ... }
    ↓
Frontend renderiza spinner + inicia polling
    ↓
GET /api/racks/visio/session/{id} cada 2.5s
    ↓
Cuando status=done, renderiza grid con previews + inputs editable
    ↓
Usuario edita nombres y categorías, confirma
    ↓
POST /api/racks/visio/confirm (masters con category por item)
    ↓
Backend crea stencils en sus carpetas, responde { imported: [..., {id, name, category, ...}] }
    ↓
Frontend agrupa por category y añade al panel sin recargar

Límites conocidos

Cambios en dependencias

Ninguno. JavaScript vanilla (como el resto del editor), CSS puro, Django i18n estándar.

Impacto usuario

✅ El botón de importar ahora soporta .vsdx y .vsd (formatos modernos de Visio de Microsoft Office). ✅ Progreso visual mientras el servidor convierte ficheros grandes (spinner + estimación de tiempo). ✅ Previsualización de shapes con miniaturas extraídas automáticamente. ✅ Renombrado inline antes de importar (sin recargar la página). ✅ Categoría por shape — cada stencil puede ir a su propia carpeta, o dejar vacío para usar la categoría general.

Notas de desarrollo

Véase también

Subir