%rebase('layout', title='Dashboard') %# The CEO briefing. Order is deliberate and inverted from the usual: the %# sentences come first and the numbers second, because the spec's whole %# instruction was "don't turn this into a BI dashboard".

{{greeting}}{{', ' + first_name if first_name else ''}}.

{{standfirst}}

%# Capture. Two states in one panel: the prompt, or the proposal it produced. %# Addressed by ?review= rather than held in the session, so a %# refresh mid-review loses nothing.
%if capture['note']: %n = len(capture['proposal'])

Scalar found {{n}} record{{'' if n == 1 else 's'}}.

From “{{capture['note'].title}}”. Untick anything you don't want.

    %for r in capture['proposal']:
  1. {{r['gutter']}} {{r['primary']}} {{r['secondary']}}
  2. %end
Read the note
%else:

What happened today?

Paste a meeting note, an email, or a brain dump — Scalar proposes the records to keep.

The text is saved either way — every note is kept.
%end
%include('dashboard/_ledger', rows=attention, empty='Nothing is late and nothing has gone quiet. Enjoy it.')
%for s in snapshot: {{s['value']}} {{s['label']}} %end

What's changed

%if changed: %for group in changed:
{{insights.day_label(group['day'])}}
%end %else:

Nothing has moved in the last week.

%end

Decisions

%if review_decisions:
Due for review
    %for d in review_decisions:
  • {{d.title}} {{status_label(d.status)}}
  • %end
%end %if recent_decisions:
Recently decided
    %for d in recent_decisions:
  • {{d.title}} {{d.decided_on.strftime('%b %-d') if d.decided_on else ''}}
  • %end
%else:

No decisions recorded yet. Write one down.

%end