[Checkins] SVN: Products.CMFDefault/trunk/Products/CMFDefault/browser/membership/ Members roster view and template.
Charlie Clark
charlie at begeistert.org
Fri Sep 24 19:07:49 EDT 2010
Log message for revision 116796:
Members roster view and template.
delete_members.pt renamed to members_delete.pt for grouping purposes
TODO updated.
Changed:
U Products.CMFDefault/trunk/Products/CMFDefault/browser/membership/TODO.txt
U Products.CMFDefault/trunk/Products/CMFDefault/browser/membership/configure.zcml
D Products.CMFDefault/trunk/Products/CMFDefault/browser/membership/delete_members.pt
U Products.CMFDefault/trunk/Products/CMFDefault/browser/membership/members.py
A Products.CMFDefault/trunk/Products/CMFDefault/browser/membership/members_delete.pt
A Products.CMFDefault/trunk/Products/CMFDefault/browser/membership/members_list.pt
-=-
Modified: Products.CMFDefault/trunk/Products/CMFDefault/browser/membership/TODO.txt
===================================================================
--- Products.CMFDefault/trunk/Products/CMFDefault/browser/membership/TODO.txt 2010-09-24 23:02:27 UTC (rev 116795)
+++ Products.CMFDefault/trunk/Products/CMFDefault/browser/membership/TODO.txt 2010-09-24 23:07:48 UTC (rev 116796)
@@ -36,12 +36,15 @@
[ ] member roster:
- members_manage_form.py
- members_manage_template.pt
+ roster.pt -> members.Roster
+ members_list.pt
+
+ members_manage_form.py -> members.Manage
+ members_manage_template.pt -> members.pt
members_add_control.py
members_delete_control.py
- members_delete_form.py
- members_delete_template_template.py
+ members_delete_form.py -> members.Manage
+ members_delete_template_template.py -> members_delete.pt
[ ] complete this todo list
Modified: Products.CMFDefault/trunk/Products/CMFDefault/browser/membership/configure.zcml
===================================================================
--- Products.CMFDefault/trunk/Products/CMFDefault/browser/membership/configure.zcml 2010-09-24 23:02:27 UTC (rev 116795)
+++ Products.CMFDefault/trunk/Products/CMFDefault/browser/membership/configure.zcml 2010-09-24 23:07:48 UTC (rev 116796)
@@ -77,6 +77,15 @@
layer="Products.CMFDefault.interfaces.ICMFDefaultSkin"
name="members.html"
class=".members.Manage"
+ permission="cmf.ManageUsers"
+ />
+
+ <browser:page
+ for="Products.CMFCore.interfaces.ISiteRoot"
+ layer="Products.CMFDefault.interfaces.ICMFDefaultSkin"
+ name="roster.html"
+ class=".members.Roster"
+ template="members_list.pt"
permission="cmf.ListPortalMembers"
/>
Deleted: Products.CMFDefault/trunk/Products/CMFDefault/browser/membership/delete_members.pt
===================================================================
--- Products.CMFDefault/trunk/Products/CMFDefault/browser/membership/delete_members.pt 2010-09-24 23:02:27 UTC (rev 116795)
+++ Products.CMFDefault/trunk/Products/CMFDefault/browser/membership/delete_members.pt 2010-09-24 23:07:48 UTC (rev 116796)
@@ -1,25 +0,0 @@
-<html metal:use-macro="context/@@standard_macros/page">
-<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">
-
- <tal:block repeat="widget view/widgets"
- replace="structure widget/hidden" />
-
- <p i18n:translate="">The following members - including all their data, home
- folders and roles - are selected for deletion:</p>
- <p><strong tal:content="view/status">MEMBERS</strong></p>
-
- <div class="buttons">
- <tal:loop tal:repeat="action view/delete_actions"
- tal:replace="structure action/render" />
- </div>
-
-</form>
-</metal:slot>
-
-</body>
-</html>
Modified: Products.CMFDefault/trunk/Products/CMFDefault/browser/membership/members.py
===================================================================
--- Products.CMFDefault/trunk/Products/CMFDefault/browser/membership/members.py 2010-09-24 23:02:27 UTC (rev 116795)
+++ Products.CMFDefault/trunk/Products/CMFDefault/browser/membership/members.py 2010-09-24 23:07:48 UTC (rev 116796)
@@ -7,7 +7,10 @@
from zope.interface import Interface
from zope.formlib import form
from zope.schema import Bool, TextLine, Date, getFieldsInOrder, List, Choice
+from zope.sequencesort.ssort import sort
+from ZTUtils import LazyFilter
+
from Products.Five.browser.pagetemplatefile import ViewPageTemplateFile
from Products.CMFCore.utils import getToolByName
@@ -146,3 +149,38 @@
mtool = self._getTool('portal_membership')
mtool.deleteMembers(self._get_ids(data))
return self.request.response.redirect(self.request.URL)
+
+
+class Roster(BatchViewBase):
+
+ hidden_fields = form.FormFields(IBatchForm)
+ form_fields = form.FormFields()
+ actions = ()
+ template = ViewPageTemplateFile("members_list.pt")
+
+ def mtool(self):
+ return self._getTool('portal_membership')
+
+ def isUserManager(self):
+ return self.mtool().checkPermission('Manage users',
+ self.mtool().getMembersFolder()
+ )
+
+ @memoize
+ def _get_items(self):
+ (key, reverse) = self.context.getDefaultSorting()
+ items = self.mtool().getRoster()
+ items = sort(items, ((key, 'cmp', reverse and 'desc' or 'asc'),))
+ return items
+ return LazyFilter(items, skip='View')
+
+ def listBatchItems(self):
+ members = []
+ for item in self._getBatchObj():
+ member = item
+ member['home'] = self.mtool().getHomeUrl(item['id'],
+ verifyPermission=1)
+ member['listed'] = member['listed'] and _(u"Yes") or _("No")
+ members.append(member)
+ return members
+
\ No newline at end of file
Copied: Products.CMFDefault/trunk/Products/CMFDefault/browser/membership/members_delete.pt (from rev 116792, Products.CMFDefault/trunk/Products/CMFDefault/browser/membership/delete_members.pt)
===================================================================
--- Products.CMFDefault/trunk/Products/CMFDefault/browser/membership/members_delete.pt (rev 0)
+++ Products.CMFDefault/trunk/Products/CMFDefault/browser/membership/members_delete.pt 2010-09-24 23:07:48 UTC (rev 116796)
@@ -0,0 +1,25 @@
+<html metal:use-macro="context/@@standard_macros/page">
+<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">
+
+ <tal:block repeat="widget view/widgets"
+ replace="structure widget/hidden" />
+
+ <p i18n:translate="">The following members - including all their data, home
+ folders and roles - are selected for deletion:</p>
+ <p><strong tal:content="view/status">MEMBERS</strong></p>
+
+ <div class="buttons">
+ <tal:loop tal:repeat="action view/delete_actions"
+ tal:replace="structure action/render" />
+ </div>
+
+</form>
+</metal:slot>
+
+</body>
+</html>
Added: Products.CMFDefault/trunk/Products/CMFDefault/browser/membership/members_list.pt
===================================================================
--- Products.CMFDefault/trunk/Products/CMFDefault/browser/membership/members_list.pt (rev 0)
+++ Products.CMFDefault/trunk/Products/CMFDefault/browser/membership/members_list.pt 2010-09-24 23:07:48 UTC (rev 116796)
@@ -0,0 +1,37 @@
+<html metal:use-macro="context/@@standard_macros/page">
+<body>
+
+<metal:slot metal:fill-slot="body">
+
+<h2 i18n:translate="">Portal Members</h2>
+
+<table class="SearchResults">
+<thead>
+ <tr>
+ <th i18n:translate="">Member</th>
+ <th tal:condition="view/isUserManager" i18n:translate="">Listed?</th>
+ </tr>
+</thead>
+<tbody>
+ <tr tal:repeat="member view/listBatchItems">
+ <td>
+ <a href="www.example.org"
+ tal:condition="member/home"
+ tal:attributes="href member/home"
+ tal:content="member/id">name</a>
+ <tal:block condition="not:member/home" replace="member/id" />
+ </td>
+ <td tal:condition="view/isUserManager"
+ tal:content="member/listed">
+ </td>
+ </tr>
+</tbody>
+</table>
+
+<metal:macro metal:use-macro="context/@@batch_widget/navigation" />
+<metal:macro metal:use-macro="context/@@batch_widget/pagination" />
+
+</metal:slot>
+
+</body>
+</html>
More information about the checkins
mailing list