Snapshot of the working project as of 2026-10-23 (local 2d4d4fc), one commit with no earlier history: the tracked files were de-identified first (synthetic claim ids and patient data only; see Context.md section 7). Credentials, run logs, screenshots, claim reports and client workbooks are gitignored and not included. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
26 lines
1.2 KiB
HTML
26 lines
1.2 KiB
HTML
{% extends "base.html" %}
|
|
{% block title %}Sign in{% endblock %}
|
|
{% block style %}
|
|
.signin { max-width: 380px; margin: 40px auto; }
|
|
.signin label { display: block; margin: 0 0 12px; font-weight: 600; }
|
|
.signin input { display: block; width: 100%; margin-top: 4px; }
|
|
.signin button { width: 100%; margin-top: 6px; }
|
|
{% endblock %}
|
|
{% block content %}
|
|
<div class="signin">
|
|
<h1>Sign in</h1>
|
|
<p class="sub">The Portal shows patient data: every Portal User signs in,
|
|
and every Run records who started it.</p>
|
|
{% if error %}<div class="msg bad" role="alert">{{ error }}</div>{% endif %}
|
|
{% if no_users %}<div class="msg bad">No Portal Users yet. On this PC run
|
|
<code>python tools\add_portal_user.py</code> to add the first Admin.</div>{% endif %}
|
|
<form class="card" method="post" action="/signin" autocomplete="off">
|
|
<input type="hidden" name="token" value="{{ run_token }}">
|
|
<input type="hidden" name="next" value="{{ next_url }}">
|
|
<label>Username <input name="username" autocomplete="username" required autofocus></label>
|
|
<label>Password <input name="password" type="password" autocomplete="current-password" required></label>
|
|
<button type="submit">Sign in</button>
|
|
</form>
|
|
</div>
|
|
{% endblock %}
|