Merge lp:~wgrant/launchpad/team-verbose-bugnotifications-bug-253788 into lp:launchpad/db-devel

Proposed by William Grant
Status: Merged
Approved by: Graham Binns
Approved revision: no longer in the source branch.
Merged at revision: not available
Proposed branch: lp:~wgrant/launchpad/team-verbose-bugnotifications-bug-253788
Merge into: lp:launchpad/db-devel
Diff against target: None lines
To merge this branch: bzr merge lp:~wgrant/launchpad/team-verbose-bugnotifications-bug-253788
Reviewer Review Type Date Requested Status
Graham Binns (community) code Approve
Review via email: mp+9190@code.launchpad.net
To post a comment you must log in.
Revision history for this message
William Grant (wgrant) wrote :

This branch fixes bug #253788, by making bugmail to a team member use the member's verbose_bugnotifications, not the team's.

bugnotification-sending.txt relied on dict ordering in construct_email_notifications, and I needed to rekey that dict with Persons. As they don't hash reliably, the order changed between test runs, so I decided to sort the returned messages by emailaddress. The majority of the changes in bugnotification-sending.txt are reorderings based on this; only the hunks mentioning salgado are new tests.

Revision history for this message
Graham Binns (gmb) wrote :
Download full text (7.2 KiB)

Hi William,

Thanks for submitting this branch. I think you're the first community
contributer to Launchpad - which I honestly kinda expected anyway.

This is a really good branch. As we discussed on IRC, you're going to
drop the sampledata changes and rewrite the tests to use the factory.
I'm going to mark the branch needs-fixing for the sake of taking a look
at the new tests.

The code is fine. There are a couple of stylistic changes I want you to
make but nothing major. This is a really nice patch for an annoying
problem (which, incidentally, I've just noticed is starting to crop up
on the launchpad-dev list too, so this might be worth cherrypicking;
we'll see what Kiko says).

 review needs-fixing

> === modified file 'database/sampledata/current.sql'

We've agreed on IRC that we can drop this change for using the object
factory and all that new hotness.

> === modified file 'lib/lp/bugs/doc/bugnotification-sending.txt'
> --- lib/lp/bugs/doc/bugnotification-sending.txt 2009-06-12 16:36:02 +0000
> +++ lib/lp/bugs/doc/bugnotification-sending.txt 2009-07-23 04:51:44 +0000
> @@ -1272,8 +1272,21 @@
> >>> bug_15.subscribe(ddaa, sample_person)
> <...>
>
> -If we then add a comment to the bug, ddaa will receieve a notification
> -containing that comment.
> +Notifications sent through a team membership respect the member's
> +verbose_bugnotifications, not the team's. salgado gets notifications
> +through his membership in landscape-developers. salgado decides that
> +he wants verbose notifications.
> +
> + >>> salgado = getUtility(IPersonSet).getByName('salgado')
> + >>> salgado.verbose_bugnotifications
> + True
> +
> + >>> ls = getUtility(IPersonSet).getByName('landscape-developers')
> + >>> ls.verbose_bugnotifications
> + False
> +
> +If we then add a comment to the bug, ddaa and salgado will receieve
> +notifications containing that comment.
>
> >>> comment = getUtility(IMessageSet).fromText(
> ... 'subject', 'a really simple comment.', sample_person,
> @@ -1286,10 +1299,11 @@
> 1
>
> If we pass this notifcation to get_email_notifications we can see that
> -ddaa will receieve a notification which contains the bug description and
> -its status in all of its targets. All other subscribers will receive
> -standard notifications that don't include the bug description. To help
> -with demonstrating this, we'll define a helper function.
> +ddaa and salgado will receieve a notification which contains the bug
> +description and its status in all of its targets. All other subscribers
> +will receive standard notifications that don't include the bug
> +description. To help with demonstrating this, we'll define a helper
> +function.
>
> >>> def collate_messages_by_recipient(messages):
> ... messages_by_recipient = {}
> @@ -1350,6 +1364,31 @@
> <BLANKLINE>
> ----------------------------------------------------------------------
>
> +And salgado does too:
> +
> + >>> print_notification(
> + ... collated_messages['<email address hidden>'][0])
> + To: <email address hidden>
> + From: Sample Person <email address hidden>
> + Subject: [Bug 1...

Read more...

review: Needs Fixing
Revision history for this message
William Grant (wgrant) wrote :
Download full text (10.9 KiB)

Thanks Graham, I believe I've fixed all those issues.

=== modified file 'database/sampledata/current.sql'
--- database/sampledata/current.sql 2009-07-23 04:49:04 +0000
+++ database/sampledata/current.sql 2009-07-23 14:49:39 +0000
@@ -4687,7 +4687,7 @@
[snip reversion of change]

=== modified file 'lib/lp/bugs/doc/bugnotification-sending.txt'
--- lib/lp/bugs/doc/bugnotification-sending.txt 2009-07-23 04:51:44 +0000
+++ lib/lp/bugs/doc/bugnotification-sending.txt 2009-07-23 14:45:59 +0000
@@ -1247,9 +1247,40 @@
 cases where the user doesn't save bug notifications, which can make
 subsequent notifications seem somewhat obscure.

+To demonstrate verbose notifications, we'll create a bug, and subscribe
+some very picky users to it. Verbose Person wants verbose emails, while
+Concise Person does not. We'll also create a team with a member that
+wants verbose notifications.
+
+ >>> switch_db_to_launchpad()
+ >>> bug = factory.makeBug(product=factory.makeProduct(title='Foo'),
+ ... title='Foo is broken', description='desc')
+
+ >>> vperson = factory.makePerson(displayname='Verbose Person',
+ ... <email address hidden>')
+ >>> vperson.verbose_bugnotifications = True
+ >>> bug.subscribe(vperson, vperson)
+ <BugSubscription...>
+
+ >>> cperson = factory.makePerson(displayname='Concise Person',
+ ... <email address hidden>')
+ >>> cperson.verbose_bugnotifications = False
+ >>> bug.subscribe(cperson, cperson)
+ <BugSubscription...>
+
+ >>> team = factory.makeTeam(name='bugteam', displayname='Bug Team')
+ >>> team.verbose_bugnotifications = False
+ >>> tperson = factory.makePerson(displayname='Team Person',
+ ... <email address hidden>')
+ >>> tperson.verbose_bugnotifications = True
+ >>> team.addMember(tperson, tperson)
+ >>> bug.subscribe(team, tperson)
+ <BugSubscription...>
+
 We'll expire all existing notifications since we're not interested in
 them:

+ >>> switch_db_to_bugnotification()
     >>> notifications = getUtility(
     ... IBugNotificationSet).getNotificationsToSend()
     >>> len(notifications)
@@ -1261,37 +1292,13 @@
     ... syncUpdate(notification)

-To demonstrate verbose notifications, we'll subscribe David Allouche,
-who receives verbose bug notifications, to bug 15.
-
- >>> bug_15 = getUtility(IBugSet).get(15)
- >>> ddaa = getUtility(IPersonSet).getByName('ddaa')
- >>> ddaa.verbose_bugnotifications
- True
-
- >>> bug_15.subscribe(ddaa, sample_person)
- <...>
-
-Notifications sent through a team membership respect the member's
-verbose_bugnotifications, not the team's. salgado gets notifications
-through his membership in landscape-developers. salgado decides that
-he wants verbose notifications.
-
- >>> salgado = getUtility(IPersonSet).getByName('salgado')
- >>> salgado.verbose_bugnotifications
- True
-
- >>> ls = getUtility(IPersonSet).getByName('landscape-developers')
- >>> ls.verbose_bugnotifications
- False
-
-If we then add a comment to the bug, ddaa and salgado will receieve
+If we then add a ...

Revision history for this message
Graham Binns (gmb) wrote :
Download full text (12.4 KiB)

Hi William,

The changes look good. You've agreed to add a test for the case where
Person.verbose_bugnotifications=False and
Team.verbose_bugnotifications=True.

There are a couple of stylistic changes I'd like you to make, otherwise
this is ready to go once that test has been added.

On Thu, Jul 23, 2009 at 03:00:39PM -0000, William Grant wrote:
> Thanks Graham, I believe I've fixed all those issues.
>
> === modified file 'database/sampledata/current.sql'
> --- database/sampledata/current.sql 2009-07-23 04:49:04 +0000
> +++ database/sampledata/current.sql 2009-07-23 14:49:39 +0000
> @@ -4687,7 +4687,7 @@
> [snip reversion of change]
>
> === modified file 'lib/lp/bugs/doc/bugnotification-sending.txt'
> --- lib/lp/bugs/doc/bugnotification-sending.txt 2009-07-23 04:51:44 +0000
> +++ lib/lp/bugs/doc/bugnotification-sending.txt 2009-07-23 14:45:59 +0000
> @@ -1247,9 +1247,40 @@
> cases where the user doesn't save bug notifications, which can make
> subsequent notifications seem somewhat obscure.
>
> +To demonstrate verbose notifications, we'll create a bug, and subscribe
> +some very picky users to it. Verbose Person wants verbose emails, while
> +Concise Person does not. We'll also create a team with a member that
> +wants verbose notifications.
> +
> + >>> switch_db_to_launchpad()
> + >>> bug = factory.makeBug(product=factory.makeProduct(title='Foo'),
> + ... title='Foo is broken', description='desc')

We prefer to do wrapping of method calls thus:

    >>> bug = factory.makeBug(
    ... product=factory.makeProduct(title='Foo'), title='Foo is broken',
    ... description='desc')

See http://dev.launchpad.net/PythonStyleGuide for details. The way
you've done it is okay, but we've pretty much standardised on the
style above, so we should stick with that (in fact I don't know why the
other version is in the style guide any more; this one is the one that
gets used).

> +
> + >>> vperson = factory.makePerson(displayname='Verbose Person',
> + ... <email address hidden>')
> + >>> vperson.verbose_bugnotifications = True
> + >>> bug.subscribe(vperson, vperson)
> + <BugSubscription...>
> +

We should be verbose in tests where possible. So,
s/vperson/verbose_person/.

> + >>> cperson = factory.makePerson(displayname='Concise Person',
> + ... <email address hidden>')
> + >>> cperson.verbose_bugnotifications = False
> + >>> bug.subscribe(cperson, cperson)
> + <BugSubscription...>
> +

And s/cperson/concise_person/

> + >>> team = factory.makeTeam(name='bugteam', displayname='Bug Team')
> + >>> team.verbose_bugnotifications = False
> + >>> tperson = factory.makePerson(displayname='Team Person',
> + ... <email address hidden>')

And s/tperson/team_person/

> + >>> tperson.verbose_bugnotifications = True
> + >>> team.addMember(tperson, tperson)
> + >>> bug.subscribe(team, tperson)
> + <BugSubscription...>
> +
> We'll expire all existing notifications since we're not interested in
> them:
>
> + >>> switch_db_to_bugnotification()
> >>> notifications = getUti...

Revision history for this message
William Grant (wgrant) wrote :
Download full text (6.0 KiB)

I've added the other case and renamed the variables.

=== modified file 'lib/lp/bugs/doc/bugnotification-sending.txt'
--- lib/lp/bugs/doc/bugnotification-sending.txt 2009-07-23 14:49:07 +0000
+++ lib/lp/bugs/doc/bugnotification-sending.txt 2009-07-23 15:40:14 +0000
@@ -1249,32 +1249,53 @@

 To demonstrate verbose notifications, we'll create a bug, and subscribe
 some very picky users to it. Verbose Person wants verbose emails, while
-Concise Person does not. We'll also create a team with a member that
-wants verbose notifications.
+Concise Person does not. We'll also create teams and give them members
+with different verbose_bugnotifications settings.

     >>> switch_db_to_launchpad()
- >>> bug = factory.makeBug(product=factory.makeProduct(title='Foo'),
- ... title='Foo is broken', description='desc')
-
- >>> vperson = factory.makePerson(displayname='Verbose Person',
- ... <email address hidden>')
- >>> vperson.verbose_bugnotifications = True
- >>> bug.subscribe(vperson, vperson)
- <BugSubscription...>
-
- >>> cperson = factory.makePerson(displayname='Concise Person',
- ... <email address hidden>')
- >>> cperson.verbose_bugnotifications = False
- >>> bug.subscribe(cperson, cperson)
- <BugSubscription...>
-
- >>> team = factory.makeTeam(name='bugteam', displayname='Bug Team')
- >>> team.verbose_bugnotifications = False
- >>> tperson = factory.makePerson(displayname='Team Person',
- ... <email address hidden>')
- >>> tperson.verbose_bugnotifications = True
- >>> team.addMember(tperson, tperson)
- >>> bug.subscribe(team, tperson)
+ >>> bug = factory.makeBug(
+ ... product=factory.makeProduct(title='Foo'), title='Foo is broken',
+ ... description='desc')
+
+ >>> verbose_person = factory.makePerson(
+ ... displayname='Verbose Person', <email address hidden>')
+ >>> verbose_person.verbose_bugnotifications = True
+ >>> bug.subscribe(verbose_person, verbose_person)
+ <BugSubscription...>
+
+ >>> concise_person = factory.makePerson(
+ ... displayname='Concise Person', <email address hidden>')
+ >>> concise_person.verbose_bugnotifications = False
+ >>> bug.subscribe(concise_person, concise_person)
+ <BugSubscription...>
+
+
+Concise Team doesn't want verbose notifications, while Concise Team
+Person, a member, does.
+
+ >>> concise_team = factory.makeTeam(
+ ... name='conciseteam', displayname='Concise Team')
+ >>> concise_team.verbose_bugnotifications = False
+ >>> concise_team_person = factory.makePerson(
+ ... displayname='Concise Team Person',
+ ... <email address hidden>')
+ >>> concise_team_person.verbose_bugnotifications = True
+ >>> concise_team.addMember(concise_team_person, concise_team_person)
+ >>> bug.subscribe(concise_team, concise_team_person)
+ <BugSubscription...>
+
+Verbose Team wants verbose notifications, while Verbose Team Person, a
+member, does not.
+
+ >>> verbose_team = factory.makeTeam(
+ ... name='verboseteam', displayname='Verbos...

Read more...

Revision history for this message
Graham Binns (gmb) wrote :

Hi William,

This looks awesome. Merge approved!

 review approve code
 status approved

review: Approve (code)
Revision history for this message
Barry Warsaw (barry) wrote :

On Jul 23, 2009, at 11:18 AM, Graham Binns wrote:

>>
>> + >>> switch_db_to_launchpad()
>> + >>> bug =
>> factory.makeBug(product=factory.makeProduct(title='Foo'),
>> + ... title='Foo is broken',
>> description='desc')
>
> We prefer to do wrapping of method calls thus:
>
>>>> bug = factory.makeBug(
> ... product=factory.makeProduct(title='Foo'), title='Foo is
> broken',
> ... description='desc')
>
> See http://dev.launchpad.net/PythonStyleGuide for details. The way
> you've done it is okay, but we've pretty much standardised on the
> style above, so we should stick with that (in fact I don't know why
> the
> other version is in the style guide any more; this one is the one that
> gets used).

TOOWTDI. I've updated the style guide.

-Barry

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'database/sampledata/current.sql'
--- database/sampledata/current.sql 2009-07-17 00:26:05 +0000
+++ database/sampledata/current.sql 2009-07-23 04:49:04 +0000
@@ -4687,7 +4687,7 @@
4687INSERT INTO person (id, displayname, teamowner, teamdescription, name, language, fti, defaultmembershipperiod, defaultrenewalperiod, subscriptionpolicy, merged, datecreated, addressline1, addressline2, organization, city, province, country, postcode, phone, homepage_content, icon, mugshot, hide_email_addresses, creation_rationale, creation_comment, registrant, logo, renewal_policy, personal_standing, personal_standing_reason, mail_resumption_date, mailing_list_auto_subscribe_policy, mailing_list_receive_duplicates, visibility, verbose_bugnotifications, account) VALUES (26, 'Daniel Silverstone', NULL, NULL, 'kinnison', NULL, NULL, NULL, NULL, 1, NULL, '2005-06-06 08:59:51.618722', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, false, 2, 'when importing bugs from http://bugzilla.ubuntu.com/', NULL, NULL, 10, 0, NULL, NULL, 1, true, 1, false, 261);4687INSERT INTO person (id, displayname, teamowner, teamdescription, name, language, fti, defaultmembershipperiod, defaultrenewalperiod, subscriptionpolicy, merged, datecreated, addressline1, addressline2, organization, city, province, country, postcode, phone, homepage_content, icon, mugshot, hide_email_addresses, creation_rationale, creation_comment, registrant, logo, renewal_policy, personal_standing, personal_standing_reason, mail_resumption_date, mailing_list_auto_subscribe_policy, mailing_list_receive_duplicates, visibility, verbose_bugnotifications, account) VALUES (26, 'Daniel Silverstone', NULL, NULL, 'kinnison', NULL, NULL, NULL, NULL, 1, NULL, '2005-06-06 08:59:51.618722', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, false, 2, 'when importing bugs from http://bugzilla.ubuntu.com/', NULL, NULL, 10, 0, NULL, NULL, 1, true, 1, false, 261);
4688INSERT INTO person (id, displayname, teamowner, teamdescription, name, language, fti, defaultmembershipperiod, defaultrenewalperiod, subscriptionpolicy, merged, datecreated, addressline1, addressline2, organization, city, province, country, postcode, phone, homepage_content, icon, mugshot, hide_email_addresses, creation_rationale, creation_comment, registrant, logo, renewal_policy, personal_standing, personal_standing_reason, mail_resumption_date, mailing_list_auto_subscribe_policy, mailing_list_receive_duplicates, visibility, verbose_bugnotifications, account) VALUES (27, 'Daniel Henrique Debonzi', NULL, NULL, 'debonzi', NULL, NULL, NULL, NULL, 1, NULL, '2005-06-06 08:59:51.557224', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, false, 8, NULL, NULL, NULL, 10, 0, NULL, NULL, 1, true, 1, false, 271);4688INSERT INTO person (id, displayname, teamowner, teamdescription, name, language, fti, defaultmembershipperiod, defaultrenewalperiod, subscriptionpolicy, merged, datecreated, addressline1, addressline2, organization, city, province, country, postcode, phone, homepage_content, icon, mugshot, hide_email_addresses, creation_rationale, creation_comment, registrant, logo, renewal_policy, personal_standing, personal_standing_reason, mail_resumption_date, mailing_list_auto_subscribe_policy, mailing_list_receive_duplicates, visibility, verbose_bugnotifications, account) VALUES (27, 'Daniel Henrique Debonzi', NULL, NULL, 'debonzi', NULL, NULL, NULL, NULL, 1, NULL, '2005-06-06 08:59:51.557224', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, false, 8, NULL, NULL, NULL, 10, 0, NULL, NULL, 1, true, 1, false, 271);
4689INSERT INTO person (id, displayname, teamowner, teamdescription, name, language, fti, defaultmembershipperiod, defaultrenewalperiod, subscriptionpolicy, merged, datecreated, addressline1, addressline2, organization, city, province, country, postcode, phone, homepage_content, icon, mugshot, hide_email_addresses, creation_rationale, creation_comment, registrant, logo, renewal_policy, personal_standing, personal_standing_reason, mail_resumption_date, mailing_list_auto_subscribe_policy, mailing_list_receive_duplicates, visibility, verbose_bugnotifications, account) VALUES (28, 'Celso Providelo', NULL, NULL, 'cprov', NULL, NULL, NULL, NULL, 1, NULL, '2005-06-06 08:59:51.59705', 'Somewhere', 'in this world', 'Something', 'whatever', 'not mandatory', 75, '999432423', '+55 16 3374-2027', NULL, NULL, NULL, false, 8, NULL, NULL, NULL, 10, 0, NULL, NULL, 1, true, 1, false, 281);4689INSERT INTO person (id, displayname, teamowner, teamdescription, name, language, fti, defaultmembershipperiod, defaultrenewalperiod, subscriptionpolicy, merged, datecreated, addressline1, addressline2, organization, city, province, country, postcode, phone, homepage_content, icon, mugshot, hide_email_addresses, creation_rationale, creation_comment, registrant, logo, renewal_policy, personal_standing, personal_standing_reason, mail_resumption_date, mailing_list_auto_subscribe_policy, mailing_list_receive_duplicates, visibility, verbose_bugnotifications, account) VALUES (28, 'Celso Providelo', NULL, NULL, 'cprov', NULL, NULL, NULL, NULL, 1, NULL, '2005-06-06 08:59:51.59705', 'Somewhere', 'in this world', 'Something', 'whatever', 'not mandatory', 75, '999432423', '+55 16 3374-2027', NULL, NULL, NULL, false, 8, NULL, NULL, NULL, 10, 0, NULL, NULL, 1, true, 1, false, 281);
4690INSERT INTO person (id, displayname, teamowner, teamdescription, name, language, fti, defaultmembershipperiod, defaultrenewalperiod, subscriptionpolicy, merged, datecreated, addressline1, addressline2, organization, city, province, country, postcode, phone, homepage_content, icon, mugshot, hide_email_addresses, creation_rationale, creation_comment, registrant, logo, renewal_policy, personal_standing, personal_standing_reason, mail_resumption_date, mailing_list_auto_subscribe_policy, mailing_list_receive_duplicates, visibility, verbose_bugnotifications, account) VALUES (29, 'Guilherme Salgado', NULL, NULL, 'salgado', NULL, NULL, NULL, NULL, 1, NULL, '2005-06-06 08:59:51.596025', 'Somewhere', 'in this world', 'Something', 'whatever', 'not mandatory', 75, '999432423', '+55 16 3374-2027', NULL, NULL, NULL, false, 8, NULL, NULL, NULL, 10, 0, NULL, NULL, 1, true, 1, false, 291);4690INSERT INTO person (id, displayname, teamowner, teamdescription, name, language, fti, defaultmembershipperiod, defaultrenewalperiod, subscriptionpolicy, merged, datecreated, addressline1, addressline2, organization, city, province, country, postcode, phone, homepage_content, icon, mugshot, hide_email_addresses, creation_rationale, creation_comment, registrant, logo, renewal_policy, personal_standing, personal_standing_reason, mail_resumption_date, mailing_list_auto_subscribe_policy, mailing_list_receive_duplicates, visibility, verbose_bugnotifications, account) VALUES (29, 'Guilherme Salgado', NULL, NULL, 'salgado', NULL, NULL, NULL, NULL, 1, NULL, '2005-06-06 08:59:51.596025', 'Somewhere', 'in this world', 'Something', 'whatever', 'not mandatory', 75, '999432423', '+55 16 3374-2027', NULL, NULL, NULL, false, 8, NULL, NULL, NULL, 10, 0, NULL, NULL, 1, true, 1, true, 291);
4691INSERT INTO person (id, displayname, teamowner, teamdescription, name, language, fti, defaultmembershipperiod, defaultrenewalperiod, subscriptionpolicy, merged, datecreated, addressline1, addressline2, organization, city, province, country, postcode, phone, homepage_content, icon, mugshot, hide_email_addresses, creation_rationale, creation_comment, registrant, logo, renewal_policy, personal_standing, personal_standing_reason, mail_resumption_date, mailing_list_auto_subscribe_policy, mailing_list_receive_duplicates, visibility, verbose_bugnotifications, account) VALUES (30, 'Rosetta Administrators', 25, 'Rosetta Administrators', 'rosetta-admins', NULL, NULL, NULL, NULL, 1, NULL, '2005-06-06 08:59:51.613368', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, false, NULL, NULL, NULL, NULL, 10, 0, NULL, NULL, 1, true, 1, false, NULL);4691INSERT INTO person (id, displayname, teamowner, teamdescription, name, language, fti, defaultmembershipperiod, defaultrenewalperiod, subscriptionpolicy, merged, datecreated, addressline1, addressline2, organization, city, province, country, postcode, phone, homepage_content, icon, mugshot, hide_email_addresses, creation_rationale, creation_comment, registrant, logo, renewal_policy, personal_standing, personal_standing_reason, mail_resumption_date, mailing_list_auto_subscribe_policy, mailing_list_receive_duplicates, visibility, verbose_bugnotifications, account) VALUES (30, 'Rosetta Administrators', 25, 'Rosetta Administrators', 'rosetta-admins', NULL, NULL, NULL, NULL, 1, NULL, '2005-06-06 08:59:51.613368', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, false, NULL, NULL, NULL, NULL, 10, 0, NULL, NULL, 1, true, 1, false, NULL);
4692INSERT INTO person (id, displayname, teamowner, teamdescription, name, language, fti, defaultmembershipperiod, defaultrenewalperiod, subscriptionpolicy, merged, datecreated, addressline1, addressline2, organization, city, province, country, postcode, phone, homepage_content, icon, mugshot, hide_email_addresses, creation_rationale, creation_comment, registrant, logo, renewal_policy, personal_standing, personal_standing_reason, mail_resumption_date, mailing_list_auto_subscribe_policy, mailing_list_receive_duplicates, visibility, verbose_bugnotifications, account) VALUES (31, 'Ubuntu Translators', 30, 'Ubuntu Translators', 'ubuntu-translators', NULL, NULL, NULL, NULL, 1, NULL, '2005-06-06 08:59:51.617651', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, false, NULL, NULL, NULL, NULL, 10, 0, NULL, NULL, 1, true, 1, false, NULL);4692INSERT INTO person (id, displayname, teamowner, teamdescription, name, language, fti, defaultmembershipperiod, defaultrenewalperiod, subscriptionpolicy, merged, datecreated, addressline1, addressline2, organization, city, province, country, postcode, phone, homepage_content, icon, mugshot, hide_email_addresses, creation_rationale, creation_comment, registrant, logo, renewal_policy, personal_standing, personal_standing_reason, mail_resumption_date, mailing_list_auto_subscribe_policy, mailing_list_receive_duplicates, visibility, verbose_bugnotifications, account) VALUES (31, 'Ubuntu Translators', 30, 'Ubuntu Translators', 'ubuntu-translators', NULL, NULL, NULL, NULL, 1, NULL, '2005-06-06 08:59:51.617651', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, false, NULL, NULL, NULL, NULL, 10, 0, NULL, NULL, 1, true, 1, false, NULL);
4693INSERT INTO person (id, displayname, teamowner, teamdescription, name, language, fti, defaultmembershipperiod, defaultrenewalperiod, subscriptionpolicy, merged, datecreated, addressline1, addressline2, organization, city, province, country, postcode, phone, homepage_content, icon, mugshot, hide_email_addresses, creation_rationale, creation_comment, registrant, logo, renewal_policy, personal_standing, personal_standing_reason, mail_resumption_date, mailing_list_auto_subscribe_policy, mailing_list_receive_duplicates, visibility, verbose_bugnotifications, account) VALUES (32, 'GuadaMen', 16, 'The guadalinex maintainers team', 'guadamen', NULL, NULL, 700, 300, 1, NULL, '2005-06-06 08:59:51.606755', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, false, NULL, NULL, NULL, NULL, 10, 0, NULL, NULL, 1, true, 1, false, NULL);4693INSERT INTO person (id, displayname, teamowner, teamdescription, name, language, fti, defaultmembershipperiod, defaultrenewalperiod, subscriptionpolicy, merged, datecreated, addressline1, addressline2, organization, city, province, country, postcode, phone, homepage_content, icon, mugshot, hide_email_addresses, creation_rationale, creation_comment, registrant, logo, renewal_policy, personal_standing, personal_standing_reason, mail_resumption_date, mailing_list_auto_subscribe_policy, mailing_list_receive_duplicates, visibility, verbose_bugnotifications, account) VALUES (32, 'GuadaMen', 16, 'The guadalinex maintainers team', 'guadamen', NULL, NULL, 700, 300, 1, NULL, '2005-06-06 08:59:51.606755', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, false, NULL, NULL, NULL, NULL, 10, 0, NULL, NULL, 1, true, 1, false, NULL);
46944694
=== modified file 'lib/lp/bugs/doc/bugnotification-sending.txt'
--- lib/lp/bugs/doc/bugnotification-sending.txt 2009-06-12 16:36:02 +0000
+++ lib/lp/bugs/doc/bugnotification-sending.txt 2009-07-23 04:51:44 +0000
@@ -59,6 +59,33 @@
59 >>> for bug_notifications, messages in email_notifications:59 >>> for bug_notifications, messages in email_notifications:
60 ... for message in messages:60 ... for message in messages:
61 ... print_notification(message)61 ... print_notification(message)
62 To: foo.bar@canonical.com
63 From: Sample Person <test@canonical.com>
64 Subject: [Bug 1] subject
65 X-Launchpad-Message-Rationale: Subscriber (mozilla-firefox in ubuntu)
66 <BLANKLINE>
67 a comment.
68 <BLANKLINE>
69 ...
70 Firefox does not support SVG
71 http://bugs.launchpad.dev/bugs/1
72 You received this bug notification because you are subscribed to
73 mozilla-firefox in ubuntu.
74 <BLANKLINE>
75 ----------------------------------------------------------------------
76 To: mark@hbd.com
77 From: Sample Person <test@canonical.com>
78 Subject: [Bug 1] subject
79 X-Launchpad-Message-Rationale: Assignee
80 <BLANKLINE>
81 a comment.
82 <BLANKLINE>
83 ...
84 Firefox does not support SVG
85 http://bugs.launchpad.dev/bugs/1
86 You received this bug notification because you are a bug assignee.
87 <BLANKLINE>
88 ----------------------------------------------------------------------
62 To: support@ubuntu.com89 To: support@ubuntu.com
63 From: Sample Person <test@canonical.com>90 From: Sample Person <test@canonical.com>
64 Subject: [Bug 1] subject91 Subject: [Bug 1] subject
@@ -73,19 +100,6 @@
73 Team, which is the registrant for Ubuntu.100 Team, which is the registrant for Ubuntu.
74 <BLANKLINE>101 <BLANKLINE>
75 ----------------------------------------------------------------------102 ----------------------------------------------------------------------
76 To: mark@hbd.com
77 From: Sample Person <test@canonical.com>
78 Subject: [Bug 1] subject
79 X-Launchpad-Message-Rationale: Assignee
80 <BLANKLINE>
81 a comment.
82 <BLANKLINE>
83 ...
84 Firefox does not support SVG
85 http://bugs.launchpad.dev/bugs/1
86 You received this bug notification because you are a bug assignee.
87 <BLANKLINE>
88 ----------------------------------------------------------------------
89 To: test@canonical.com103 To: test@canonical.com
90 From: Sample Person <test@canonical.com>104 From: Sample Person <test@canonical.com>
91 Subject: [Bug 1] subject105 Subject: [Bug 1] subject
@@ -100,20 +114,6 @@
100 of the bug.114 of the bug.
101 <BLANKLINE>115 <BLANKLINE>
102 ----------------------------------------------------------------------116 ----------------------------------------------------------------------
103 To: foo.bar@canonical.com
104 From: Sample Person <test@canonical.com>
105 Subject: [Bug 1] subject
106 X-Launchpad-Message-Rationale: Subscriber (mozilla-firefox in ubuntu)
107 <BLANKLINE>
108 a comment.
109 <BLANKLINE>
110 ...
111 Firefox does not support SVG
112 http://bugs.launchpad.dev/bugs/1
113 You received this bug notification because you are subscribed to
114 mozilla-firefox in ubuntu.
115 <BLANKLINE>
116 ----------------------------------------------------------------------
117117
118You can see that the message above contains the bug's initial comment's118You can see that the message above contains the bug's initial comment's
119message id as its reference, in order to make it thread properly in the119message id as its reference, in order to make it thread properly in the
@@ -167,6 +167,10 @@
167 >>> for bug_notifications, messages in email_notifications:167 >>> for bug_notifications, messages in email_notifications:
168 ... for message in messages:168 ... for message in messages:
169 ... print_notification(message)169 ... print_notification(message)
170 To: foo.bar@canonical.com
171 ...
172 To: mark@hbd.com
173 ...
170 To: support@ubuntu.com174 To: support@ubuntu.com
171 From: Sample Person <test@canonical.com>175 From: Sample Person <test@canonical.com>
172 Subject: Re: [Bug 1] subject176 Subject: Re: [Bug 1] subject
@@ -181,12 +185,8 @@
181 Team, which is the registrant for Ubuntu.185 Team, which is the registrant for Ubuntu.
182 <BLANKLINE>186 <BLANKLINE>
183 ----------------------------------------------------------------------187 ----------------------------------------------------------------------
184 To: mark@hbd.com
185 ...
186 To: test@canonical.com188 To: test@canonical.com
187 ...189 ...
188 To: foo.bar@canonical.com
189 ...
190190
191 >>> flush_notifications()191 >>> flush_notifications()
192192
@@ -207,6 +207,10 @@
207 >>> for bug_notifications, messages in email_notifications:207 >>> for bug_notifications, messages in email_notifications:
208 ... for message in messages:208 ... for message in messages:
209 ... print_notification(message)209 ... print_notification(message)
210 To: foo.bar@canonical.com
211 ...
212 To: mark@hbd.com
213 ...
210 To: support@ubuntu.com214 To: support@ubuntu.com
211 From: Sample Person <test@canonical.com>215 From: Sample Person <test@canonical.com>
212 Subject: [Bug 1] Re: Firefox does not support SVG216 Subject: [Bug 1] Re: Firefox does not support SVG
@@ -223,12 +227,8 @@
223 Team, which is the registrant for Ubuntu.227 Team, which is the registrant for Ubuntu.
224 <BLANKLINE>228 <BLANKLINE>
225 ----------------------------------------------------------------------229 ----------------------------------------------------------------------
226 To: mark@hbd.com
227 ...
228 To: test@canonical.com230 To: test@canonical.com
229 ...231 ...
230 To: foo.bar@canonical.com
231 ...
232232
233If we insert a comment and some more changes, they will be included in233If we insert a comment and some more changes, they will be included in
234the constructed email:234the constructed email:
@@ -255,6 +255,10 @@
255 >>> for bug_notifications, messages in email_notifications:255 >>> for bug_notifications, messages in email_notifications:
256 ... for message in messages:256 ... for message in messages:
257 ... print_notification(message)257 ... print_notification(message)
258 To: foo.bar@canonical.com
259 ...
260 To: mark@hbd.com
261 ...
258 To: support@ubuntu.com262 To: support@ubuntu.com
259 From: Sample Person <test@canonical.com>263 From: Sample Person <test@canonical.com>
260 Subject: [Bug 1] Re: Firefox does not support SVG264 Subject: [Bug 1] Re: Firefox does not support SVG
@@ -276,12 +280,8 @@
276 You received this bug notification because you are a member of Ubuntu280 You received this bug notification because you are a member of Ubuntu
277 Team, which is the registrant for Ubuntu.281 Team, which is the registrant for Ubuntu.
278 ----------------------------------------------------------------------282 ----------------------------------------------------------------------
279 To: mark@hbd.com
280 ...
281 To: test@canonical.com283 To: test@canonical.com
282 ...284 ...
283 To: foo.bar@canonical.com
284 ...
285285
286If we insert yet another comment, it will be sent as a separate email.286If we insert yet another comment, it will be sent as a separate email.
287287
@@ -298,6 +298,10 @@
298 >>> for bug_notifications, messages in email_notifications:298 >>> for bug_notifications, messages in email_notifications:
299 ... for message in messages:299 ... for message in messages:
300 ... print_notification(message)300 ... print_notification(message)
301 To: foo.bar@canonical.com
302 ...
303 To: mark@hbd.com
304 ...
301 To: support@ubuntu.com305 To: support@ubuntu.com
302 From: Sample Person <test@canonical.com>306 From: Sample Person <test@canonical.com>
303 Subject: [Bug 1] Re: Firefox does not support SVG307 Subject: [Bug 1] Re: Firefox does not support SVG
@@ -320,12 +324,12 @@
320 Team, which is the registrant for Ubuntu.324 Team, which is the registrant for Ubuntu.
321 <BLANKLINE>325 <BLANKLINE>
322 ----------------------------------------------------------------------326 ----------------------------------------------------------------------
323 To: mark@hbd.com
324 ...
325 To: test@canonical.com327 To: test@canonical.com
326 ...328 ...
327 To: foo.bar@canonical.com329 To: foo.bar@canonical.com
328 ...330 ...
331 To: mark@hbd.com
332 ...
329 To: support@ubuntu.com333 To: support@ubuntu.com
330 From: Sample Person <test@canonical.com>334 From: Sample Person <test@canonical.com>
331 Subject: [Bug 1] subject335 Subject: [Bug 1] subject
@@ -340,12 +344,8 @@
340 Team, which is the registrant for Ubuntu.344 Team, which is the registrant for Ubuntu.
341 <BLANKLINE>345 <BLANKLINE>
342 ----------------------------------------------------------------------346 ----------------------------------------------------------------------
343 To: mark@hbd.com
344 ...
345 To: test@canonical.com347 To: test@canonical.com
346 ...348 ...
347 To: foo.bar@canonical.com
348 ...
349349
350 >>> flush_notifications()350 >>> flush_notifications()
351351
@@ -372,6 +372,10 @@
372 >>> for bug_notifications, messages in email_notifications:372 >>> for bug_notifications, messages in email_notifications:
373 ... for message in messages:373 ... for message in messages:
374 ... print_notification(message)374 ... print_notification(message)
375 To: foo.bar@canonical.com
376 ...
377 To: mark@hbd.com
378 ...
375 To: support@ubuntu.com379 To: support@ubuntu.com
376 From: Sample Person <test@canonical.com>380 From: Sample Person <test@canonical.com>
377 Subject: [Bug 1] subject381 Subject: [Bug 1] subject
@@ -386,12 +390,12 @@
386 Team, which is the registrant for Ubuntu.390 Team, which is the registrant for Ubuntu.
387 <BLANKLINE>391 <BLANKLINE>
388 ----------------------------------------------------------------------392 ----------------------------------------------------------------------
389 To: mark@hbd.com
390 ...
391 To: test@canonical.com393 To: test@canonical.com
392 ...394 ...
393 To: foo.bar@canonical.com395 To: foo.bar@canonical.com
394 ...396 ...
397 To: mark@hbd.com
398 ...
395 To: support@ubuntu.com399 To: support@ubuntu.com
396 From: Sample Person <test@canonical.com>400 From: Sample Person <test@canonical.com>
397 Subject: [Bug 1] subject401 Subject: [Bug 1] subject
@@ -406,12 +410,12 @@
406 Team, which is the registrant for Ubuntu.410 Team, which is the registrant for Ubuntu.
407 <BLANKLINE>411 <BLANKLINE>
408 ----------------------------------------------------------------------412 ----------------------------------------------------------------------
409 To: mark@hbd.com
410 ...
411 To: test@canonical.com413 To: test@canonical.com
412 ...414 ...
413 To: foo.bar@canonical.com415 To: foo.bar@canonical.com
414 ...416 ...
417 To: mark@hbd.com
418 ...
415 To: support@ubuntu.com419 To: support@ubuntu.com
416 From: Sample Person <test@canonical.com>420 From: Sample Person <test@canonical.com>
417 Subject: [Bug 1] subject421 Subject: [Bug 1] subject
@@ -426,12 +430,8 @@
426 Team, which is the registrant for Ubuntu.430 Team, which is the registrant for Ubuntu.
427 <BLANKLINE>431 <BLANKLINE>
428 ----------------------------------------------------------------------432 ----------------------------------------------------------------------
429 To: mark@hbd.com
430 ...
431 To: test@canonical.com433 To: test@canonical.com
432 ...434 ...
433 To: foo.bar@canonical.com
434 ...
435435
436 >>> flush_notifications()436 >>> flush_notifications()
437437
@@ -460,6 +460,10 @@
460 >>> for bug_notifications, messages in email_notifications:460 >>> for bug_notifications, messages in email_notifications:
461 ... for message in messages:461 ... for message in messages:
462 ... print_notification(message)462 ... print_notification(message)
463 To: foo.bar@canonical.com
464 ...
465 To: mark@hbd.com
466 ...
463 To: support@ubuntu.com467 To: support@ubuntu.com
464 From: Sample Person <test@canonical.com>468 From: Sample Person <test@canonical.com>
465 Subject: [Bug 1] subject469 Subject: [Bug 1] subject
@@ -474,12 +478,12 @@
474 Team, which is the registrant for Ubuntu.478 Team, which is the registrant for Ubuntu.
475 <BLANKLINE>479 <BLANKLINE>
476 ----------------------------------------------------------------------480 ----------------------------------------------------------------------
477 To: mark@hbd.com
478 ...
479 To: test@canonical.com481 To: test@canonical.com
480 ...482 ...
481 To: foo.bar@canonical.com483 To: foo.bar@canonical.com
482 ...484 ...
485 To: mark@hbd.com
486 ...
483 To: support@ubuntu.com487 To: support@ubuntu.com
484 From: Foo Bar <foo.bar@canonical.com>488 From: Foo Bar <foo.bar@canonical.com>
485 Subject: [Bug 1] Re: Firefox does not support SVG489 Subject: [Bug 1] Re: Firefox does not support SVG
@@ -494,12 +498,12 @@
494 Team, which is the registrant for Ubuntu.498 Team, which is the registrant for Ubuntu.
495 <BLANKLINE>499 <BLANKLINE>
496 ----------------------------------------------------------------------500 ----------------------------------------------------------------------
497 To: mark@hbd.com
498 ...
499 To: test@canonical.com501 To: test@canonical.com
500 ...502 ...
501 To: foo.bar@canonical.com503 To: foo.bar@canonical.com
502 ...504 ...
505 To: mark@hbd.com
506 ...
503 To: support@ubuntu.com507 To: support@ubuntu.com
504 From: Sample Person <test@canonical.com>508 From: Sample Person <test@canonical.com>
505 Subject: [Bug 1] Re: Firefox does not support SVG509 Subject: [Bug 1] Re: Firefox does not support SVG
@@ -514,12 +518,8 @@
514 Team, which is the registrant for Ubuntu.518 Team, which is the registrant for Ubuntu.
515 <BLANKLINE>519 <BLANKLINE>
516 ----------------------------------------------------------------------520 ----------------------------------------------------------------------
517 To: mark@hbd.com
518 ...
519 To: test@canonical.com521 To: test@canonical.com
520 ...522 ...
521 To: foo.bar@canonical.com
522 ...
523523
524 >>> flush_notifications()524 >>> flush_notifications()
525525
@@ -602,75 +602,75 @@
602 ... for message in messages:602 ... for message in messages:
603 ... print_notification_headers(message)603 ... print_notification_headers(message)
604 ... print604 ... print
605 To: support@ubuntu.com605 To: mark@hbd.com
606 From: Sample Person <test@canonical.com>606 From: Sample Person <test@canonical.com>
607 Subject: [Bug 2] Re: Blackhole Trash folder607 Subject: [Bug 2] Re: Blackhole Trash folder
608 X-Launchpad-Message-Rationale: Registrant (Tomcat) @ubuntu-team608 X-Launchpad-Message-Rationale: Registrant (Debian)
609 <BLANKLINE>609 <BLANKLINE>
610 To: mark@hbd.com610 To: support@ubuntu.com
611 From: Sample Person <test@canonical.com>611 From: Sample Person <test@canonical.com>
612 Subject: [Bug 2] Re: Blackhole Trash folder612 Subject: [Bug 2] Re: Blackhole Trash folder
613 X-Launchpad-Message-Rationale: Registrant (Debian)613 X-Launchpad-Message-Rationale: Registrant (Tomcat) @ubuntu-team
614 <BLANKLINE>614 <BLANKLINE>
615 To: test@canonical.com615 To: test@canonical.com
616 From: Sample Person <test@canonical.com>616 From: Sample Person <test@canonical.com>
617 Subject: [Bug 2] Re: Blackhole Trash folder617 Subject: [Bug 2] Re: Blackhole Trash folder
618 X-Launchpad-Message-Rationale: Assignee618 X-Launchpad-Message-Rationale: Assignee
619 <BLANKLINE>619 <BLANKLINE>
620 To: support@ubuntu.com620 To: mark@hbd.com
621 From: Foo Bar <foo.bar@canonical.com>621 From: Foo Bar <foo.bar@canonical.com>
622 Subject: [Bug 2] Re: Blackhole Trash folder622 Subject: [Bug 2] Re: Blackhole Trash folder
623 X-Launchpad-Message-Rationale: Registrant (Tomcat) @ubuntu-team623 X-Launchpad-Message-Rationale: Registrant (Debian)
624 <BLANKLINE>624 <BLANKLINE>
625 To: mark@hbd.com625 To: support@ubuntu.com
626 From: Foo Bar <foo.bar@canonical.com>626 From: Foo Bar <foo.bar@canonical.com>
627 Subject: [Bug 2] Re: Blackhole Trash folder627 Subject: [Bug 2] Re: Blackhole Trash folder
628 X-Launchpad-Message-Rationale: Registrant (Debian)628 X-Launchpad-Message-Rationale: Registrant (Tomcat) @ubuntu-team
629 <BLANKLINE>629 <BLANKLINE>
630 To: test@canonical.com630 To: test@canonical.com
631 From: Foo Bar <foo.bar@canonical.com>631 From: Foo Bar <foo.bar@canonical.com>
632 Subject: [Bug 2] Re: Blackhole Trash folder632 Subject: [Bug 2] Re: Blackhole Trash folder
633 X-Launchpad-Message-Rationale: Assignee633 X-Launchpad-Message-Rationale: Assignee
634 <BLANKLINE>634 <BLANKLINE>
635 To: support@ubuntu.com635 To: foo.bar@canonical.com
636 From: Sample Person <test@canonical.com>636 From: Sample Person <test@canonical.com>
637 Subject: [Bug 1] Re: Firefox does not support SVG637 Subject: [Bug 1] Re: Firefox does not support SVG
638 X-Launchpad-Message-Rationale: Registrant (Ubuntu) @ubuntu-team638 X-Launchpad-Message-Rationale: Subscriber (mozilla-firefox in ubuntu)
639 <BLANKLINE>639 <BLANKLINE>
640 To: mark@hbd.com640 To: mark@hbd.com
641 From: Sample Person <test@canonical.com>641 From: Sample Person <test@canonical.com>
642 Subject: [Bug 1] Re: Firefox does not support SVG642 Subject: [Bug 1] Re: Firefox does not support SVG
643 X-Launchpad-Message-Rationale: Assignee643 X-Launchpad-Message-Rationale: Assignee
644 <BLANKLINE>644 <BLANKLINE>
645 To: test@canonical.com645 To: support@ubuntu.com
646 From: Sample Person <test@canonical.com>646 From: Sample Person <test@canonical.com>
647 Subject: [Bug 1] Re: Firefox does not support SVG647 Subject: [Bug 1] Re: Firefox does not support SVG
648 X-Launchpad-Message-Rationale: Subscriber648 X-Launchpad-Message-Rationale: Registrant (Ubuntu) @ubuntu-team
649 <BLANKLINE>649 <BLANKLINE>
650 To: foo.bar@canonical.com650 To: test@canonical.com
651 From: Sample Person <test@canonical.com>651 From: Sample Person <test@canonical.com>
652 Subject: [Bug 1] Re: Firefox does not support SVG652 Subject: [Bug 1] Re: Firefox does not support SVG
653 X-Launchpad-Message-Rationale: Subscriber (mozilla-firefox in ubuntu)653 X-Launchpad-Message-Rationale: Subscriber
654 <BLANKLINE>654 <BLANKLINE>
655 To: support@ubuntu.com655 To: foo.bar@canonical.com
656 From: Foo Bar <foo.bar@canonical.com>656 From: Foo Bar <foo.bar@canonical.com>
657 Subject: [Bug 1] Re: Firefox does not support SVG657 Subject: [Bug 1] Re: Firefox does not support SVG
658 X-Launchpad-Message-Rationale: Registrant (Ubuntu) @ubuntu-team658 X-Launchpad-Message-Rationale: Subscriber (mozilla-firefox in ubuntu)
659 <BLANKLINE>659 <BLANKLINE>
660 To: mark@hbd.com660 To: mark@hbd.com
661 From: Foo Bar <foo.bar@canonical.com>661 From: Foo Bar <foo.bar@canonical.com>
662 Subject: [Bug 1] Re: Firefox does not support SVG662 Subject: [Bug 1] Re: Firefox does not support SVG
663 X-Launchpad-Message-Rationale: Assignee663 X-Launchpad-Message-Rationale: Assignee
664 <BLANKLINE>664 <BLANKLINE>
665 To: test@canonical.com665 To: support@ubuntu.com
666 From: Foo Bar <foo.bar@canonical.com>666 From: Foo Bar <foo.bar@canonical.com>
667 Subject: [Bug 1] Re: Firefox does not support SVG667 Subject: [Bug 1] Re: Firefox does not support SVG
668 X-Launchpad-Message-Rationale: Subscriber668 X-Launchpad-Message-Rationale: Registrant (Ubuntu) @ubuntu-team
669 <BLANKLINE>669 <BLANKLINE>
670 To: foo.bar@canonical.com670 To: test@canonical.com
671 From: Foo Bar <foo.bar@canonical.com>671 From: Foo Bar <foo.bar@canonical.com>
672 Subject: [Bug 1] Re: Firefox does not support SVG672 Subject: [Bug 1] Re: Firefox does not support SVG
673 X-Launchpad-Message-Rationale: Subscriber (mozilla-firefox in ubuntu)673 X-Launchpad-Message-Rationale: Subscriber
674 <BLANKLINE>674 <BLANKLINE>
675675
676There's a blank line before the signature, and the signature marker has676There's a blank line before the signature, and the signature marker has
@@ -689,8 +689,8 @@
689 '-- ',689 '-- ',
690 'Firefox does not support SVG',690 'Firefox does not support SVG',
691 'http://bugs.launchpad.dev/bugs/1',691 'http://bugs.launchpad.dev/bugs/1',
692 'You received this bug notification because you are subscribed to',692 'You received this bug notification because you are a direct subscriber',
693 'mozilla-firefox in ubuntu.']693 'of the bug.']
694694
695 >>> flush_notifications()695 >>> flush_notifications()
696696
@@ -720,11 +720,11 @@
720 >>> for bug_notifications, messages in email_notifications:720 >>> for bug_notifications, messages in email_notifications:
721 ... for message in messages:721 ... for message in messages:
722 ... print message['To']722 ... print message['To']
723 foo.bar@canonical.com
723 marilize@hbd.com724 marilize@hbd.com
724 mark@hbd.com725 mark@hbd.com
726 support@ubuntu.com
725 test@canonical.com727 test@canonical.com
726 support@ubuntu.com
727 foo.bar@canonical.com
728728
729 >>> flush_notifications()729 >>> flush_notifications()
730730
@@ -778,6 +778,23 @@
778 >>> for bug_notifications, messages in get_email_notifications(notifications):778 >>> for bug_notifications, messages in get_email_notifications(notifications):
779 ... for message in messages:779 ... for message in messages:
780 ... print_notification(message)780 ... print_notification(message)
781 To: foo.bar@canonical.com
782 From: Sample Person <test@canonical.com>
783 Subject: [Bug 16] subject
784 X-Launchpad-Message-Rationale: Subscriber (mozilla-firefox in ubuntu) via Bug 1
785 <BLANKLINE>
786 *** This bug is a duplicate of bug 1 ***
787 http://bugs.launchpad.dev/bugs/1
788 <BLANKLINE>
789 a comment.
790 <BLANKLINE>
791 --
792 new bug
793 http://bugs.launchpad.dev/bugs/16
794 You received this bug notification because you are subscribed to
795 mozilla-firefox in ubuntu (via bug 1).
796 <BLANKLINE>
797 ----------------------------------------------------------------------
781 To: marilize@hbd.com798 To: marilize@hbd.com
782 From: Sample Person <test@canonical.com>799 From: Sample Person <test@canonical.com>
783 Subject: [Bug 16] subject800 Subject: [Bug 16] subject
@@ -812,6 +829,23 @@
812 bug 1).829 bug 1).
813 <BLANKLINE>830 <BLANKLINE>
814 ----------------------------------------------------------------------831 ----------------------------------------------------------------------
832 To: support@ubuntu.com
833 From: Sample Person <test@canonical.com>
834 Subject: [Bug 16] subject
835 X-Launchpad-Message-Rationale: Registrant (Ubuntu) @ubuntu-team
836 <BLANKLINE>
837 *** This bug is a duplicate of bug 1 ***
838 http://bugs.launchpad.dev/bugs/1
839 <BLANKLINE>
840 a comment.
841 <BLANKLINE>
842 --
843 new bug
844 http://bugs.launchpad.dev/bugs/16
845 You received this bug notification because you are a member of Ubuntu
846 Team, which is the registrant for Ubuntu.
847 <BLANKLINE>
848 ----------------------------------------------------------------------
815 To: test@canonical.com849 To: test@canonical.com
816 From: Sample Person <test@canonical.com>850 From: Sample Person <test@canonical.com>
817 Subject: [Bug 16] subject851 Subject: [Bug 16] subject
@@ -829,40 +863,6 @@
829 of the bug.863 of the bug.
830 <BLANKLINE>864 <BLANKLINE>
831 ----------------------------------------------------------------------865 ----------------------------------------------------------------------
832 To: support@ubuntu.com
833 From: Sample Person <test@canonical.com>
834 Subject: [Bug 16] subject
835 X-Launchpad-Message-Rationale: Registrant (Ubuntu) @ubuntu-team
836 <BLANKLINE>
837 *** This bug is a duplicate of bug 1 ***
838 http://bugs.launchpad.dev/bugs/1
839 <BLANKLINE>
840 a comment.
841 <BLANKLINE>
842 --
843 new bug
844 http://bugs.launchpad.dev/bugs/16
845 You received this bug notification because you are a member of Ubuntu
846 Team, which is the registrant for Ubuntu.
847 <BLANKLINE>
848 ----------------------------------------------------------------------
849 To: foo.bar@canonical.com
850 From: Sample Person <test@canonical.com>
851 Subject: [Bug 16] subject
852 X-Launchpad-Message-Rationale: Subscriber (mozilla-firefox in ubuntu) via Bug 1
853 <BLANKLINE>
854 *** This bug is a duplicate of bug 1 ***
855 http://bugs.launchpad.dev/bugs/1
856 <BLANKLINE>
857 a comment.
858 <BLANKLINE>
859 --
860 new bug
861 http://bugs.launchpad.dev/bugs/16
862 You received this bug notification because you are subscribed to
863 mozilla-firefox in ubuntu (via bug 1).
864 <BLANKLINE>
865 ----------------------------------------------------------------------
866866
867Also note that notification was sent to Mark as well, since he's a867Also note that notification was sent to Mark as well, since he's a
868subscriber of bug one.868subscriber of bug one.
@@ -985,10 +985,10 @@
985 0985 0
986 >>> print err986 >>> print err
987 INFO creating lockfile987 INFO creating lockfile
988 INFO Notifying mark@hbd.com about bug 2.
989 ...
988 INFO Notifying support@ubuntu.com about bug 2.990 INFO Notifying support@ubuntu.com about bug 2.
989 ...991 ...
990 INFO Notifying mark@hbd.com about bug 2.
991 ...
992 INFO Notifying test@canonical.com about bug 2.992 INFO Notifying test@canonical.com about bug 2.
993 ...993 ...
994 From: Sample Person <test@canonical.com>994 From: Sample Person <test@canonical.com>
@@ -999,14 +999,6 @@
999 ...999 ...
1000 X-Launchpad-Message-Rationale: Assignee1000 X-Launchpad-Message-Rationale: Assignee
1001 ...1001 ...
1002 INFO Notifying marilize@hbd.com about bug 1.
1003 ...
1004 INFO Notifying mark@hbd.com about bug 1.
1005 ...
1006 INFO Notifying test@canonical.com about bug 1.
1007 ...
1008 INFO Notifying support@ubuntu.com about bug 1.
1009 ...
1010 INFO Notifying foo.bar@canonical.com about bug 1.1002 INFO Notifying foo.bar@canonical.com about bug 1.
1011 ...1003 ...
1012 From: Sample Person <test@canonical.com>1004 From: Sample Person <test@canonical.com>
@@ -1021,9 +1013,9 @@
1021 ...1013 ...
1022 INFO Notifying mark@hbd.com about bug 1.1014 INFO Notifying mark@hbd.com about bug 1.
1023 ...1015 ...
1016 INFO Notifying support@ubuntu.com about bug 1.
1017 ...
1024 INFO Notifying test@canonical.com about bug 1.1018 INFO Notifying test@canonical.com about bug 1.
1025 ...
1026 INFO Notifying support@ubuntu.com about bug 1.
1027 ...1019 ...
1028 INFO Notifying foo.bar@canonical.com about bug 1.1020 INFO Notifying foo.bar@canonical.com about bug 1.
1029 ...1021 ...
@@ -1049,6 +1041,14 @@
1049 http://bugs.launchpad.dev/bugs/11041 http://bugs.launchpad.dev/bugs/1
1050 You received this bug notification because you are subscribed to1042 You received this bug notification because you are subscribed to
1051 mozilla-firefox in ubuntu.1043 mozilla-firefox in ubuntu.
1044 <BLANKLINE>
1045 INFO Notifying marilize@hbd.com about bug 1.
1046 ...
1047 INFO Notifying mark@hbd.com about bug 1.
1048 ...
1049 INFO Notifying support@ubuntu.com about bug 1.
1050 ...
1051 INFO Notifying test@canonical.com about bug 1.
1052 ...1052 ...
10531053
1054 >>> flush_notifications()1054 >>> flush_notifications()
@@ -1272,8 +1272,21 @@
1272 >>> bug_15.subscribe(ddaa, sample_person)1272 >>> bug_15.subscribe(ddaa, sample_person)
1273 <...>1273 <...>
12741274
1275If we then add a comment to the bug, ddaa will receieve a notification1275Notifications sent through a team membership respect the member's
1276containing that comment.1276verbose_bugnotifications, not the team's. salgado gets notifications
1277through his membership in landscape-developers. salgado decides that
1278he wants verbose notifications.
1279
1280 >>> salgado = getUtility(IPersonSet).getByName('salgado')
1281 >>> salgado.verbose_bugnotifications
1282 True
1283
1284 >>> ls = getUtility(IPersonSet).getByName('landscape-developers')
1285 >>> ls.verbose_bugnotifications
1286 False
1287
1288If we then add a comment to the bug, ddaa and salgado will receieve
1289notifications containing that comment.
12771290
1278 >>> comment = getUtility(IMessageSet).fromText(1291 >>> comment = getUtility(IMessageSet).fromText(
1279 ... 'subject', 'a really simple comment.', sample_person,1292 ... 'subject', 'a really simple comment.', sample_person,
@@ -1286,10 +1299,11 @@
1286 11299 1
12871300
1288If we pass this notifcation to get_email_notifications we can see that1301If we pass this notifcation to get_email_notifications we can see that
1289ddaa will receieve a notification which contains the bug description and1302ddaa and salgado will receieve a notification which contains the bug
1290its status in all of its targets. All other subscribers will receive1303description and its status in all of its targets. All other subscribers
1291standard notifications that don't include the bug description. To help1304will receive standard notifications that don't include the bug
1292with demonstrating this, we'll define a helper function.1305description. To help with demonstrating this, we'll define a helper
1306function.
12931307
1294 >>> def collate_messages_by_recipient(messages):1308 >>> def collate_messages_by_recipient(messages):
1295 ... messages_by_recipient = {}1309 ... messages_by_recipient = {}
@@ -1350,6 +1364,31 @@
1350 <BLANKLINE>1364 <BLANKLINE>
1351 ----------------------------------------------------------------------1365 ----------------------------------------------------------------------
13521366
1367And salgado does too:
1368
1369 >>> print_notification(
1370 ... collated_messages['guilherme.salgado@canonical.com'][0])
1371 To: guilherme.salgado@canonical.com
1372 From: Sample Person <test@canonical.com>
1373 Subject: [Bug 15] subject
1374 X-Launchpad-Message-Rationale: Subscriber (Redfish) @landscape-developers
1375 <BLANKLINE>
1376 a really simple comment.
1377 <BLANKLINE>
1378 --
1379 Nonsensical bugs are useless
1380 http://bugs.launchpad.dev/bugs/15
1381 You received this bug notification because you are a member of Landscape
1382 Developers, which is subscribed to Redfish.
1383 <BLANKLINE>
1384 Status in Redfish: New
1385 Status in Mozilla Thunderbird: New
1386 <BLANKLINE>
1387 Bug description:
1388 Like this one, natch.
1389 <BLANKLINE>
1390 ----------------------------------------------------------------------
1391
1353== Notification Recipients ==1392== Notification Recipients ==
13541393
1355Bug notifications are sent to direct subscribers of a bug as well as to1394Bug notifications are sent to direct subscribers of a bug as well as to
@@ -1386,16 +1425,21 @@
1386 >>> for bug_notifications, messages in email_notifications:1425 >>> for bug_notifications, messages in email_notifications:
1387 ... for message in messages:1426 ... for message in messages:
1388 ... print_notification(message)1427 ... print_notification(message)
1389 To: support@ubuntu.com1428 To: foo.bar@canonical.com
1390 ...1429 ...
1391 You received this bug notification because you are a member of Ubuntu1430 You received this bug notification because you are subscribed to
1392 Team, which is the registrant for Ubuntu.1431 mozilla-firefox in ubuntu.
1393 <BLANKLINE>1432 <BLANKLINE>
1394 ----------------------------------------------------------------------1433 ----------------------------------------------------------------------
1395 To: test@canonical.com1434 To: marilize@hbd.com
1396 ...1435 ...
1397 You received this bug notification because you are a direct subscriber1436 You received this bug notification because you are a member of ShipIt
1398 of the bug.1437 Administrators, which is a direct subscriber.
1438 <BLANKLINE>
1439 ----------------------------------------------------------------------
1440 To: mark@hbd.com
1441 ...
1442 You received this bug notification because you are a bug assignee.
1399 <BLANKLINE>1443 <BLANKLINE>
1400 ----------------------------------------------------------------------1444 ----------------------------------------------------------------------
1401 To: no-priv@canonical.com1445 To: no-priv@canonical.com
@@ -1412,21 +1456,16 @@
1412 Firefox.1456 Firefox.
1413 <BLANKLINE>1457 <BLANKLINE>
1414 ----------------------------------------------------------------------1458 ----------------------------------------------------------------------
1415 To: mark@hbd.com1459 To: support@ubuntu.com
1416 ...1460 ...
1417 You received this bug notification because you are a bug assignee.1461 You received this bug notification because you are a member of Ubuntu
1418 <BLANKLINE>1462 Team, which is the registrant for Ubuntu.
1419 ----------------------------------------------------------------------1463 <BLANKLINE>
1420 To: foo.bar@canonical.com1464 ----------------------------------------------------------------------
1421 ...1465 To: test@canonical.com
1422 You received this bug notification because you are subscribed to1466 ...
1423 mozilla-firefox in ubuntu.1467 You received this bug notification because you are a direct subscriber
1424 <BLANKLINE>1468 of the bug.
1425 ----------------------------------------------------------------------
1426 To: marilize@hbd.com
1427 ...
1428 You received this bug notification because you are a member of ShipIt
1429 Administrators, which is a direct subscriber.
1430 <BLANKLINE>1469 <BLANKLINE>
1431 ----------------------------------------------------------------------1470 ----------------------------------------------------------------------
14321471
@@ -1449,6 +1488,12 @@
1449 >>> for bug_notifications, messages in email_notifications:1488 >>> for bug_notifications, messages in email_notifications:
1450 ... for message in messages:1489 ... for message in messages:
1451 ... print_notification(message)1490 ... print_notification(message)
1491 To: foo.bar@canonical.com
1492 ...
1493 You received this bug notification because you are subscribed to
1494 mozilla-firefox in ubuntu.
1495 <BLANKLINE>
1496 ----------------------------------------------------------------------
1452 To: marilize@hbd.com1497 To: marilize@hbd.com
1453 From: Sample Person <test@canonical.com>1498 From: Sample Person <test@canonical.com>
1454 Subject: [Bug 1] subject1499 Subject: [Bug 1] subject
@@ -1468,24 +1513,18 @@
1468 You received this bug notification because you are a bug assignee.1513 You received this bug notification because you are a bug assignee.
1469 <BLANKLINE>1514 <BLANKLINE>
1470 ----------------------------------------------------------------------1515 ----------------------------------------------------------------------
1516 To: support@ubuntu.com
1517 ...
1518 You received this bug notification because you are a member of Ubuntu
1519 Team, which is the registrant for Ubuntu.
1520 <BLANKLINE>
1521 ----------------------------------------------------------------------
1471 To: test@canonical.com1522 To: test@canonical.com
1472 ...1523 ...
1473 You received this bug notification because you are a direct subscriber1524 You received this bug notification because you are a direct subscriber
1474 of the bug.1525 of the bug.
1475 <BLANKLINE>1526 <BLANKLINE>
1476 ----------------------------------------------------------------------1527 ----------------------------------------------------------------------
1477 To: support@ubuntu.com
1478 ...
1479 You received this bug notification because you are a member of Ubuntu
1480 Team, which is the registrant for Ubuntu.
1481 <BLANKLINE>
1482 ----------------------------------------------------------------------
1483 To: foo.bar@canonical.com
1484 ...
1485 You received this bug notification because you are subscribed to
1486 mozilla-firefox in ubuntu.
1487 <BLANKLINE>
1488 ----------------------------------------------------------------------
14891528
1490The notifications generated by addChangeNotification() are sent only to1529The notifications generated by addChangeNotification() are sent only to
1491structural subscribers with the notification level METADATA or higher.1530structural subscribers with the notification level METADATA or higher.
@@ -1500,16 +1539,21 @@
1500 >>> for bug_notifications, messages in email_notifications:1539 >>> for bug_notifications, messages in email_notifications:
1501 ... for message in messages:1540 ... for message in messages:
1502 ... print_notification(message)1541 ... print_notification(message)
1503 To: support@ubuntu.com1542 To: foo.bar@canonical.com
1504 ...1543 ...
1505 You received this bug notification because you are a member of Ubuntu1544 You received this bug notification because you are subscribed to
1506 Team, which is the registrant for Ubuntu.1545 mozilla-firefox in ubuntu.
1507 <BLANKLINE>1546 <BLANKLINE>
1508 ----------------------------------------------------------------------1547 ----------------------------------------------------------------------
1509 To: test@canonical.com1548 To: marilize@hbd.com
1510 ...1549 ...
1511 You received this bug notification because you are a direct subscriber1550 You received this bug notification because you are a member of ShipIt
1512 of the bug.1551 Administrators, which is a direct subscriber.
1552 <BLANKLINE>
1553 ----------------------------------------------------------------------
1554 To: mark@hbd.com
1555 ...
1556 You received this bug notification because you are a bug assignee.
1513 <BLANKLINE>1557 <BLANKLINE>
1514 ----------------------------------------------------------------------1558 ----------------------------------------------------------------------
1515 To: no-priv@canonical.com1559 To: no-priv@canonical.com
@@ -1528,21 +1572,16 @@
1528 Firefox.1572 Firefox.
1529 <BLANKLINE>1573 <BLANKLINE>
1530 ----------------------------------------------------------------------1574 ----------------------------------------------------------------------
1531 To: mark@hbd.com1575 To: support@ubuntu.com
1532 ...1576 ...
1533 You received this bug notification because you are a bug assignee.1577 You received this bug notification because you are a member of Ubuntu
1534 <BLANKLINE>1578 Team, which is the registrant for Ubuntu.
1535 ----------------------------------------------------------------------1579 <BLANKLINE>
1536 To: foo.bar@canonical.com1580 ----------------------------------------------------------------------
1537 ...1581 To: test@canonical.com
1538 You received this bug notification because you are subscribed to1582 ...
1539 mozilla-firefox in ubuntu.1583 You received this bug notification because you are a direct subscriber
1540 <BLANKLINE>1584 of the bug.
1541 ----------------------------------------------------------------------
1542 To: marilize@hbd.com
1543 ...
1544 You received this bug notification because you are a member of ShipIt
1545 Administrators, which is a direct subscriber.
1546 <BLANKLINE>1585 <BLANKLINE>
1547 ----------------------------------------------------------------------1586 ----------------------------------------------------------------------
15481587
@@ -1563,6 +1602,12 @@
1563 >>> for bug_notifications, messages in email_notifications:1602 >>> for bug_notifications, messages in email_notifications:
1564 ... for message in messages:1603 ... for message in messages:
1565 ... print_notification(message)1604 ... print_notification(message)
1605 To: foo.bar@canonical.com
1606 ...
1607 You received this bug notification because you are subscribed to
1608 mozilla-firefox in ubuntu.
1609 <BLANKLINE>
1610 ----------------------------------------------------------------------
1566 To: marilize@hbd.com1611 To: marilize@hbd.com
1567 From: Sample Person <test@canonical.com>1612 From: Sample Person <test@canonical.com>
1568 Subject: [Bug 1] Re: Firefox does not support SVG1613 Subject: [Bug 1] Re: Firefox does not support SVG
@@ -1582,21 +1627,15 @@
1582 You received this bug notification because you are a bug assignee.1627 You received this bug notification because you are a bug assignee.
1583 <BLANKLINE>1628 <BLANKLINE>
1584 ----------------------------------------------------------------------1629 ----------------------------------------------------------------------
1630 To: support@ubuntu.com
1631 ...
1632 You received this bug notification because you are a member of Ubuntu
1633 Team, which is the registrant for Ubuntu.
1634 <BLANKLINE>
1635 ----------------------------------------------------------------------
1585 To: test@canonical.com1636 To: test@canonical.com
1586 ...1637 ...
1587 You received this bug notification because you are a direct subscriber1638 You received this bug notification because you are a direct subscriber
1588 of the bug.1639 of the bug.
1589 <BLANKLINE>1640 <BLANKLINE>
1590 ----------------------------------------------------------------------1641 ----------------------------------------------------------------------
1591 To: support@ubuntu.com
1592 ...
1593 You received this bug notification because you are a member of Ubuntu
1594 Team, which is the registrant for Ubuntu.
1595 <BLANKLINE>
1596 ----------------------------------------------------------------------
1597 To: foo.bar@canonical.com
1598 ...
1599 You received this bug notification because you are subscribed to
1600 mozilla-firefox in ubuntu.
1601 <BLANKLINE>
1602 ----------------------------------------------------------------------
16031642
=== modified file 'lib/lp/bugs/scripts/bugnotification.py'
--- lib/lp/bugs/scripts/bugnotification.py 2009-06-25 00:40:31 +0000
+++ lib/lp/bugs/scripts/bugnotification.py 2009-07-23 13:02:15 +0000
@@ -11,8 +11,7 @@
1111
12from canonical.config import config12from canonical.config import config
13from canonical.database.sqlbase import rollback, begin13from canonical.database.sqlbase import rollback, begin
14from canonical.launchpad.helpers import (14from canonical.launchpad.helpers import emailPeople, get_email_template
15 get_contact_email_addresses, get_email_template)
16from lp.bugs.interfaces.bugmessage import IBugMessageSet15from lp.bugs.interfaces.bugmessage import IBugMessageSet
17from canonical.launchpad.interfaces.launchpad import ILaunchpadCelebrities16from canonical.launchpad.interfaces.launchpad import ILaunchpadCelebrities
18from lp.registry.interfaces.person import IPersonSet17from lp.registry.interfaces.person import IPersonSet
@@ -41,8 +40,8 @@
41 recipients = {}40 recipients = {}
42 for notification in bug_notifications:41 for notification in bug_notifications:
43 for recipient in notification.recipients:42 for recipient in notification.recipients:
44 for address in get_contact_email_addresses(recipient.person):43 for emailperson in emailPeople(recipient.person):
45 recipients[address] = recipient44 recipients[emailperson] = recipient
4645
47 for notification in bug_notifications:46 for notification in bug_notifications:
48 assert notification.bug == bug, bug.id47 assert notification.bug == bug, bug.id
@@ -105,14 +104,18 @@
105 config.malone.comment_syncing_team)104 config.malone.comment_syncing_team)
106 # Only members of the comment syncing team should get comment105 # Only members of the comment syncing team should get comment
107 # notifications related to bug watches or initial comment imports.106 # notifications related to bug watches or initial comment imports.
107 # XXX wgrant 2009-07-23: Do we want to take the emailperson's or
108 # recipient's membership?
108 if (is_initial_import_notification or109 if (is_initial_import_notification or
109 (bug_message is not None and bug_message.bugwatch is not None)):110 (bug_message is not None and bug_message.bugwatch is not None)):
110 recipients = dict(111 recipients = dict(
111 (address, recipient)112 (emailperson, recipient)
112 for address, recipient in recipients.items()113 for emailperson, recipient in recipients.items()
113 if recipient.person.inTeam(comment_syncing_team))114 if recipient.person.inTeam(comment_syncing_team))
114 bug_notification_builder = BugNotificationBuilder(bug)115 bug_notification_builder = BugNotificationBuilder(bug)
115 for address, recipient in recipients.items():116 for emailperson, recipient in sorted(recipients.items(),
117 key=lambda t: t[0].preferredemail.email):
118 address = str(emailperson.preferredemail.email)
116 reason = recipient.reason_body119 reason = recipient.reason_body
117 rationale = recipient.reason_header120 rationale = recipient.reason_header
118121
@@ -125,8 +128,7 @@
125 # If the person we're sending to receives verbose notifications128 # If the person we're sending to receives verbose notifications
126 # we include the description and status of the bug in the email129 # we include the description and status of the bug in the email
127 # footer.130 # footer.
128 person = recipient.person131 if emailperson.verbose_bugnotifications:
129 if person.verbose_bugnotifications:
130 email_template = 'bug-notification-verbose.txt'132 email_template = 'bug-notification-verbose.txt'
131 body_data['bug_description'] = bug.description133 body_data['bug_description'] = bug.description
132134

Subscribers

People subscribed via source and target branches

to status/vote changes: