nordabiz/utils
Maciej Pienczyn c9985ba51a
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(notifications): D.2+D.3 — forum, broadcasty Izby, wydarzenia, cron 24h
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>
2026-04-14 18:20:38 +02:00
..
__init__.py feat(notifications): Add notifications for releases and announcements 2026-01-27 14:22:44 +01:00
analytics.py debug: add middleware-level mobile cookie logging 2026-03-18 11:05:04 +01:00
CLAUDE.md claude-mem plugin v10.3.3 2026-02-23 10:33:26 +01:00
context_processors.py refactor(phase1): Extract blueprints for reports, contacts, classifieds, calendar 2026-01-27 10:10:45 +01:00
data_quality.py feat: enhance data quality dashboard with filters, hints, weighted scores and contact scraping 2026-02-21 07:25:39 +01:00
decorators.py fix(audit): allow company MANAGER to view own audit dashboards 2026-03-19 17:24:36 +01:00
error_handlers.py refactor(phase1): Extract blueprints for reports, contacts, classifieds, calendar 2026-01-27 10:10:45 +01:00
helpers.py fix(messages): allow data: protocol in bleach for base64 images + img width/height/style attrs 2026-03-30 16:18:11 +02:00
history_formatter.py feat: format founding_history into structured HTML sections 2026-03-16 22:45:28 +01:00
markdown.py feat(forum): beautify Google Maps URLs + fix edit/quote raw content 2026-04-14 14:38:59 +02:00
middleware.py debug: add middleware-level mobile cookie logging 2026-03-18 11:05:04 +01:00
notifications.py feat(email): one-click unsubscribe w mailach powiadomień (RFC 8058) 2026-04-14 17:56:36 +02:00
onboarding.py fix(onboarding): fix 404 on 'Uzupełnij' links in dashboard progress widget 2026-04-08 14:21:08 +02:00
permissions.py feat: Add hierarchical role system with delegated permissions 2026-02-01 06:42:39 +01:00
unsubscribe_tokens.py feat(notifications): D.2+D.3 — forum, broadcasty Izby, wydarzenia, cron 24h 2026-04-14 18:20:38 +02:00