El informe final del restore agrupa por bloques de producto: creado, actualizado, omitido (v1.77.0)
Valor para el usuario
Hasta ahora, el informe que aparecía al terminar una restauración era una tabla de ~30 filas técnicas — una por cada tipo de dato interno (monitoring_targets, sla_policies, port_connections…) — que “informaba poco y mal” (petición de Edu). Desde v1.77.0 esas filas se agrupan en los MISMOS bloques del árbol que ya usan el diálogo de creación (v1.74.0) y el modal de restauración (v1.76.0): Racks & equipos, Mapas/Filas/Salas, Monitoring, Fichas (Wireless/UPS/DSM), Digital Signage, Observatory/ITSM, Terminal, Cables y Catálogo — con tres cifras por bloque: creado, actualizado y omitido. Arriba, una única frase de veredicto resume el resultado, adaptada al modo elegido (añadir vs. actualizar, ver [[feature—backup-restore—modo-actualizar-v1-75-0]]) y al desenlace (todo aplicado, algo se quedó fuera, o hay anomalías). El detalle fino por tipo de elemento solo se despliega si de verdad algo quedó fuera — con un restore limpio no hay nada que desplegar.
Cuarta y última pieza de la ventana del task #236 (grill del 21-08). Con esto queda entregado el ciclo completo: crear eligiendo qué viaja ([[feature—backup-restore—creacion-selectiva-v1-74-0]]) → restaurar viendo el mismo árbol ([[feature—backup-restore—restauracion-arbol-v1-76-0]]) → actualizar sin duplicar ([[feature—backup-restore—modo-actualizar-v1-75-0]]) → informe claro (esta pieza).
Cómo usarla
- Tras aplicar una restauración (modo añadir o actualizar), se abre el modal de informe.
- La tabla principal muestra un bloque por cada sección del árbol de producto, con las columnas In backup / Created / Updated / Skipped-existed — solo se listan los bloques con contenido esperado (
expected > 0). - Arriba, una frase de veredicto: completo (todo aplicado), con omitidos (parte se quedó fuera por selección del usuario o porque el modo añadir no machaca lo existente), o con anomalías (se aplicó más de lo que la maleta declaraba).
- Si algún bloque tuvo elementos omitidos, o hubo anomalías, aparece un desplegable “Details by item type” con el desglose fino por tipo de dato (el nivel de detalle que antes era la única vista).
- Cerrar el informe recarga la página.
Implementación
static/js/base.js(openReportModal()): nueva constanteBLOCKS— 9 grupos que mapean las claves deverification.entities(el mismo diccionario que ya devolvía el backend) a los bloques visuales del árbol compartido con creación/restauración. La funciónsum(keys, field)agregaexpected/created/updated/already_existed_or_skippedde todas las claves de un bloque; solo se pinta una fila siexpected > 0.- El veredicto pasa de 2 a 4 frases posibles: se introduce
verification.ok(anomalías: se aplicó más de lo declarado) eisUpdate(result.mode === 'update') para elegir el texto correcto entre “todo aplicado” (modo añadir), “todo aplicado, lo existente se actualizó” (modo actualizar), “con omitidos” y “con anomalías”. - El desplegable
#restore-report-detail(nuevo<details>entemplates/base.html) solo se muestra (style.display) cuandototalSkipped > 0o!verification.ok; su cuerpo reutiliza el desglose fino anterior (una fila por clave cruda deentities, filtrando las que tienenalready_existed_or_skipped > 0). templates/base.html: la tabla principal gana la columna “Updated” (antes solo Expected/Created/Already existed); cache-bustingbase.js?v=5→?v=6.- i18n: 12 strings nuevos EN+ES vía
scripts/i18n/add_restore_report_strings.py(mismo patrón polib de las piezas anteriores de esta ventana). - No hubo cambios de backend:
verification.entities,verification.okyresult.modeya existían en la respuesta del job de restore; esta pieza es puramente de presentación (agregación + copy) sobre datos que el motor de v1.75.0/v1.76.0 ya calculaba.
Commits relacionados
41b58308(2026-08-21) — feat(backups): informe del restore por bloques de producto con creado/actualizado/omitido - v1.77.0 (task #236 ventana, pieza final) (#408).
Véase también
- [[feature—backup-restore—restauracion-arbol-v1-76-0]]
- [[feature—backup-restore—modo-actualizar-v1-75-0]]
- [[feature—backup-restore—creacion-selectiva-v1-74-0]]
- [[feature—backup-restore—extended-domains-v1-70-0]]
- [[feature—backup-restore—manifest-verificacion-v1-69-0]]
- [[feature—racks—backup-restore-async-v156]]
- [[feature—racks—restore-selectivo-v171]]
- [[crearack-tech—admin—backup-restore]]