Merge lp:~edwin-grubbs/launchpad/bug-576388-proposing-team-info-message into lp:launchpad

Proposed by Edwin Grubbs
Status: Merged
Approved by: Edwin Grubbs
Approved revision: no longer in the source branch.
Merged at revision: 11103
Proposed branch: lp:~edwin-grubbs/launchpad/bug-576388-proposing-team-info-message
Merge into: lp:launchpad
Diff against target: 86 lines (+35/-13)
2 files modified
lib/lp/registry/browser/person.py (+33/-11)
lib/lp/registry/stories/team/xx-team-add-my-teams.txt (+2/-2)
To merge this branch: bzr merge lp:~edwin-grubbs/launchpad/bug-576388-proposing-team-info-message
Reviewer Review Type Date Requested Status
Brad Crittenden (community) code Approve
Review via email: mp+29026@code.launchpad.net

Description of the change

Improved informational message so that it will not say a team was proposed when it was really added due to having an existing invite.

To post a comment you must log in.
Revision history for this message
Brad Crittenden (bac) wrote :

The branch looks good Edwin.

Personally I think:

team_string = team_names[0]

is more readable than:

[team_string] = team_names

review: Approve (code)

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'lib/lp/registry/browser/person.py'
--- lib/lp/registry/browser/person.py 2010-06-30 01:39:11 +0000
+++ lib/lp/registry/browser/person.py 2010-07-08 15:12:48 +0000
@@ -4201,6 +4201,10 @@
4201 context = self.context4201 context = self.context
4202 is_admin = check_permission('launchpad.Admin', context)4202 is_admin = check_permission('launchpad.Admin', context)
4203 membership_set = getUtility(ITeamMembershipSet)4203 membership_set = getUtility(ITeamMembershipSet)
4204 proposed_team_names = []
4205 added_team_names = []
4206 accepted_invite_team_names = []
4207 membership_set = getUtility(ITeamMembershipSet)
4204 for team in data['teams']:4208 for team in data['teams']:
4205 membership = membership_set.getByPersonAndTeam(team, context)4209 membership = membership_set.getByPersonAndTeam(team, context)
4206 if (membership is not None4210 if (membership is not None
@@ -4209,21 +4213,39 @@
4209 context,4213 context,
4210 'Accepted an already pending invitation while trying to '4214 'Accepted an already pending invitation while trying to '
4211 'propose the team for membership.')4215 'propose the team for membership.')
4216 accepted_invite_team_names.append(team.displayname)
4212 elif is_admin:4217 elif is_admin:
4213 context.addMember(team, reviewer=self.user)4218 context.addMember(team, reviewer=self.user)
4219 added_team_names.append(team.displayname)
4214 else:4220 else:
4215 team.join(context, requester=self.user)4221 team.join(context, requester=self.user)
4216 if (context.subscriptionpolicy == TeamSubscriptionPolicy.MODERATED4222 membership = membership_set.getByPersonAndTeam(team, context)
4217 and not is_admin):4223 if membership.status == TeamMembershipStatus.PROPOSED:
4218 msg = 'proposed to this team.'4224 proposed_team_names.append(team.displayname)
4219 else:4225 elif membership.status == TeamMembershipStatus.APPROVED:
4220 msg = 'added to this team.'4226 added_team_names.append(team.displayname)
4221 if len(data['teams']) > 1:4227 else:
4222 msg = "have been %s" % msg4228 raise AssertionError(
4223 else:4229 'Unexpected membership status (%s) for %s.'
4224 msg = "has been %s" % msg4230 % (membership.status.name, team.name))
4225 team_names = ', '.join(team.displayname for team in data['teams'])4231 full_message = ''
4226 self.request.response.addInfoNotification("%s %s" % (team_names, msg))4232 for team_names, message in (
4233 (proposed_team_names, 'proposed to this team.'),
4234 (added_team_names, 'added to this team.'),
4235 (accepted_invite_team_names,
4236 'added to this team because of an existing invite.'),
4237 ):
4238 if len(team_names) == 0:
4239 continue
4240 elif len(team_names) == 1:
4241 verb = 'has been'
4242 team_string = team_names[0]
4243 elif len(team_names) > 1:
4244 verb = 'have been'
4245 team_string= (
4246 ', '.join(team_names[:-1]) + ' and ' + team_names[-1])
4247 full_message += '%s %s %s ' % (team_string, verb, message)
4248 self.request.response.addInfoNotification(full_message)
42274249
42284250
4229class TeamLeaveView(LaunchpadFormView, TeamJoinMixin):4251class TeamLeaveView(LaunchpadFormView, TeamJoinMixin):
42304252
=== modified file 'lib/lp/registry/stories/team/xx-team-add-my-teams.txt'
--- lib/lp/registry/stories/team/xx-team-add-my-teams.txt 2010-06-29 18:13:00 +0000
+++ lib/lp/registry/stories/team/xx-team-add-my-teams.txt 2010-07-08 15:12:48 +0000
@@ -62,7 +62,7 @@
62 >>> print user_browser.title62 >>> print user_browser.title
63 Super Team in Launchpad63 Super Team in Launchpad
64 >>> print get_feedback_messages(user_browser.contents)64 >>> print get_feedback_messages(user_browser.contents)
65 [u'Sub Team has been added to this team.']65 [u'Sub Team has been added to this team because of an existing invite.']
66 >>> print extract_text(66 >>> print extract_text(
67 ... find_tag_by_id(user_browser.contents, 'recently-approved'))67 ... find_tag_by_id(user_browser.contents, 'recently-approved'))
68 Latest members68 Latest members
@@ -146,7 +146,7 @@
146 ... 'guadamen', 'ubuntu-security']146 ... 'guadamen', 'ubuntu-security']
147 >>> browser.getControl('Continue').click()147 >>> browser.getControl('Continue').click()
148 >>> print "\n".join(get_feedback_messages(browser.contents))148 >>> print "\n".join(get_feedback_messages(browser.contents))
149 GuadaMen, Ubuntu Security Team have been added to this team.149 GuadaMen and Ubuntu Security Team have been added to this team.
150150
151And when no teams can be added, a message is displayed:151And when no teams can be added, a message is displayed:
152152