Last change
on this file since 1591 was
1,
checked in by myroslav, 18 years ago
|
Building directory structure
|
-
Property svn:eol-style set to
native
|
File size:
939 bytes
|
Line | |
---|
1 | def getMemberData(context): |
---|
2 | |
---|
3 | import csv |
---|
4 | from cStringIO import StringIO |
---|
5 | from DateTime import DateTime |
---|
6 | from Products.CMFCore.utils import getToolByName |
---|
7 | |
---|
8 | mdtool = getToolByName(context, 'portal_memberdata') |
---|
9 | mtool = getToolByName(context, 'portal_membership') |
---|
10 | |
---|
11 | props = ['id',] + mdtool.propertyIds() |
---|
12 | members = mtool.listMembers() |
---|
13 | |
---|
14 | res = StringIO() |
---|
15 | writer = csv.DictWriter(res, fieldnames = props, quoting=csv.QUOTE_ALL) |
---|
16 | |
---|
17 | # writing header row |
---|
18 | writer.writer.writerow(props) |
---|
19 | |
---|
20 | for member in members: |
---|
21 | properties = {} |
---|
22 | for propid in props: |
---|
23 | properties[propid] = member.getProperty(propid, '') |
---|
24 | writer.writerow(properties) |
---|
25 | |
---|
26 | context.REQUEST.RESPONSE.setHeader('Content-Type', 'text/csv') |
---|
27 | context.REQUEST.RESPONSE.setHeader('Content-Disposition', 'attachment; filename= memberdata-%s.csv' % DateTime().strftime("%Y-%m-%d-%H-%M-%S")) |
---|
28 | |
---|
29 | return res.getvalue() |
---|
Note: See
TracBrowser
for help on using the repository browser.