Calendar events support multiple reminder offsets with presets and per-user defaults. Lists index adds inline task entry and list property editing. Generic entity comments on list detail. New bangs.stats dashboard widget. Closes Gitea #28, #29, #30, #31. Migrations 0022 and 0023.
1.3 KiB
1.3 KiB
89 — Calendar reminders overhaul
Goal
Replace the single "Remind me 30 min before" checkbox with multiple reminders, presets, and custom offsets.
What we decided
- Store multiple reminder rows per calendar event in the generic
reminderstable (drop one-per-entity unique constraint). - Offsets are minutes before event start; presets + custom value/unit in UI.
- Per-user default offsets live on
users.default_event_reminder_offsets(jsonb, default[30]). - Notes/garden keep single-reminder behavior via delete-then-insert in
scheduleReminder.
Depends on
- 41 (reminders engine)
Scope
- Migration: drop
reminders_entity_unique, addoffset_minutes, add user default column. _core/reminders.ts:syncRemindersForEntity, refactorscheduleReminder.- Shared
ReminderPickercomponent + offset helpers. - Calendar create/edit + quick-add dialogs; sync reminders on create/update/delete.
- Optional: settings field for default reminder offsets.
Out of scope
- Recurring reminders, snooze.
Acceptance criteria
- Users can add/remove multiple reminders on an event
- Preset list and custom offset both work
- Reminders fire via existing notification bus
- Per-user default reminder preferences (stored + applied on new events)
Notes
- Gitea: ginnoir/famapp#28