#prints out a CSV pf member and member properties
#this makes a Microsoft CSV file-- use text delimiter="
text = ''
memberProperties = context.portal_memberdata.propertyIds()
memberProperties.insert(0, 'id')
for p in memberProperties:
#write out the first line
text += p + ', '
#remove trailing comma
text=text[:-2]
text += chr(13)+chr(10) #first line has been written
for member in context.portal_membership.listMembers():
for p in memberProperties:
if hasattr(member, p):
myAttr = getattr(member,p)
if same_type(myAttr,[]):
#it's a list
text+='"%s"'%str(myAttr)
elif same_type(myAttr,''):
#it's a string
mystr=str(myAttr)
mystr = mystr.replace('"','""')
text+='"%s"'%mystr
else:
text+='%s'%str(myAttr)
text+=', '
text=text[:-2]
text+=chr(13)+chr(10)
return text |