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
Rozszerzenie powiadomień o kolejne typy zdarzeń, z symetrycznymi togglami e-mail i push w /konto/prywatnosc. Migracje 103 + 104 — 6 nowych kolumn preferencji e-mail + NordaEvent.reminder_24h_sent_at. Triggery: - Forum odpowiedź → push do autora wątku (notify_push_forum_reply) - Forum cytat (> **Imię** napisał(a):) → push + email do cytowanego (notify_push/email_forum_quote) - Admin publikuje aktualność → broadcast push (ON) + email (OFF) do aktywnych członków (notify_push/email_announcements) - Board: utworzenie / publikacja programu / publikacja protokołu → broadcast push + opt-in email (notify_push/email_board_meetings) - Nowe wydarzenie w kalendarzu → broadcast push + email (oba ON) (notify_push/email_event_invites) - Cron scripts/event_reminders_cron.py co godzinę — wydarzenia za 23-25h, dla zapisanych (EventAttendee.status != 'declined') push + email, znacznik NordaEvent.reminder_24h_sent_at żeby nie dublować. Email defaults dobrane, by nie zalać inbox: broadcast OFF (announcements, board, forum_reply), personalne/actionable ON (forum_quote, event_invites, event_reminders). Wszystkie nowe e-maile mają jednym-kliknięciem unsubscribe (RFC 8058 + link w stopce) — unsubscribe_tokens.py rozszerzony o nowe typy. Cron entry do dodania na prod (osobny krok, bo to edycja crontaba): 0 * * * * cd /var/www/nordabiznes && venv/bin/python3 scripts/event_reminders_cron.py Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
14 lines
758 B
SQL
14 lines
758 B
SQL
-- Migration 103: preferencje e-mail dla zdarzeń D.2 (forum + broadcast)
|
|
--
|
|
-- Defaults dobrane tak, żeby nie zalać inbox użytkowników:
|
|
-- forum_reply = FALSE (forum_topic_subscriptions już wysyła maile subskrybentom)
|
|
-- forum_quote = TRUE (bezpośrednie, personalne, rzadkie)
|
|
-- announcements = FALSE (broadcast informacyjny — user zajrzy na portal)
|
|
-- board_meetings = FALSE (broadcast, preferowany push)
|
|
|
|
ALTER TABLE users
|
|
ADD COLUMN IF NOT EXISTS notify_email_forum_reply BOOLEAN DEFAULT FALSE,
|
|
ADD COLUMN IF NOT EXISTS notify_email_forum_quote BOOLEAN DEFAULT TRUE,
|
|
ADD COLUMN IF NOT EXISTS notify_email_announcements BOOLEAN DEFAULT FALSE,
|
|
ADD COLUMN IF NOT EXISTS notify_email_board_meetings BOOLEAN DEFAULT FALSE;
|