launchpad-reviewers team mailing list archive
-
launchpad-reviewers team
-
Mailing list archive
-
Message #33013
[Merge] ~alvarocs/launchpad:remove-user-manage-mailinglist into launchpad:master
Alvaro Crespo Serrano has proposed merging ~alvarocs/launchpad:remove-user-manage-mailinglist into launchpad:master.
Commit message:
Disable and remove person edit mailing lists page and UI references
Requested reviews:
Launchpad code reviewers (launchpad-reviewers)
For more details, see:
https://code.launchpad.net/~alvarocs/launchpad/+git/launchpad/+merge/493284
--
Your team Launchpad code reviewers is requested to review the proposed merge of ~alvarocs/launchpad:remove-user-manage-mailinglist into launchpad:master.
diff --git a/lib/lp/registry/browser/configure.zcml b/lib/lp/registry/browser/configure.zcml
index 81f8048..8fa855a 100644
--- a/lib/lp/registry/browser/configure.zcml
+++ b/lib/lp/registry/browser/configure.zcml
@@ -1275,13 +1275,6 @@
/>
</browser:pages>
<browser:page
- name="+editmailinglists"
- for="lp.registry.interfaces.person.IPerson"
- class="lp.registry.browser.person.PersonEditMailingListsView"
- permission="launchpad.Edit"
- template="../templates/person-editmailinglists.pt"
- />
- <browser:page
name="+oauth-tokens"
for="lp.registry.interfaces.person.IPerson"
class="lp.registry.browser.person.PersonOAuthTokensView"
diff --git a/lib/lp/registry/stories/mailinglists/subscriptions.rst b/lib/lp/registry/stories/mailinglists/subscriptions.rst
deleted file mode 100644
index cb8db26..0000000
--- a/lib/lp/registry/stories/mailinglists/subscriptions.rst
+++ /dev/null
@@ -1,665 +0,0 @@
-====================================
-Mailing list subscription management
-====================================
-
-Teams can have mailing lists associated with them, and a member of a
-team with a usable mailing list can subscribe to that list. A person
-can subscribe to a mailing list using any of their email addresses, or a
-dynamic subscription which uses whichever email address is their
-preferred address at a given time.
-
-Non-team members can request a subscription to a mailing list at the
-same time as they sign up for a new team. Their list membership is
-approved at the same time that they are approved for the team.
-
-
-Setup
-=====
-
-Carlos is a member of four teams: admins, rosetta-admins, testing-spanish-team
-and ubuntu-translators. He has two email addresses, one of which is his
-preferred email address. Both the admins and rosetta-admins teams are given
-mailing lists but only admins will actually use its mailing list as its
-contact address.
-
- >>> from zope.security.management import newInteraction, endInteraction
- >>> from lp.testing.factory import LaunchpadObjectFactory
-
- >>> newInteraction()
- >>> factory = LaunchpadObjectFactory()
- >>> factory.makeTeamAndMailingList("admins", "foo") # doctest: +ELLIPSIS
- (<Person admins (Launchpad Administrators)>,
- <MailingList for team "admins"; status=ACTIVE;
- address=admins@xxxxxxxxxxxxxxxxxxxx at ...>)
- >>> endInteraction()
-
- >>> newInteraction()
- >>> factory = LaunchpadObjectFactory()
- >>> factory.makeTeamAndMailingList(
- ... "rosetta-admins", "foo"
- ... ) # doctest: +ELLIPSIS
- (<Person rosetta-admins (Rosetta Administrators)>,
- <MailingList for team "rosetta-admins"; status=ACTIVE;
- address=rosetta-admins@xxxxxxxxxxxxxxxxxxxx at ...>)
- >>> endInteraction()
-
- >>> admin_browser.open("http://launchpad.test/~admins/+edit")
- >>> admin_browser.getLink(url="+contactaddress").click()
- >>> admin_browser.getControl("The Launchpad mailing list").selected = True
- >>> admin_browser.getControl("Change").click()
-
-Carlos requests a mailing list for testing-spanish-team but it will not
-actually be approved (new mailing lists cannot be created).
-
- >>> browser = setupBrowser(auth="Basic carlos@xxxxxxxxxxxxx:test")
- >>> browser.open(
- ... "http://launchpad.test/~testing-spanish-team/+mailinglist"
- ... )
- >>> print(
- ... extract_text(find_tag_by_id(browser.contents, "no_mailing_list"))
- ... )
- Launchpad no longer supports the creation of new mailing lists.
- Read more about it here.
-
-
-Subscribing
-===========
-
-Any team member can join the mailing list.
-
- >>> admin_browser.open("http://launchpad.test/~rosetta-admins/+addmember")
- >>> admin_browser.getControl("New member").value = "no-team-memberships"
- >>> admin_browser.getControl("Add Member").click()
-
- >>> from lp.testing.pages import setupBrowserFreshLogin
- >>> from zope.component import getUtility
- >>> from lp.registry.interfaces.person import IPersonSet
- >>> login(ANONYMOUS)
- >>> person = getUtility(IPersonSet).getByEmail(
- ... "no-team-memberships@xxxxxxxx"
- ... )
- >>> logout()
- >>> no_team_browser = setupBrowserFreshLogin(person)
-
- >>> no_team_browser.open(
- ... "http://launchpad.test/people/+me/+editmailinglists"
- ... )
- >>> rosetta_admins = no_team_browser.getControl(
- ... name="field.subscription.rosetta-admins"
- ... )
- >>> rosetta_admins.displayOptions
- ['Preferred address', "Don't subscribe", 'no-team-memberships@xxxxxxxx']
-
-
-Subscription management
-=======================
-
-To subscribe to a mailing list, Carlos uses his subscription management
-screen, which shows a subscription control for the mailing lists of every team
-he's a member of. Mailing lists show up in this list regardless of whether
-it's currently the team contact method.
-
- >>> login(ANONYMOUS)
- >>> carlos = getUtility(IPersonSet).getByName("carlos")
- >>> logout()
- >>> carlos_browser = setupBrowserFreshLogin(carlos)
- >>> carlos_browser.open("http://launchpad.test/~carlos")
- >>> carlos_browser.getLink(url="+editmailinglists").click()
-
- >>> from lp.services.helpers import backslashreplace
- >>> print(backslashreplace(carlos_browser.title))
- Change your mailing list subscriptions...
-
- >>> admins = carlos_browser.getControl(name="field.subscription.admins")
- >>> rosetta_admins = carlos_browser.getControl(
- ... name="field.subscription.rosetta-admins"
- ... )
-
- >>> admins.displayOptions
- ['Preferred address', "Don't subscribe",
- 'carlos@xxxxxxxxxxxxx', 'carlos@xxxxxxxx']
-
- >>> print(admins.value)
- ["Don't subscribe"]
- >>> print(rosetta_admins.value)
- ["Don't subscribe"]
-
-However, testing-spanish-team's list doesn't show up because its creation has
-not been completed (specifically, Mailman hasn't constructed it yet).
-
- >>> carlos_browser.getControl(
- ... name="field.subscription.testing-spanish-team"
- ... )
- Traceback (most recent call last):
- ...
- LookupError: name ...'field.subscription.testing-spanish-team'
- ...
-
-Carlos can subscribe to a list using his preferred email address. Such
-subscriptions will track changes to his preferred address without requiring
-him to update his subscription. So this is not the same as subscribing
-explicitly with whatever is his preferred email address.
-
- >>> admins = carlos_browser.getControl(name="field.subscription.admins")
- >>> admins.value = ["Preferred address"]
- >>> carlos_browser.getControl("Update Subscriptions").click()
-
- >>> print_feedback_messages(carlos_browser.contents)
- Subscriptions updated.
-
- >>> admins = carlos_browser.getControl(name="field.subscription.admins")
- >>> rosetta_admins = carlos_browser.getControl(
- ... name="field.subscription.rosetta-admins"
- ... )
- >>> print(admins.value)
- ['Preferred address']
- >>> print(rosetta_admins.value)
- ["Don't subscribe"]
-
-Carlos can subscribe to a list using any of his validated addresses
-explicitly.
-
- >>> admins.value = ["carlos@xxxxxxxxxxxxx"]
- >>> rosetta_admins.value = ["carlos@xxxxxxxx"]
- >>> carlos_browser.getControl("Update Subscriptions").click()
-
- >>> admins = carlos_browser.getControl(name="field.subscription.admins")
- >>> rosetta_admins = carlos_browser.getControl(
- ... name="field.subscription.rosetta-admins"
- ... )
- >>> print(admins.value)
- ['carlos@xxxxxxxxxxxxx']
- >>> print(rosetta_admins.value)
- ['carlos@xxxxxxxx']
-
-He can switch from one address to another, or from a specific address
-to the preferred address.
-
- >>> admins.value = ["Preferred address"]
- >>> rosetta_admins.value = ["carlos@xxxxxxxxxxxxx"]
- >>> carlos_browser.getControl("Update Subscriptions").click()
-
- >>> admins = carlos_browser.getControl(name="field.subscription.admins")
- >>> rosetta_admins = carlos_browser.getControl(
- ... name="field.subscription.rosetta-admins"
- ... )
- >>> print(admins.value)
- ['Preferred address']
- >>> print(rosetta_admins.value)
- ['carlos@xxxxxxxxxxxxx']
-
-Finally, he can unsubscribe from any mailing list by setting the subscription
-menu item to "Don't subscribe".
-
- >>> admins = carlos_browser.getControl(name="field.subscription.admins")
- >>> rosetta_admins = carlos_browser.getControl(
- ... name="field.subscription.rosetta-admins"
- ... )
- >>> admins.value = ["Don't subscribe"]
- >>> rosetta_admins.value = ["Don't subscribe"]
- >>> carlos_browser.getControl("Update Subscriptions").click()
-
- >>> admins = carlos_browser.getControl(name="field.subscription.admins")
- >>> rosetta_admins = carlos_browser.getControl(
- ... name="field.subscription.rosetta-admins"
- ... )
- >>> print(admins.value)
- ["Don't subscribe"]
- >>> print(rosetta_admins.value)
- ["Don't subscribe"]
-
-
-Subscription during team sign up
-================================
-
-Jdub is only a member of the ubuntu team. He can request to be placed
-on another team's mailing list at the same time that he requests
-membership on the team.
-
-First we need to confirm that the desired team has a list to subscribe
-to. We will use Carlos, as he is an administrator for the Rosetta
-Admins team, and he should know if the list is available.
-
- >>> carlos_browser.open("http://launchpad.test/~carlos")
- >>> carlos_browser.getLink(url="+editmailinglists").click()
- >>> print(backslashreplace(carlos_browser.title))
- Change your mailing list subscriptions...
-
- >>> rosetta_admins = carlos_browser.getControl(
- ... name="field.subscription.rosetta-admins"
- ... )
- >>> rosetta_admins.displayOptions
- ['Preferred address', "Don't subscribe",
- 'carlos@xxxxxxxxxxxxx', 'carlos@xxxxxxxx']
-
-Now Jdub can apply for team membership and mailing list access.
-
- >>> browser = setupBrowser(auth="Basic jeff.waugh@xxxxxxxxxxxxxxx:test")
- >>> browser.open("http://launchpad.test/~rosetta-admins")
- >>> browser.getLink("Join the team").click()
- >>> browser.url
- 'http://launchpad.test/~rosetta-admins/+join'
-
- >>> browser.getControl(name="field.mailinglist_subscribe").value = True
- >>> browser.getControl(name="field.actions.join").click()
- >>> browser.url
- 'http://launchpad.test/~rosetta-admins'
-
- >>> for tag in find_tags_by_class(browser.contents, "informational"):
- ... print(tag.decode_contents())
- ...
- Your request to join Rosetta Administrators is awaiting approval.
- Your mailing list subscription is awaiting approval.
-
-Jdub hasn't been approved for the team yet, so he is not subscribed to
-the list. The list does not show up on his Subscription Management
-screen.
-
- >>> login(ANONYMOUS)
- >>> jdub = getUtility(IPersonSet).getByName("jdub")
- >>> logout()
- >>> jdub_browser = setupBrowserFreshLogin(jdub)
- >>> jdub_browser.open("http://launchpad.test/~jdub")
- >>> jdub_browser.getLink(url="+editmailinglists").click()
- >>> print(jdub_browser.title)
- Change your mailing list subscriptions...
-
- >>> jdub_browser.getControl(name="field.subscription.rosetta-admins")
- Traceback (most recent call last):
- ...
- LookupError: name ...'field.subscription.rosetta-admins'
- ...
-
-Jdub will become a member of the team's mailing list as soon as he has
-been approved for the team.
-
- >>> admin_browser.open("http://launchpad.test/~rosetta-admins")
- >>> admin_browser.getLink("All members").click()
- >>> admin_browser.getLink(url="/~rosetta-admins/+member/jdub").click()
- >>> print(admin_browser.url)
- http://launchpad.test/~rosetta-admins/+member/jdub
- >>> admin_browser.getControl(name="approve").click()
-
-His mailing list subscription is now available to be managed.
-
- >>> jdub_browser.open("http://launchpad.test/~jdub")
- >>> jdub_browser.getLink(url="+editmailinglists").click()
- >>> print(jdub_browser.title)
- Change your mailing list subscriptions...
-
- >>> rosetta_team = jdub_browser.getControl(
- ... name="field.subscription.rosetta-admins"
- ... )
-
- >>> rosetta_team.displayOptions
- ['Preferred address', "Don't subscribe", 'jeff.waugh@xxxxxxxxxxxxxxx']
-
-Jdub's mailing list preferences are preserved when he leaves the team.
-When he requests to re-join, the option to re-subscribe to the mailing
-list is not presented.
-
- >>> browser.open("http://launchpad.test/~rosetta-admins/+leave")
- >>> browser.getControl(name="field.actions.leave").click()
-
- >>> browser.open("http://launchpad.test/~rosetta-admins")
- >>> browser.getLink("Join the team").click()
- >>> print(browser.url)
- http://launchpad.test/~rosetta-admins/+join
-
- >>> browser.getControl(name="mailinglist_subscribe")
- Traceback (most recent call last):
- ...
- LookupError: name ...'mailinglist_subscribe'
- ...
-
-Of course, the option to subscribe to the mailing list isn't present
-for teams that don't have mailing lists.
-
- >>> browser.open("http://launchpad.test/~testing-spanish-team")
- >>> browser.getLink("Join the team").click()
- >>> print(browser.url)
- http://launchpad.test/~testing-spanish-team/+join
-
- >>> browser.getControl(name="mailinglist_subscribe")
- Traceback (most recent call last):
- ...
- LookupError: name ...'mailinglist_subscribe'
- ...
-
-And the option is also missing from the sign-up pages of teams that
-have restricted membership. (Note that we can only see the join page
-if we visit the URL directly, as the link is not present on the Team
-Overview.)
-
- >>> browser.open("http://launchpad.test/~launchpad/+join")
- >>> print(browser.url)
- http://launchpad.test/~launchpad/+join
-
- >>> browser.getControl(name="mailinglist_subscribe")
- Traceback (most recent call last):
- ...
- LookupError: name ...'mailinglist_subscribe'
- ...
-
-
-Team page quick-links
-=====================
-
-Links to subscribe and unsubscribe from the mailing lists are also
-available from the team's Overview page.
-
-Carlos can see the subscribe link on the admin team's Overview
-page, because he is not subscribed to the team mailing list.
-
- >>> carlos_browser.open("http://launchpad.test/~admins")
- >>> carlos_browser.getLink("Subscribe to mailing list").click()
- >>> print(carlos_browser.url)
- http://launchpad.test/~carlos/+editmailinglists
-
-The unsubscribe link is visible for the rosetta admins team, which
-has an active mailing list.
-
- # Subscribe to the list using the normal technique.
- >>> carlos_browser.open("http://launchpad.test/~carlos")
- >>> carlos_browser.getLink(url="+editmailinglists").click()
- >>> rosetta_admins = carlos_browser.getControl(
- ... name="field.subscription.rosetta-admins"
- ... )
- >>> rosetta_admins.value = ["Preferred address"]
- >>> carlos_browser.getControl("Update Subscriptions").click()
- >>> print(rosetta_admins.value)
- ['Preferred address']
- >>> for tag in find_tags_by_class(
- ... carlos_browser.contents, "informational"
- ... ):
- ... print(tag.decode_contents())
- Subscriptions updated.
-
- >>> carlos_browser.open("http://launchpad.test/~rosetta-admins")
- >>> carlos_browser.getControl("Unsubscribe")
- <SubmitControl name='unsubscribe' type='submit'>
-
-Clicking the link will unsubscribe you from the list immediately.
-
- >>> carlos_browser.getControl("Unsubscribe").click()
- >>> print_feedback_messages(carlos_browser.contents)
- You have been unsubscribed from the team mailing list.
-
- >>> carlos_browser.open("http://launchpad.test/~rosetta-admins")
- >>> print(
- ... extract_text(
- ... find_tag_by_id(carlos_browser.contents, "mailing-lists")
- ... )
- ... )
- Mailing list...
- Subscribe to mailing list...
-
-The Ubuntu translators team, which does not have any lists configured,
-does not show either link.
-
- >>> carlos_browser.open("http://launchpad.test/~ubuntu-translators")
- >>> print(
- ... extract_text(
- ... find_portlet(carlos_browser.contents, "Mailing list")
- ... )
- ... )
- Mailing list
- Launchpad no longer supports the creation of new mailing lists.
- Read more about it here.
-
- >>> carlos_browser.getLink("Subscribe")
- Traceback (most recent call last):
- ...
- zope.testbrowser.browser.LinkNotFoundError
-
- >>> carlos_browser.getLink("Unsubscribe")
- Traceback (most recent call last):
- ...
- zope.testbrowser.browser.LinkNotFoundError
-
-
-Team page subscribers link
-==========================
-
-Team administrators can see a link to a page listing the team's
-mailing list subscribers, if there is an active mailing list. The
-rosetta admins team has such a list and carlos is the owner.
-
- >>> carlos_browser.open("http://launchpad.test/~rosetta-admins")
- >>> print(
- ... extract_text(
- ... find_portlet(carlos_browser.contents, "Mailing list")
- ... )
- ... )
- Mailing list
- rosetta-admins@xxxxxxxxxxxxxxxxxxxx
- Policy: You must be a team member to subscribe to the team mailing list.
- Subscribe to mailing list
- View public archive
- View subscribers...
-
-The mailing list for Rosetta Admins has no subscribers.
-(Jeff Waugh has asked to subscribe but he's not considered a subscriber
-because his membership on Rosetta Admins hasn't been approved)
-
- >>> carlos_browser.getLink("View subscribers").click()
- >>> print(carlos_browser.title)
- Mailing list subscribers for the Rosetta Administrators team...
-
- >>> print(
- ... extract_text(
- ... find_tag_by_id(carlos_browser.contents, "subscribers")
- ... )
- ... )
- Nobody has subscribed to this team's mailing list yet.
-
-If it had subscribers, though, they'd be shown on that page, in a batched
-list.
-
- # Forge two new subscribers to the team's mailing list.
- >>> from lp.services.config import config
- >>> config.push(
- ... "default-batch-size",
- ... """
- ... [launchpad]
- ... default_batch_size: 1
- ... """,
- ... )
- >>> login("foo.bar@xxxxxxxxxxxxx")
-
- >>> person_set = getUtility(IPersonSet)
- >>> jdub = person_set.getByName("jdub")
- >>> mark = person_set.getByName("mark")
- >>> salgado = person_set.getByName("salgado")
- >>> jordi = person_set.getByName("jordi")
- >>> rosetta_admins = person_set.getByName("rosetta-admins")
- >>> ignored = rosetta_admins.addMember(salgado, reviewer=mark)
- >>> rosetta_admins.mailing_list.subscribe(salgado)
- >>> ignored = rosetta_admins.addMember(jordi, reviewer=mark)
- >>> rosetta_admins.mailing_list.subscribe(jordi)
- >>> logout()
- >>> carlos_browser.reload()
- >>> print(
- ... extract_text(
- ... find_tag_by_id(carlos_browser.contents, "subscribers")
- ... )
- ... )
- The following people are subscribed...
- Guilherme Salgado
- 1 of 2 results...
-
- >>> carlos_browser.getLink("Next").click()
- >>> print(
- ... extract_text(
- ... find_tag_by_id(carlos_browser.contents, "subscribers")
- ... )
- ... )
- The following people are subscribed...
- Jordi Mallach
- 2 of 2 results...
-
- >>> config_data = config.pop("default-batch-size")
-
-If the team has no mailing list, then the archive and subscribers
-links are not present.
-
- >>> admin_browser.open("http://launchpad.test/~commercial-admins")
- >>> summary_content = extract_text(
- ... find_portlet(admin_browser.contents, "Mailing list")
- ... )
- >>> "Mailing list archive" in summary_content
- False
- >>> "Mailing list subscribers" in summary_content
- False
-
-
-Mailing list auto-subscription settings
-=======================================
-
-Launchpad may automatically subscribe a person to a team's mailing
-list based on a setting in the person's Email preferences page.
-
- >>> carlos_browser.open("http://launchpad.test/~carlos")
- >>> carlos_browser.getLink(url="+editmailinglists").click()
- >>> print(backslashreplace(carlos_browser.title))
- Change your mailing list subscriptions...
-
-Carlos's default setting, 'Ask me when I join a team', is still in place.
-
- >>> print_radio_button_field(
- ... carlos_browser.contents, "mailing_list_auto_subscribe_policy"
- ... )
- ( ) Never subscribe to mailing lists
- (*) Ask me when I join a team
- ( ) Always subscribe me to mailing lists
-
-Carlos can update the value at any time using his Email Preferences
-page.
-
- # A convenient helper for setting and submitting a new
- # auto-subscribe policy.
- >>> def set_autosubscribe_policy_and_submit(newvalue, current_browser):
- ... control = current_browser.getControl(
- ... name="field.mailing_list_auto_subscribe_policy"
- ... )
- ... control.value = [newvalue]
- ... current_browser.getControl("Update Policy").click()
- ... print_radio_button_field(
- ... current_browser.contents, "mailing_list_auto_subscribe_policy"
- ... )
- ...
-
- >>> original_value = carlos_browser.getControl(
- ... name="field.mailing_list_auto_subscribe_policy"
- ... ).value.pop()
-
- >>> set_autosubscribe_policy_and_submit("ALWAYS", carlos_browser)
- ( ) Never subscribe to mailing lists
- ( ) Ask me when I join a team
- (*) Always subscribe me to mailing lists
-
- # We only need to check this once.
- >>> print_feedback_messages(carlos_browser.contents)
- Your auto-subscribe policy has been updated.
-
- >>> set_autosubscribe_policy_and_submit("NEVER", carlos_browser)
- (*) Never subscribe to mailing lists
- ( ) Ask me when I join a team
- ( ) Always subscribe me to mailing lists
-
- >>> set_autosubscribe_policy_and_submit("ON_REGISTRATION", carlos_browser)
- ( ) Never subscribe to mailing lists
- (*) Ask me when I join a team
- ( ) Always subscribe me to mailing lists
-
-Updating the value twice has no adverse affect.
-
- # Restores the original value while performing the test.
- >>> assert original_value == "ON_REGISTRATION"
- >>> set_autosubscribe_policy_and_submit(original_value, carlos_browser)
- ( ) Never subscribe to mailing lists
- (*) Ask me when I join a team
- ( ) Always subscribe me to mailing lists
-
-Regardless of this setting, users will always receive a notification when a
-team they are a member of creates a new mailing list. This notification
-offers them to join the new mailing list. This page informs them of this
-behaviour.
-
- >>> print(
- ... extract_text(
- ... find_tag_by_id(carlos_browser.contents, "notification-info")
- ... )
- ... )
- When a team you are a member of creates a new mailing list, you will
- receive an email notification offering you the opportunity to join the new
- mailing list. Launchpad can also automatically subscribe you to a team's
- mailing list whenever you join a team.
-
-These settings also effect what a user sees when they go to join a new
-team. The 'Team Join' page has a checkbox that allows a user to sign
-up for the team mailing list at the same time as joining the
-team. Users who have chosen the 'On registration' or 'Always'
-subscription settings will see the box checked by default.
-
- >>> login(ANONYMOUS)
- >>> james = getUtility(IPersonSet).getByEmail(
- ... "james.blackwell@xxxxxxxxxxxxxxx"
- ... )
- >>> logout()
- >>> browser = setupBrowserFreshLogin(james)
- >>> browser.open("http://launchpad.test/~jblack")
- >>> browser.getLink(url="+editmailinglists").click()
- >>> print_radio_button_field(
- ... browser.contents, "mailing_list_auto_subscribe_policy"
- ... )
- ( ) Never subscribe to mailing lists
- (*) Ask me when I join a team
- ( ) Always subscribe me to mailing lists
-
- >>> browser.open("http://launchpad.test/~rosetta-admins")
- >>> browser.getLink("Join the team").click()
- >>> print(browser.url)
- http://launchpad.test/~rosetta-admins/+join
-
- >>> print(browser.getControl(name="field.mailinglist_subscribe").value)
- True
-
- # Change James' setting
- >>> browser.open("http://launchpad.test/~jblack")
- >>> browser.getLink(url="+editmailinglists").click()
- >>> set_autosubscribe_policy_and_submit("ALWAYS", browser)
- ( ) Never subscribe to mailing lists
- ( ) Ask me when I join a team
- (*) Always subscribe me to mailing lists
-
- >>> browser.open("http://launchpad.test/~rosetta-admins")
- >>> browser.getLink("Join the team").click()
- >>> print(browser.getControl(name="field.mailinglist_subscribe").value)
- True
-
-Users who have chosen to never be auto-subscribed to mailing
-lists will not have the box checked.
-
- # Change James' setting
- >>> browser.open("http://launchpad.test/~jblack")
- >>> browser.getLink(url="+editmailinglists").click()
- >>> set_autosubscribe_policy_and_submit("NEVER", browser)
- (*) Never subscribe to mailing lists
- ( ) Ask me when I join a team
- ( ) Always subscribe me to mailing lists
-
- >>> browser.open("http://launchpad.test/~rosetta-admins")
- >>> browser.getLink("Join the team").click()
- >>> print(
- ... bool(browser.getControl(name="field.mailinglist_subscribe").value)
- ... )
- False
-
- # Restore James' setting.
- >>> browser.open("http://launchpad.test/~jblack")
- >>> browser.getLink(url="+editmailinglists").click()
- >>> set_autosubscribe_policy_and_submit("ON_REGISTRATION", browser)
- ( ) Never subscribe to mailing lists
- (*) Ask me when I join a team
- ( ) Always subscribe me to mailing lists
diff --git a/lib/lp/registry/stories/person/xx-person-home.rst b/lib/lp/registry/stories/person/xx-person-home.rst
index ac5885e..4c5ae39 100644
--- a/lib/lp/registry/stories/person/xx-person-home.rst
+++ b/lib/lp/registry/stories/person/xx-person-home.rst
@@ -64,7 +64,6 @@ But Foo Bar can:
test@xxxxxxxxxxxxx
testing@xxxxxxxxxxxxx
Change email settings
- Manage mailing list subscriptions
Open ID link
diff --git a/lib/lp/registry/stories/team/xx-team-membership.rst b/lib/lp/registry/stories/team/xx-team-membership.rst
index 90c2684..a8b156b 100644
--- a/lib/lp/registry/stories/team/xx-team-membership.rst
+++ b/lib/lp/registry/stories/team/xx-team-membership.rst
@@ -274,12 +274,9 @@ subscriptions on their own participation page.
... )
>>> print(extract_text(actions))
Register a team
- Change mailing list subscriptions
>>> user_browser.getLink("Register a team")
<Link ... url='http://.../people/+newteam'>
- >>> user_browser.getLink("Change mailing list subscriptions")
- <Link ... url='http://.../~no-priv/+editmailinglists'>
Teams also have a participation page, but it does not include a mailing
list column.
diff --git a/lib/lp/registry/templates/person-editemails.pt b/lib/lp/registry/templates/person-editemails.pt
index cbe149b..b48700f 100644
--- a/lib/lp/registry/templates/person-editemails.pt
+++ b/lib/lp/registry/templates/person-editemails.pt
@@ -19,10 +19,6 @@
id="no-contact-address">
Currently you don't have a contact address in Launchpad.
</p>
- <p>Looking to <a
- tal:define="link context/menu:overview/editmailinglists"
- tal:attributes="href link/target"
- >configure your mailing list subscriptions</a>?</p>
</metal:extra-info>
<metal:widgets fill-slot="widgets">
diff --git a/lib/lp/registry/templates/person-editmailinglists.pt b/lib/lp/registry/templates/person-editmailinglists.pt
deleted file mode 100644
index ba45b56..0000000
--- a/lib/lp/registry/templates/person-editmailinglists.pt
+++ /dev/null
@@ -1,86 +0,0 @@
-<html
- xmlns="http://www.w3.org/1999/xhtml"
- xmlns:tal="http://xml.zope.org/namespaces/tal"
- xmlns:metal="http://xml.zope.org/namespaces/metal"
- xmlns:i18n="http://xml.zope.org/namespaces/i18n"
- metal:use-macro="view/macro:page/main_only"
- i18n:domain="launchpad"
->
- <body>
-<div metal:fill-slot="main">
- <form action=""
- method="post" enctype="multipart/form-data"
- accept-charset="UTF-8" tal:condition="view/mailing_list_widgets">
-
- <p>You're a member of one or more teams with active mailing
- lists. You can subscribe to a team's mailing list using any of
- <a
- tal:define="link context/menu:overview/editemailaddresses"
- tal:attributes="href link/target">
- your verified email addresses</a>.
- </p>
-
- <table class="listing" style="width: 45em;">
- <thead>
- <th style="white-space:nowrap;">For mailing list</th>
- <th>Subscribe with</th>
- </thead>
- <tbody>
- <tr tal:repeat="widget view/mailing_list_widgets">
- <td tal:content="structure widget/team/fmt:link">Team</td>
- <td tal:content="structure widget/widget">Widget</td>
- </tr>
- </tbody>
- </table>
- <div style="padding-top: 1em; padding-bottom: 1em;">
- <input tal:replace="structure view/action_update_subscriptions/render" />
- </div>
- </form>
-
- <form action=""
- method="post" enctype="multipart/form-data"
- accept-charset="UTF-8">
-
- <h2>Automatic subscription</h2>
-
- <div id="notification-info">When a team you are a member of creates a new
- mailing list, you will receive an email notification offering you the
- opportunity to join the new mailing list. Launchpad can also
- automatically subscribe you to a team's mailing list whenever you
- join a team.</div>
-
- <tal:widget
- define="widget nocall:view/widgets/mailing_list_auto_subscribe_policy">
- <table class="form">
-
- <thead>
- <tr>
- <th style="white-space:nowrap; text-align:left;">
- <div style="margin-bottom: 1em;">
- <label tal:attributes="for widget/name"
- tal:content="structure widget/label" />
- </div>
- </th>
- <td></td>
- </tr>
- </thead>
-
- <tbody>
- <metal:block use-macro="context/@@launchpad_form/widget_row" />
- <tr>
- <td>
- <input
- tal:replace="structure
- view/action_update_autosubscribe_policy/render" />
- </td>
- <td></td>
- </tr>
- </tbody>
-
- </table>
- </tal:widget>
- </form>
-
-</div>
-</body>
-</html>
diff --git a/lib/lp/registry/templates/person-participation.pt b/lib/lp/registry/templates/person-participation.pt
index 67d2bbc..3701be1 100644
--- a/lib/lp/registry/templates/person-participation.pt
+++ b/lib/lp/registry/templates/person-participation.pt
@@ -84,11 +84,6 @@
<li>
<a class="sprite add" href="/people/+newteam">Register a team</a>
</li>
- <li>
- <a class="sprite edit"
- tal:attributes="href context/menu:overview/editmailinglists/fmt:url"
- >Change mailing list subscriptions</a>
- </li>
</ul>
</tal:user>
</div>
diff --git a/lib/lp/registry/templates/person-portlet-contact-details.pt b/lib/lp/registry/templates/person-portlet-contact-details.pt
index e7b5a00..906d22d 100644
--- a/lib/lp/registry/templates/person-portlet-contact-details.pt
+++ b/lib/lp/registry/templates/person-portlet-contact-details.pt
@@ -51,10 +51,6 @@
<a
tal:define="link context/menu:overview/editemailaddresses"
tal:condition="link/enabled"
- tal:content="structure link/fmt:link" /><br />
- <a
- tal:define="link context/menu:overview/editmailinglists"
- tal:condition="link/enabled"
tal:content="structure link/fmt:link" />
</dd>
</dl>
Follow ups