New /dashboard/templates page (MANAGER/ADMIN, matches backend access):
lists document templates, lets MANAGER/ADMIN download the current
file and ADMIN replace it. Nav link added to the header. Also renamed
"Genera Attestato" to "Genera Certificato di Adesione" and the
downloaded file's name prefix to match, for consistency with the
document's real name.
Verified live: nav link navigates to the page, download round-trips
the file, and uploading a new file updates the listed filename and
timestamp immediately.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017hQcuUQFue2bFvrYw2UQhK
Prefixes the association name with "#<folder>" in the list table and
the detail page title, and adds an editable field for it in the edit
dialog - needed since some associations are missing it (NAS folders
that were never numbered), which is what silently blanks their
ratification code on the attestato.
Verified live: table and detail title show "#2 ENCAP ODV", the edit
field reflects the current value, and saving a new value updates both
immediately.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017hQcuUQFue2bFvrYw2UQhK
"Genera Attestato" button on the association detail page downloads
the certificate PDF from the new backend endpoint; the edit dialog
gained a ratification-code field (used on the certificate).
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017hQcuUQFue2bFvrYw2UQhK
lib/ was never committed despite every page importing from it - a
fresh clone couldn't build. public/logo-encap.jpg was likewise
missing even though app/login/page.tsx already references it.
Also gitignore .idea/, which shouldn't be tracked.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017hQcuUQFue2bFvrYw2UQhK