From f0cf8d96632f6abac3e9b12b53dddb7161c1eac7 Mon Sep 17 00:00:00 2001 From: Inferencebot Date: Tue, 20 Oct 2026 23:02:01 -0600 Subject: [PATCH] panel: org pill (dues paid by OC organization) + Matrix handle under each email (external MXID or local identity) --- app/main.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/app/main.py b/app/main.py index 9f527f0..bd02c29 100644 --- a/app/main.py +++ b/app/main.py @@ -253,6 +253,7 @@ PAGE_HTML = """ .pill.active { background: #eaf3ea; color: #2f5c30; } .pill.inactive { background: #f6e9e5; color: var(--danger); } .pill.manual { background: #f1e8da; color: #a97a4a; } + .pill.org { background: #e7edf5; color: #4a6a8a; } .num { font-variant-numeric: tabular-nums; } .remaining-col { font-weight: 700; color: var(--green-deep); background: #eaf3ea; } .flash { padding: 12px 16px; border-radius: 8px; margin: 16px 0; font-size: 14px; display: none; } @@ -522,8 +523,16 @@ function renderMembers() { const src = m.manual ? 'manual' : 'OC'; + const org = m.org + ? ' org: ' + esc(m.org) + '' + : ''; + // Effective Matrix handle: dashboard-set external MXID, else the local + // @username:inference.coop identity (pending users have no username yet). + const mxid = m.matrix_mxid || (m.username ? '@' + m.username + ':inference.coop' : ''); + const mxidLine = mxid ? '
' + esc(mxid) + '
' : ''; return '' + - '' + esc(m.email) + (m.username ? '
' + esc(m.username) + '
' : '') + '' + + '' + esc(m.email) + (m.username ? '
' + esc(m.username) + '
' : '') + mxidLine + + (org ? '
' + org + '
' : '') + '' + '' + pill + '' + '' + act + '' + '' + src + '' +