nordabiz/templates
Maciej Pienczyn dcbf8b5db6
Some checks are pending
NordaBiz Tests / Unit & Integration Tests (push) Waiting to run
NordaBiz Tests / E2E Tests (Playwright) (push) Blocked by required conditions
NordaBiz Tests / Smoke Tests (Production) (push) Blocked by required conditions
NordaBiz Tests / Send Failure Notification (push) Blocked by required conditions
feat(email): one-click unsubscribe w mailach powiadomień (RFC 8058)
Każdy e-mail powiadomieniowy ma teraz:
(1) link w stopce "Wyłącz ten typ powiadomień jednym kliknięciem"
(2) nagłówki List-Unsubscribe + List-Unsubscribe-Post dla klientów
    pocztowych (Gmail/Apple Mail pokażą natywny przycisk Unsubscribe)

Implementacja:
- utils/unsubscribe_tokens.py: signed token (itsdangerous, SECRET_KEY)
  niosący user_id + notification_type, bez wygasania
- blueprints/unsubscribe: GET /unsubscribe?t=TOKEN → strona potwierdzenia,
  POST /unsubscribe → faktyczne wyłączenie flagi notify_email_<type>
- email_service.send_email() dostał parametr notification_type. Jeśli
  przekazany razem z user_id, footer + headery są doklejane
- Aktualizowane wywołania: message_notification (messages),
  classified_question/answer (B2B Q&A), classified_expiry (skrypt cron)

Prefetch safety: GET pokazuje stronę z przyciskiem "Tak, wyłącz",
wyłączenie następuje po POST. RFC 8058 One-Click (POST bez formularza
z Content-Type application/x-www-form-urlencoded + body
"List-Unsubscribe=One-Click") obsługuje klientów pocztowych.

D.2/D.3 dorzucą kolejne notification_type (forum, broadcast, events).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-14 17:56:36 +02:00
..
admin fix(classifieds,admin): blokada duplikatów przez double/triple-click 2026-04-14 16:35:14 +02:00
announcements fix: use created_by instead of author_id in announcement detail template 2026-04-12 16:17:39 +02:00
auth
benefits
board fix(classifieds,admin): blokada duplikatów przez double/triple-click 2026-04-14 16:35:14 +02:00
calendar fix: 500 on event page when user has no company (active_company undefined) 2026-04-10 20:55:26 +02:00
classifieds fix(classifieds,admin): blokada duplikatów przez double/triple-click 2026-04-14 16:35:14 +02:00
company
contacts feat: migrate prod docs to OVH VPS + UTC→Warsaw timezone in all templates 2026-04-06 13:41:53 +02:00
education fix: add Polish diacritics to Google Reviews guide 2026-03-13 12:21:00 +01:00
errors fix: replace sad face SVG with Norda logo on 500 error page 2026-03-12 10:44:16 +01:00
forum feat(forum): beautify Google Maps URLs + fix edit/quote raw content 2026-04-14 14:38:59 +02:00
konto feat(email): per-typ preferencje powiadomień e-mail (D.1 dopełnienie) 2026-04-14 17:50:41 +02:00
membership feat: migrate prod docs to OVH VPS + UTC→Warsaw timezone in all templates 2026-04-06 13:41:53 +02:00
messages fix: back links in messages point to new conversations page 2026-04-10 14:32:16 +02:00
partials
pej feat: migrate prod docs to OVH VPS + UTC→Warsaw timezone in all templates 2026-04-06 13:41:53 +02:00
reports feat: migrate prod docs to OVH VPS + UTC→Warsaw timezone in all templates 2026-04-06 13:41:53 +02:00
settings feat: migrate prod docs to OVH VPS + UTC→Warsaw timezone in all templates 2026-04-06 13:41:53 +02:00
zopk feat: migrate prod docs to OVH VPS + UTC→Warsaw timezone in all templates 2026-04-06 13:41:53 +02:00
admin_seo_dashboard.html feat: migrate prod docs to OVH VPS + UTC→Warsaw timezone in all templates 2026-04-06 13:41:53 +02:00
base.html feat(push): nowa ikona (smartfon z falami) + toast per urządzenie 2026-04-14 17:25:09 +02:00
base.html.bak.20251229_142208
base.html.bak.20260101_161750
chamber_authorities.html feat(izba): chamber roles — badges on profiles + Władze Izby page 2026-03-20 13:59:04 +01:00
chat_members_only.html
chat.html fix: UTC timezone correction for all JS date parsing across portal 2026-04-10 06:09:42 +02:00
CLAUDE.md
company_detail_enhanced.html
company_detail_safe.html
company_detail.html feat: make user names and avatars clickable links to profiles 2026-04-10 06:23:30 +02:00
company_detail.html.bak.20251229_142208
company_edit.html improve(company): add user feedback for logo upload and conversion 2026-04-08 14:30:33 +02:00
connections_map.html
connections_modal.html
dashboard.html feat: migrate prod docs to OVH VPS + UTC→Warsaw timezone in all templates 2026-04-06 13:41:53 +02:00
events.html feat: add deprecation banner on /aktualnosci page with redirect to /ogloszenia 2026-03-12 12:07:12 +01:00
gbp_audit.html feat: migrate prod docs to OVH VPS + UTC→Warsaw timezone in all templates 2026-04-06 13:41:53 +02:00
index.html fix: show last reply author in forum cards, not topic author 2026-04-10 07:54:37 +02:00
it_audit_form.html
it_audit.html feat: migrate prod docs to OVH VPS + UTC→Warsaw timezone in all templates 2026-04-06 13:41:53 +02:00
landing.html perf+a11y: heading order, image dimensions, static cache headers 2026-04-07 18:00:21 +02:00
new_members.html feat: Post-Rada Workflow Engine + redesign /nowi-czlonkowie 2026-04-06 23:51:38 +02:00
person_detail.html fix(person): prefer portal user name over masked KRS name 2026-03-20 14:33:16 +01:00
polityka_prywatnosci.html fix: correct InPi company data - name, NIP, address, phone 2026-03-12 09:37:45 +01:00
pwa_install.html
regulamin.html fix: correct InPi company data - name, NIP, address, phone 2026-03-12 09:37:45 +01:00
release_notes.html feat: add "Wypróbuj" deep links to release notes items 2026-03-12 11:26:26 +01:00
search_results.html feat(search): add portal users to search results alongside KRS persons 2026-03-20 14:27:25 +01:00
seo_audit.html feat: migrate prod docs to OVH VPS + UTC→Warsaw timezone in all templates 2026-04-06 13:41:53 +02:00
social_audit.html feat: migrate prod docs to OVH VPS + UTC→Warsaw timezone in all templates 2026-04-06 13:41:53 +02:00
unsubscribe.html feat(email): one-click unsubscribe w mailach powiadomień (RFC 8058) 2026-04-14 17:56:36 +02:00
user_profile.html improve: company list on profile - vertical, alphabetical, alternating bg 2026-04-10 14:27:32 +02:00