App shell with sidebar and theme switch; attribute-set management; project rename; new pages for projects, runbooks and activity
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Assistant: claude-code Assistant-Model: sonnet Assistant-Process: 295952@bnt-lap001 Assistant-Session: e93f64ad-516c-46eb-9666-aad8d300c477
This commit is contained in:
parent
a6ee6a0a6e
commit
6579618737
9 changed files with 663 additions and 13 deletions
|
|
@ -120,6 +120,12 @@ def project_page(app, pid: str, msg: str = "") -> bytes | None:
|
|||
out.append(f"<p>{e(d['description'])}</p>")
|
||||
if d.get("goal"):
|
||||
out.append(f"<p><b>Goal:</b> {e(d['goal'])}</p>")
|
||||
out.append(f"<details class=override><summary>Edit name, description and goal</summary>"
|
||||
f"<form method=post action='/project/{e(pid)}/edit'>{app.hidden()}"
|
||||
f"<p><label>Project name<br><input name=title value='{e(d['title'])}' required minlength=3 class=grow style='width:100%'></label></p>"
|
||||
f"<p><label>Description<br><textarea name=description rows=2 style='width:100%'>{e(d.get('description', ''))}</textarea></label></p>"
|
||||
f"<p><label>Goal<br><input name=goal value='{e(d.get('goal', ''))}' class=grow style='width:100%'></label></p>"
|
||||
"<p class=note>The project id and its template stay as they are. Never enter secrets.</p><button>Save</button></form></details>")
|
||||
# what is still needed
|
||||
needs: dict[str, list[str]] = {}
|
||||
for n in st["needs"]:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue