Changeset 895

Show
Ignore:
Timestamp:
06/25/07 03:49:59
Author:
piv
Message:

optimized PASMemberdataHandler handler

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • qMemberdataExport/trunk/Extensions/getMemberData.py

    r818 r895  
    2323 
    2424    #PASMemberdata handler doesn't set this attribute  
    25     memberdatahandler.fieldnames = memberdatahandler.listAllMemberProperties(exclude_props, include_props) 
     25    #memberdatahandler.fieldnames = memberdatahandler.listAllMemberProperties(exclude_props, include_props) 
    2626 
    2727    if batch > len(members) - start: batch = len(members) - start 
     
    3131 
    3232    for member in members[start:start+batch]: 
     33        print "Processed %d members. Current member id: %s" % (counter, str(member)) 
    3334        counter += 1 
    3435        if counter % CLEAR_CACHE_COUNTER == 0:  
    3536            self._p_jar.sync() 
    3637        members_list.append(memberdatahandler.getMemberProperties(member, exclude_props, include_props)) 
     38 
    3739 
    3840    res = StringIO() 
  • qMemberdataExport/trunk/PASMemberdataHandler.py

    r822 r895  
    5353        """ 
    5454        if not self.is_compatible(): return [] 
    55         return self.tool.listMembers() 
     55        return [user['userid'] for user in self.tool.acl_users.searchUsers()] 
     56        #return self.tool.listMembers() 
    5657 
    5758    def getMemberProperties(self, member, exclude_props=[], include_props=None): 
     
    6465        if not self.is_compatible: return {} 
    6566        props = {} 
    66         user = member.getUser() 
     67        # manually set id 
     68        if ('id' not in exclude_props) and (include_props and 'id' in include_props or not include_props): 
     69            if not props.has_key('id'): props['id'] = member 
     70            if 'id' not in self.fieldnames: self.fieldnames.append('id') 
     71        #member = self.tool.wrapUser(self.tool.acl_users.getUserById(member)) 
     72        user = self.tool.acl_users.getUserById(member) 
     73        #user = member.getUser() 
    6774        for sheet in user.getOrderedPropertySheets(): 
    68             for item in sheet.propertyItems(): 
    69                 field = item[0] 
    70                 value = item[1] 
     75            for field, value in sheet.propertyItems(): 
     76                #field = item[0] 
     77                #value = item[1] 
    7178                if type(value) is UnicodeType: 
    7279                    value = value.encode('UTF8') 
    73                 if not props.has_key(field): props[field] = value 
     80                if (field not in exclude_props) and (include_props and field in include_props or not include_props): 
     81                    if not props.has_key(field): 
     82                        props[field] = value 
     83                    if field not in self.fieldnames: 
     84                        self.fieldnames.append(str(field)) 
     85            #self.fieldnames = self.fieldnames | set(sheet.propertyIds()) 
     86        #self.fieldnames = self.fieldnames - set(exclude_props) 
     87        #if include_props: self.fieldnames = self.fieldnames | set(include_props) 
    7488        #id property isn't stored in property sheet, we can get it from member or user object 
    75         props['id'] = member.getProperty('id') 
     89 
    7690        return props 
    7791 
  • qMemberdataExport/trunk/version.txt

    r824 r895  
    1 0.1.0 
     10.2.0