58 lines
2.0 KiB
Markdown
58 lines
2.0 KiB
Markdown
---
|
|
id: 0035d
|
|
title: Doble click en Group abre tableview filtrado por group_id
|
|
status: done
|
|
priority: high
|
|
created: 2026-05-03
|
|
parent: 0035
|
|
depends_on: [0035a, 0035b, 0035c]
|
|
---
|
|
|
|
## Objetivo
|
|
|
|
Que el usuario pueda inspeccionar lo que hay dentro de un grupo. Doble
|
|
click sobre un nodo `Group` no abre la nota como un nodo normal, sino
|
|
una vista de tabla con sus hijos, busqueda y filtros.
|
|
|
|
## Cambios
|
|
|
|
1. **Discriminacion en `on_double_click_cb`**: al recibir el doble
|
|
click sobre un node_idx, leer su `type_ref`. Si es `Group`, en
|
|
lugar de poblar `note_node` y abrir el panel Note, setear los
|
|
triggers para abrir tableview filtrada por `group_id == <ese
|
|
group_id>`.
|
|
2. **Modo "filter by group" en tableview**: el panel ya tiene tabs
|
|
por type_ref y filtros por columna. Anadir un modo (flag en
|
|
AppState `table_filter_group_id: string`) que cuando esta seteado
|
|
limita las filas a `WHERE group_id = ?`.
|
|
3. **Header con breadcrumb minimo**: al abrir tableview por grupo,
|
|
mostrar arriba `Group: <name>` con el contador y un boton "Clear
|
|
group filter" que vuelve al modo libre.
|
|
4. **Persistencia (RAM only)**: el filtro se mantiene mientras el
|
|
panel esta abierto; al cerrar el panel se limpia. No persistir
|
|
en la BD del app.
|
|
|
|
## Acceptance criteria
|
|
|
|
- Doble click en un nodo `Url` o `Person` etc.: abre Note como
|
|
siempre (no cambio).
|
|
- Doble click en un nodo `Group`: NO abre Note. Abre Table con todos
|
|
los hijos cuyo `group_id` apunta al grupo. La cabecera dice
|
|
"Group: <name> (N)".
|
|
- Clear group filter: vuelve al tableview general.
|
|
- Busqueda y tabs por tipo dentro del filtro siguen funcionando — el
|
|
filtro por group_id se compone con los demas.
|
|
- Tests pytest verdes (no requieren tests especificos de UI; basta
|
|
con que los tests existentes no rompan).
|
|
|
|
## TBD
|
|
|
|
Branch `issue/0035d-tableview-drill-in`, merge `--no-ff` con tests
|
|
verdes.
|
|
|
|
## Out of scope
|
|
|
|
- Promote (sacar nodo del grupo): fase 2.
|
|
- Re-agrupar por tipo desde tableview: fase 2.
|
|
- Layouts internos del grupo expandido en canvas: fase 3.
|