Unmuting a bug's notifications should restore your previous direct subscription
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Launchpad itself |
Fix Released
|
High
|
Данило Шеган |
Bug Description
Muting a bug is done by setting a particular notification level on a subscription. This is unfortunate, because it means that, when a user unmutes, we have no idea whether the user was directly subscribed before, and if so, what level the user's subscription was.
We work around this by making the unmute UI ask the user whether they want to subscribe or not. This is making the best of a bad situation. It still leads to confusion, as evidenced in bug 770345 and bug 770342.
The proper fix, IMO, would be to have a BugMute table that has columns for a person and a bug. The combination must be unique. The presence of a record in the table for a given person and a given bug means that the bug is muted. Removing the record removes the mute, revealing the previous state. Unfortunately, I am afraid that doing this would be a very large refactoring.
A hack fix that would involve less refactoring would be to have a MutedBugSubscri
I am triaging this low, though if we could get a fix in, it would be a big win for simplicity. I'm tempted to try the hack fix.
Related branches
- Graham Binns (community): Approve (code)
- Stuart Bishop (community): Approve (db)
- Robert Collins: Pending (db) requested
-
Diff: 886 lines (+291/-86)18 files modifieddatabase/schema/comments.sql (+6/-0)
database/schema/patch-2208-70-0.sql (+36/-0)
database/schema/security.cfg (+2/-0)
lib/lp/bugs/browser/bugsubscription.py (+20/-3)
lib/lp/bugs/browser/tests/test_bug_context_menu.py (+2/-4)
lib/lp/bugs/browser/tests/test_bugsubscription_views.py (+5/-5)
lib/lp/bugs/configure.zcml (+7/-0)
lib/lp/bugs/interfaces/bug.py (+17/-0)
lib/lp/bugs/interfaces/bugnotification.py (+4/-2)
lib/lp/bugs/model/bug.py (+62/-22)
lib/lp/bugs/model/bugnotification.py (+25/-12)
lib/lp/bugs/model/bugsubscriptionfilter.py (+2/-2)
lib/lp/bugs/scripts/bugnotification.py (+1/-1)
lib/lp/bugs/scripts/tests/test_bugnotification.py (+2/-1)
lib/lp/bugs/tests/test_bug.py (+23/-17)
lib/lp/bugs/tests/test_bugchanges.py (+22/-7)
lib/lp/bugs/tests/test_bugnotification.py (+51/-9)
lib/lp/registry/model/person.py (+4/-1)
- Stuart Bishop (community): Abstain
- Graham Binns (community): Approve (code)
-
Diff: 578 lines (+52/-188)15 files modifiedlib/lp/bugs/browser/bugsubscription.py (+4/-12)
lib/lp/bugs/browser/bugsubscriptionfilter.py (+8/-19)
lib/lp/bugs/browser/tests/test_bug_context_menu.py (+2/-1)
lib/lp/bugs/browser/tests/test_bugsubscription_views.py (+1/-79)
lib/lp/bugs/browser/tests/test_bugsubscriptionfilter.py (+3/-39)
lib/lp/bugs/enum.py (+0/-11)
lib/lp/bugs/interfaces/bug.py (+1/-2)
lib/lp/bugs/model/bug.py (+3/-3)
lib/lp/bugs/model/personsubscriptioninfo.py (+16/-6)
lib/lp/bugs/model/tests/test_bug.py (+4/-4)
lib/lp/bugs/model/tests/test_bugsubscriptioninfo.py (+2/-2)
lib/lp/bugs/model/tests/test_personsubscriptioninfo.py (+1/-3)
lib/lp/bugs/stories/webservice/xx-bug.txt (+2/-2)
lib/lp/bugs/tests/test_bug.py (+2/-2)
lib/lp/bugs/tests/test_structuralsubscription.py (+3/-3)
- Brad Crittenden (community): Needs Fixing (code)
- Данило Шеган (community): Abstain
-
Diff: 393 lines (+111/-193)2 files modifiedlib/lp/bugs/javascript/bugtask_index_portlets.js (+110/-192)
lib/lp/bugs/javascript/subscriber.js (+1/-1)
- Abel Deuring (community): Approve (code)
- Данило Шеган (community): Abstain (db)
-
Diff: 518 lines (+204/-54)9 files modifieddatabase/schema/security.cfg (+4/-0)
lib/lp/bugs/browser/bug.py (+2/-4)
lib/lp/bugs/browser/bugsubscription.py (+16/-7)
lib/lp/bugs/browser/tests/test_bug_views.py (+24/-1)
lib/lp/bugs/browser/tests/test_bugsubscription_views.py (+46/-13)
lib/lp/bugs/interfaces/bug.py (+5/-3)
lib/lp/bugs/model/bug.py (+15/-5)
lib/lp/bugs/model/tests/test_bugsubscriptioninfo.py (+76/-21)
lib/lp/bugs/tests/test_bug.py (+16/-0)
- Brad Crittenden (community): Approve (code)
-
Diff: 211 lines (+41/-61)2 files modifiedlib/lp/bugs/browser/bugsubscription.py (+29/-27)
lib/lp/bugs/browser/tests/test_bugsubscription_views.py (+12/-34)
- Brad Crittenden (community): Approve (code)
-
Diff: 28 lines (+8/-7)1 file modifiedlib/lp/bugs/javascript/bugtask_index_portlets.js (+8/-7)
tags: |
added: story-better-bug-notification removed: better-bug-notification |
Changed in launchpad: | |
assignee: | nobody → Данило Шеган (danilo) |
status: | Triaged → In Progress |
tags: |
added: qa-ok removed: qa-needstesting |
Changed in launchpad: | |
status: | Fix Committed → Fix Released |
Per email discussion I'm moving this to High importance.