I made the following changes:
* Added a windmill test
* Changed the return value from IPerson.addMember() so
the UI knows what status it decided to use.
* If the user is allowed to invite a member because they can admin
the owning team and if the user is allowed to accept the invitation
because they can admin the member team, addMember() now just fully
approves the membership.
Over 50 tests broke because I changed the return value for
addMember() and setStatus(). I only fixed one of them as a sample.
The rest will have to wait for a followup branch, since I'm interested
in getting feedback on the changes I made already.
Implementation details
----------------------
lib/canonical/launchpad/icing/style-3-0.css
lib/canonical/launchpad/icing/style.css
Moved the unseen style to style-3-0.css since style.css
will be going away eventually.
lib/canonical/launchpad/javascript/code/codereview.js
Added bug number to XXX.
lib/canonical/launchpad/javascript/registry/team.js
Added handling of teams as new members.
lib/lp/registry/browser/person.py
Added code for a list of recently invited members in
the membership portlet.
Using a css class to hide the lists instead of setting
the element's style attribute.
Modified the view for +add-my-teams so that it matches
the behavior of the ajax "Add member" link.
lib/lp/registry/browser/tests/mailinglist-views.txt
Fixed test for new return values.
lib/lp/registry/interfaces/person.py
Documented new return value and organized docs by param.
lib/lp/registry/templates/team-index.pt
Fixed mixing space between left and right portlets.
lib/lp/registry/templates/team-members.pt
Hide former members list from non-admins, since some users
complain when it appears that they used to be a member of a team
that they were added to on accident.
lib/lp/registry/templates/team-portlet-membership.pt
Added recently invited member list.
* Open http://launchpad.dev/~testing-spanish-team
* Log in as <email address hidden>.
* Click on the green "Add member" link in the portlet.
* Search for "rosetta" and click on the rosetta admins team.
* That team should be added to the "Recently approved" list
since carlos admins both of them.
* Click on the green "Add member" link in the portlet.
* Search for "simple" and click on the Simple Team.
* That team should be added to the "Recently invited" list
since carlos does not admin the Simple Team.
* Log out.
* The "Add member" link should be gone.
Summary
-------
This branch is dependent on
lp:~edwin-grubbs/launchpad/bug-482176-add-team-member-ajax-part1
I made the following changes:
* Added a windmill test
* Changed the return value from IPerson.addMember() so
the UI knows what status it decided to use.
* If the user is allowed to invite a member because they can admin
the owning team and if the user is allowed to accept the invitation
because they can admin the member team, addMember() now just fully
approves the membership.
Over 50 tests broke because I changed the return value for
addMember() and setStatus(). I only fixed one of them as a sample.
The rest will have to wait for a followup branch, since I'm interested
in getting feedback on the changes I made already.
Implementation details ------- ------- -
-------
lib/canonical/ launchpad/ icing/style- 3-0.css launchpad/ icing/style. css
lib/canonical/
Moved the unseen style to style-3-0.css since style.css
will be going away eventually.
lib/canonical/ launchpad/ javascript/ code/codereview .js
Added bug number to XXX.
lib/canonical/ launchpad/ javascript/ registry/ team.js
Added handling of teams as new members.
lib/lp/ registry/ browser/ person. py
Added code for a list of recently invited members in
the membership portlet.
Using a css class to hide the lists instead of setting
the element's style attribute.
Modified the view for +add-my-teams so that it matches
the behavior of the ajax "Add member" link.
lib/lp/ registry/ browser/ tests/mailingli st-views. txt
Fixed test for new return values.
lib/lp/ registry/ interfaces/ person. py
Documented new return value and organized docs by param.
lib/lp/ registry/ model/person. py
Changed return value.
lib/lp/ registry/ templates/ team-index. pt
Fixed mixing space between left and right portlets.
lib/lp/ registry/ templates/ team-members. pt
Hide former members list from non-admins, since some users
complain when it appears that they used to be a member of a team
that they were added to on accident.
lib/lp/ registry/ templates/ team-portlet- membership. pt
Added recently invited member list.
lib/lp/ registry/ windmill/ tests/test_ team_index. py
Added windmill test.
Tests
-----
./bin/test -vv -t mailinglist- views.txt RegistryWindmil lTest -t test_team_index
./bin/test -vv --layer=
Demo and Q/A
------------
* Open http:// launchpad. dev/~testing- spanish- team
* Log in as <email address hidden>.
* Click on the green "Add member" link in the portlet.
* Search for "rosetta" and click on the rosetta admins team.
* That team should be added to the "Recently approved" list
since carlos admins both of them.
* Click on the green "Add member" link in the portlet.
* Search for "simple" and click on the Simple Team.
* That team should be added to the "Recently invited" list
since carlos does not admin the Simple Team.
* Log out.
* The "Add member" link should be gone.