[Checkins] SVN: Products.CMFDefault/trunk/Products/CMFDefault/browser/membership/ - improved members delete form
Yvo Schubbe
cvs-admin at zope.org
Mon Jun 25 08:30:10 UTC 2012
Log message for revision 127066:
- improved members delete form
Changed:
U Products.CMFDefault/trunk/Products/CMFDefault/browser/membership/members.py
U Products.CMFDefault/trunk/Products/CMFDefault/browser/membership/members_delete.pt
U Products.CMFDefault/trunk/Products/CMFDefault/browser/membership/tests/members.txt
U Products.CMFDefault/trunk/Products/CMFDefault/browser/membership/tests/test_members.py
-=-
Modified: Products.CMFDefault/trunk/Products/CMFDefault/browser/membership/members.py
===================================================================
--- Products.CMFDefault/trunk/Products/CMFDefault/browser/membership/members.py 2012-06-25 04:04:51 UTC (rev 127065)
+++ Products.CMFDefault/trunk/Products/CMFDefault/browser/membership/members.py 2012-06-25 08:30:05 UTC (rev 127066)
@@ -154,7 +154,7 @@
the requested action."""
super(Manage, self).validate(action, data)
if self._get_ids(data) == []:
- return [_(u"Please select one or more items first.")]
+ return [_(u"Please select one or more members first.")]
else:
return []
@@ -165,7 +165,12 @@
def handle_select_for_deletion(self, action, data):
"""Identify members to be deleted and redirect to confirmation
template"""
- self.guillotine = ", ".join(self._get_ids(data))
+ mtool = getUtility(IMembershipTool)
+ members = []
+ for member_id in self._get_ids(data):
+ fullname = mtool.getMemberById(member_id).getProperty('fullname')
+ members.append('{0} ({1})'.format(fullname, member_id))
+ self.guillotine = ", ".join(members)
return self.delete_template()
def handle_delete(self, action, data):
@@ -173,12 +178,14 @@
mtool = getUtility(IMembershipTool)
mtool.deleteMembers(self._get_ids(data))
self.status = _(u"Selected members deleted.")
- self._setRedirect('portal_actions', "global/manage_members")
+ self._setRedirect('portal_actions', "global/manage_members",
+ '{0}.b_start'.format(self.prefix))
def handle_cancel(self, action, data):
"""Don't delete anyone, return to list"""
self.status = _(u"Deletion broken off.")
- self._setRedirect('portal_actions', "global/manage_members")
+ self._setRedirect('portal_actions', "global/manage_members",
+ '{0}.b_start'.format(self.prefix))
class Roster(BatchViewBase):
Modified: Products.CMFDefault/trunk/Products/CMFDefault/browser/membership/members_delete.pt
===================================================================
--- Products.CMFDefault/trunk/Products/CMFDefault/browser/membership/members_delete.pt 2012-06-25 04:04:51 UTC (rev 127065)
+++ Products.CMFDefault/trunk/Products/CMFDefault/browser/membership/members_delete.pt 2012-06-25 08:30:05 UTC (rev 127066)
@@ -2,10 +2,11 @@
<body>
<metal:slot metal:fill-slot="body" i18n:domain="cmf_default">
- <h1 i18n:translate="">Delete Members</h1>
-
- <form action="." method="post" tal:attributes="action request/ACTUAL_URL">
+<h1 i18n:translate="">Delete Members</h1>
+<form action="." method="post" tal:attributes="action request/ACTUAL_URL">
+ <tal:block repeat="widget view/hidden_widgets"
+ replace="structure widget/hidden" />
<tal:block repeat="widget view/widgets"
replace="structure widget/hidden" />
@@ -13,11 +14,10 @@
folders and roles - are selected for deletion:</p>
<p><strong tal:content="view/guillotine">MEMBERS</strong></p>
- <div class="buttons">
+ <div class="FormButtons">
<tal:loop tal:repeat="action view/delete_actions"
tal:replace="structure action/render" />
</div>
-
</form>
</metal:slot>
Modified: Products.CMFDefault/trunk/Products/CMFDefault/browser/membership/tests/members.txt
===================================================================
--- Products.CMFDefault/trunk/Products/CMFDefault/browser/membership/tests/members.txt 2012-06-25 04:04:51 UTC (rev 127065)
+++ Products.CMFDefault/trunk/Products/CMFDefault/browser/membership/tests/members.txt 2012-06-25 08:30:05 UTC (rev 127066)
@@ -36,7 +36,7 @@
Click delete with no member selected
>>> browser.open("http://localhost/site/@@members.html")
>>> browser.getControl(name="form.actions.select").click()
- >>> "[[cmf_default][Please select one or more items first.]]" in browser.contents
+ >>> "[[cmf_default][Please select one or more members first.]]" in browser.contents
True
Click delete with member selected
Modified: Products.CMFDefault/trunk/Products/CMFDefault/browser/membership/tests/test_members.py
===================================================================
--- Products.CMFDefault/trunk/Products/CMFDefault/browser/membership/tests/test_members.py 2012-06-25 04:04:51 UTC (rev 127065)
+++ Products.CMFDefault/trunk/Products/CMFDefault/browser/membership/tests/test_members.py 2012-06-25 08:30:05 UTC (rev 127066)
@@ -47,6 +47,9 @@
def __init__(self):
self.members = {}
+ def getMemberById(self, id):
+ return self.members[id]
+
def listMembers(self):
return self.members.values()
@@ -121,12 +124,13 @@
['stupid.name.select'])
def test_handle_select_for_deletion(self):
+ self._make_one("Alice")
view = Manage(self.site, TestRequest())
- self.assertTrue(view.guillotine == None)
+ self.assertEqual(view.guillotine, None)
# Catch exception raised when template tries to render
self.assertRaises(AttributeError,
view.handle_select_for_deletion, None, {"Alice.select": True})
- self.assertTrue(view.guillotine == "Alice")
+ self.assertEqual(view.guillotine, "FULL NAME (Alice)")
def test_handle_delete(self):
self._make_one("Bob")
More information about the checkins
mailing list