Make the grouping of interleaved changes less time-sensitive
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Launchpad itself |
Fix Released
|
Medium
|
Gavin Panella |
Bug Description
At the moment BugActivity and comments are grouped together based on the time at which they occurred, with the requirement being that they occur at exactly the same time for them to be grouped together. Currently we can rely on this since things that should be grouped together (description, summary and tag changes; status, importance, milestone and assignee changes) will share a transaction time as they are submitted as part of the same form.
Once we move to an AJAX-driven bugs page, though, this is going to be come more problematic, since people will be able to edit two or three things separately on the same page. Whilst the user may perceive this to be one set of activity it will in fact be three different DB transactions, each of which will have a different transaction time, even if they're within milliseconds of each other. This will break the grouping and make the activity notifications cluttersome.
What should happen:
We should group activity and comments by time and person. We can be a bit looser with the time, then, since it doesn't really matter if we group two sets of actions carried out by the same person together. We can group together everything done by a person within five minutes (for example) of the first action by that person. If someone else makes another change in that time we can simply split that out into another set of actions. A new comment by any person essentially marks the start of a new block, so that comments are always separated, thus:
1. Foo Bar adds a comment
2. Foo Bar sets status
3. Foo Bar changes description
Is one block of items, but:
1. Foo Bar adds a comment
2. Foo Bar sets status
3. Foo Bar changes description
4. No Priv sets importance
5. Foo Bar adds a comment
6. Foo Bar changes summary
Is three blocks of items, even if all of Foo Bar's actions take place within five minutes of each other. Each new comment starts a new block.
Related branches
- Leonard Richardson (community): Approve
-
Diff: 1137 lines (+510/-277)8 files modifiedlib/lp/bugs/browser/bugcomment.py (+89/-8)
lib/lp/bugs/browser/bugtask.py (+101/-124)
lib/lp/bugs/browser/tests/bug-views.txt (+40/-57)
lib/lp/bugs/browser/tests/test_bugcomment.py (+178/-0)
lib/lp/bugs/browser/tests/test_bugtask.py (+31/-2)
lib/lp/bugs/doc/bugcomment.txt (+3/-3)
lib/lp/bugs/stories/bugs/xx-bug-activity.txt (+67/-82)
lib/lp/bugs/templates/bugtask-index.pt (+1/-1)
Changed in malone: | |
importance: | Undecided → High |
milestone: | none → 2.2.4 |
status: | New → Triaged |
description: | updated |
Changed in malone: | |
assignee: | nobody → gmb |
Changed in malone: | |
importance: | High → Medium |
Changed in malone: | |
milestone: | 2.2.4 → none |
Changed in malone: | |
assignee: | Graham Binns (gmb) → nobody |
Changed in malone: | |
assignee: | nobody → Gavin Panella (allenap) |
status: | Triaged → In Progress |
tags: | added: bugjam2010 |
tags: |
added: qa-ok removed: qa-needstesting |
Changed in launchpad: | |
status: | Fix Committed → Fix Released |
Changed in launchpad: | |
milestone: | none → 11.01 |
This sounds good.
At the moment you get the somewhat surprising behaviour that one logical change of setting the status and adding a comment generates one mail but two entries in the bug page.