[Zope-CMF] baffled by member properties

Damon Eckhoff eckhoffd@missouri.edu
Mon, 29 Jul 2002 11:28:39 -0500


Hello,

I've run into problems setting Member properties via python script.  I'm
using DCWorflow, and I have a script that is called after a transition
occurs.  This script recieves a list of usernames, and increments an integer
property on each member.

<snip>
username_list = state_change.kwargs.get('username_list', '')

for id in username_list:
    # update memberdata
    member_obj = state_change.object.portal_membership.getMemberById( id )
    count = member_obj.getProperty( 'count', '' )
    count = count + 1
    member_obj.setProperties( {'count':count,} )
</snip>

The code runs and no exceptions are raised, but the 'count' property is not
increased for any of the members in the list.

I have another script that is called after a different transition:

<snip>
member_obj = state_change.object.portal_membership.getAuthenticatedMember()

# Update member properties
reviews_completed = member_obj.getProperty( 'reviews_completed', '' )
reviews_completed = reviews_completed + 1
reviewer_obj.setProperties( {'reviews_completed':reviews_completed,} )
</snip>

This script works fine.. all properties are updated correctly.  The only
difference that I can see is that in the second script, the authenticated
user is setting his own properties while in the first the authenticated
member is setting other members' properties.

Any help is appreciated,

Damon.