Ignore Subscriptions
Indirect subscribers to bugs sometimes want to stop receiving mail for that bug. To facilitate that, direct subscriptions will be extended to include a notion of 'ignore' subscriptions, which explicitly mark the user for not receiving mail pertaining to a bug.
User Interface
- On the bug page, next to subscribe / unsubscribe, add a block / unblock this bug option.
- If the user is subscribed to the bug, their subscription is converted to ignore.
- If the user is not subscribed to the bug, an ignore subscription is created for them.
- If and when we have a user subscriptions page, we should allow to view and edit ignore subscriptions from there too.
Schema Changes
Add a column, BugSubscription.ignore, BOOLEAN, defaults to FALSE.
Code Changes
Extend IBugSubscription and BugSubscription with the ignore field.
- Change Bug.getDirectSubscriptions and Bug.getDirectSubscribers so that they ignore subscriptions with the ignore flag set.
- Instead using straight join for Bug.subscriptions, turn it into a property that ignores subscriptions with the ignore flag set.
- That should take care of bug privacy too, but make sure.
- Add a property Bug.ignore_subscriptions.
- Extend Bug.getIndirectSubscribers so that it substracts the set of ignore subscriptions from the the set of indirect subscribers.
- Add the action link for block/unblock
- Add a confirmation form for blocking / unblocking.