source: products/qMemberdataExport/tags/0.0.1/Extensions/getMemberData.py @ 1591

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 
1def 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.