13 Commits
Author SHA1 Message Date
dschmidt 21a79f44a8 Added presenter mode for the event 2026-06-09 18:23:04 +02:00
beantownbabe d9408d474e Update QR code to point to poll.txproducts.de 2026-06-09 11:33:02 +02:00
beantownbabeandClaude Sonnet 4.6 b11dfcde6a Change TXproducts GmbH to TXproducts UG throughout
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-08 13:47:37 +02:00
mckinley 977a6c2313 Update templates/display.html 2026-06-08 10:48:33 +02:00
beantownbabeandClaude Sonnet 4.6 132035400e Restore 30-day deletion statement to privacy notice
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-07 22:38:05 +02:00
beantownbabeandClaude Sonnet 4.6 d9f3538e9b Privacy notice wording and analysis button visibility improvements
- Renamed 'Data notice (GDPR)' to 'Privacy Notice' in email modal
- Removed redundant last sentence from privacy notice
- Analysis button larger, bolder, uppercase so it is easy to spot

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-07 22:22:47 +02:00
beantownbabeandClaude Sonnet 4.6 bf692f3120 Make email modal scrollable on small screens, tighten spacing
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-07 17:20:39 +02:00
beantownbabeandClaude Sonnet 4.6 ff0564ae54 Reset now clears emails and comments as well as answers
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-07 17:12:05 +02:00
beantownbabeandClaude Sonnet 4.6 7e83c4f2c0 Add password protection to all admin routes
All /admin/* routes now require login via /admin/login. The password
is set via the ADMIN_PASS environment variable on the server
(default: hiacts2026 — change this in PythonAnywhere env vars before
the conference). /admin/logout clears the session.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-07 17:10:41 +02:00
beantownbabeandClaude Sonnet 4.6 a4e36586d0 Track KEEP opt-in per attendee, skip retained emails on deletion
- emails.json now stores {email, token, retained} dicts instead of strings
- Confirmation email contains a personalised /keep/<token> link
- Clicking the link marks retained=True in emails.json and shows a
  confirmation page to the attendee
- Delete and Notify All skips retained emails entirely, only notifies
  and removes those with retained=False
- Admin page splits emails into Retained (opted in) and Pending deletion
  with colour-coded counts
- Added BASE_URL env var for constructing keep-links in emails
- Backward-compatible: old plain-string emails.json is migrated on load

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-07 16:34:16 +02:00
beantownbabeandClaude Sonnet 4.6 b6907e5343 Add full GDPR email lifecycle: confirmation, report, and deletion notice
- Attendee immediately receives a data-retention notice on email capture,
  explaining purpose, deletion deadline (10 July 2026), and how to reply
  KEEP if they want their contact retained
- Admin page: Send Full Report to All button (purple) triggers the PDF
  report to all collected addresses after the conference
- Admin page: Delete and Notify All button (red) emails each address a
  deletion confirmation then wipes emails.json, completing the GDPR cycle
- send_deletion_confirmation() notifies under GDPR Article 17 before data
  is removed

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-07 16:26:44 +02:00
beantownbabeandClaude Sonnet 4.6 f54b55674c Add GDPR consent to email modal and data governance document
- Email modal now shows a plain-language GDPR data notice before the
  input field, with an explicit consent checkbox that must be ticked
  before the submit button becomes active
- Added DATA_GOVERNANCE.md covering legal basis, purpose, retention,
  data subject rights, and deletion deadlines for audit compliance

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-07 16:19:56 +02:00
beantownbabeandClaude Sonnet 4.6 27a59671fc Initial commit: HiActs Conference Poll app
Flask poll app for the Hi-Acts 3rd Network Meeting at DESY Hamburg,
10 June 2026. Includes 11-question poll, live D3 bubble chart display,
7-page PDF analysis report, admin dashboard, and CSV export.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-05 15:38:17 +02:00