Modo totem
Pantalla full-screen para tablets o PCs dedicadas en puntos de acceso. El visitante escanea su DNI o QR y el sistema confirma con foto + nombre grandes, sonido y vuelta automática a idle.
¿Qué hace?
El modo totem es una pantalla fullscreen pensada para una tablet o PC dedicada en un punto de acceso público (recepción, portería, lobby). A diferencia del escaneo de DNI estándar que es la herramienta del operador, el totem está pensado para que el visitante mismo escanee su DNI o QR y reciba confirmación visual inmediata.
Diferencias clave vs. la pantalla estándar
| Característica | Pantalla estándar /entry/ |
Modo totem /totem/ |
|---|---|---|
| Audiencia | Operador autenticado | Público (visitantes) |
| Layout | Con sidebar + topbar | Fullscreen, sin chrome |
| Modo de scan | Auto / Entrada / Salida (configurable) | Solo automático |
| Comentario / impresión | Modal post-entrada con opciones | Sin opciones — flujo cerrado |
| Feedback visual | Toast + tabla actualizada | Pantalla completa con foto + nombre grandes + sonido |
| Stats live | Sí (Adentro, Entradas, Salidas, Mi turno) | No (foco en la acción) |
| Cambiar puesto | Link visible en el header | Oculto (atajo de teclado) |
| Theme | Sigue el toggle del usuario | Sigue el prefers-color-scheme del OS |
Setup del totem
- Acceso: en el sidebar de la app, click "Totem mode" (abre en pestaña nueva).
- Login + puesto: si no estás logueado, el totem te lleva al login. Después seleccionás el puesto de trabajo en pantalla completa — el formulario tiene la misma estética que el resto del totem.
- Listo:
/totem/queda mostrando el reloj y el prompt para escanear. - (Opcional) Fullscreen real: F11 en el browser para esconder la barra de direcciones. El navegador ya cubre el resto.
- (Opcional) Modo kiosko: lanzá Chrome con
--kioskpara bloquear la navegación.
El flujo
Estado idle
- Logo y nombre de la organización arriba (toma el nombre del tenant; si la org tiene logo configurado, lo muestra).
- Reloj grande en el centro (HH:MM live + fecha en formato largo).
- Icono de scan pulsando con el mensaje "Escaneá tu DNI o QR de acceso".
- Input invisible siempre enfocado: el lector USB tipea + Enter → submit instantáneo, sin que el visitante tenga que hacer click.
Después de un scan
La pantalla se llena con:
- Foto del Person (240px circular, con borde blanco) o iniciales si no hay foto.
- Saludo grande: "BIENVENIDO/A" para entradas, "HASTA LUEGO" para salidas.
- Nombre completo del Person en tamaño hero (~72px).
- Hora del registro. En salidas, también muestra las horas trabajadas calculadas desde la entrada más reciente.
- Color de fondo distintivo:
- Verde para entradas.
- Naranja para salidas.
- Rojo para errores (DNI no registrado, QR inválido, etc).
- Sonido: archivo
static/audio/totem-entry.mp3(entrada),totem-exit.mp3(salida),totem-error.mp3(error). Si los archivos no existen, el browser ignora sin romper.
Vuelta a idle
Después de 4 segundos (success) o 3 segundos (error), la pantalla vuelve automáticamente al estado idle. No requiere intervención.
Configuración del puesto
El puesto de trabajo se elige UNA vez al arrancar el totem y NO se muestra opción de cambio en la pantalla principal — la idea es que el público no pueda alterar la configuración del kiosko.
Para cambiar el puesto:
- Atajo de teclado oculto: Ctrl + Shift + S (o Cmd + Shift + S en Mac) lleva a la
pantalla de setup. El atajo NO está documentado visualmente al público — solo el
operador que configuró el totem lo conoce.
- Alternativa: cerrar y volver a abrir la pestaña del totem, eligiendo otro puesto en
el setup.
Modos de scan soportados
Reconoce los mismos formatos que el escaneo estándar:
- DNI numérico plano.
- PDF417 legacy de la tarjeta DNI (variantes con
@y con"). - eDNI 2026 (con JWT).
- QR del pase de visitante (
ACX:<token>) — útil para que el visitante registre su salida sin necesidad de operador.
El modo siempre es Automático: el sistema alterna entre entrada y salida según el último evento de la persona. No hay forma de forzar IN/OUT desde el totem.
Casos de error
| Situación | Pantalla mostrada | Sonido |
|---|---|---|
| DNI no reconocido (formato inválido) | Roja + "No se pudo leer el DNI" | Error |
| DNI válido pero Person no existe en la org | Roja + "DNI no registrado — registrate en recepción" + DNI visible | Error |
QR ACX: válido pero registro no existe o es de otra org |
Roja + "Código QR inválido o expirado" | Error |
Las personas desconocidas no se crean automáticamente desde el totem (a diferencia de la pantalla estándar): si el DNI escaneado no está en la base, el visitante debe ir a recepción para registrarse. Esto evita que el público abuse del kiosko para crear personas con datos arbitrarios.
Multi-tenancy
- Todos los endpoints del totem requieren login + un
UserOrganizationactivo. - Los QR del pase escaneados se validan contra la org del operador logueado — un QR de otra empresa es rechazado con mensaje de error.
- Si el puesto guardado en sesión fue borrado o pertenece a otra org, el totem redirige automáticamente al setup en vez de quedarse mostrando datos inconsistentes.
Impresión
El totem no imprime recibos — el flujo está pensado para escaneo masivo de visitantes, no para gestión de pases. La impresión de QR de acceso vive en la pantalla estándar donde el operador puede agregar comentarios y elegir si imprimir.
Performance
- La pantalla de idle vuelve via HTMX fragment (no full reload), preservando el cache de audios, la conexión del input invisible y el reloj live.
- El sondeo del reloj corre cada segundo en JS local (no requests al server).
- Los assets se cachean agresivamente — el totem puede funcionar incluso si la red se pone lenta entre scans.
Permisos
Cualquier operador autenticado con un puesto activo puede iniciar el totem. No se requiere rol de supervisor.
Recomendaciones de deploy
- Tablet o PC dedicada con monitor de al menos 19" para que las fuentes del totem
rindan bien a distancia (los tokens
--ds-fs-totem-*están calibrados de 28 a 120px). - Chrome o Edge lanzados con
--kiosk --noerrdialogspara que ningún diálogo del browser interrumpa el flujo. - Lector USB tipo "act-as-keyboard": cualquier modelo Honeywell, Zebra o equivalente que termine la lectura con Enter. No requiere driver especial.
- Sin ratón ni teclado expuestos al público: el input es invisible y se enfoca solo, el lector hace todo el trabajo.
Para qué NO sirve
- Operación de escritorio del operador: para eso está la pantalla estándar con stats y modal de confirmación.
- Imprimir el pase de visitante: el totem no genera recibos. El pase con QR se imprime desde la pantalla estándar al ingresar — ver pase con QR.
- Crear personas nuevas: si el DNI no está en la base, el visitante recibe mensaje de rechazo. Las altas se hacen desde la app del operador.
- Auditoría / edición: ver la lista de registros para esos flujos.