When the group was already persisted, calling `.replace` on the filter
does not save the group, nor does :autosave on the association.
https://community.openproject.org/wp/39120
* destroy notifications upon journal destruction
* breakup spec by journable
* have a dedicated job for scheduling journal completed events
* generate notifications in delayed job
* route wiki journal events through notifications
* combine mail sending for notifications into single job
* robustness if a journal is deleted
* linting
* differentiate BaseJournal and AssociatedJournal
BaseJournal holds the data of a journal that reflects the columns in the journaled model while AssociatedJournal reflects the columns of a model associated to the journaled model via a has_many/one association
* route news journal events through notifications
This does not yet include notifications for comments on news
* include news comment in notification workflow
* have the whole workflow in a single state machine job
* include forum message in notification workflow
* include document in notification workflow
* less dependencies from acts as watchable
* fix, test and document workflow job
When a synchronized group has sync_users enabled, we want to synchronize the user
to OpenProject even if the connection doesn't have onthefly_register enabled.
But currently, the user attributes (name, mail, etc.) are only returned if onthefly_register is set
so the synchronization will never work without it being set on the connnection
https://community.openproject.org/wp/37036