The system dashboard
The dashboard is the first thing you see when you sign in (/ leads to /ui, and this is the
landing view). It is not a log and not a report: it answers, at a glance, the questions people ask
every morning.
The seven blocks
Section titled “The seven blocks”| Block | What it answers |
|---|---|
| The company | How many roles there are, by department, how many active and how many idle |
| Today | Successes, failures, restarts and time worked; which role is behind each failure |
| Objectives | How many set, achieved and in progress, with their progress |
| Objectives by project | The same, split by project |
| Real hours | What each profile worked, in total and by project |
| Running | What is being done right now and who is doing it |
| Completed tasks | Descending table — newest on top — sortable by column and paginated |
Where the figures come from
Section titled “Where the figures come from”From organtia.turnos: one row per served shift, with start, end, seconds, result and project. It is
written in the only place that knows when a shift really begins and ends (_drenar), it is not
estimated. A shift that is retried is flagged, and each profile’s hours are the sum of measured
times.
The history already worked was imported from agno.agno_runs in migration 037: the dashboard was not
born empty.
Idle means: an active role with no shift in the last seven days. It is on the payroll and produces nothing, which is different from a role that has been dismissed (it does not count as workforce).
Reactivity
Section titled “Reactivity”It subscribes to the /oficina/tablero/stream channel. Every cambio published by the system
reloads the dashboard without touching the browser. The channel also sends a latido every twenty
seconds, which the dashboard uses only as a safety net and with a forty-five second margin: if
every heartbeat reloaded it, the table would reorder itself in front of whoever is reading.
Verified with the browser open: a shift was inserted and a change was published; the counter went from 57 to 58 without reloading the page.
