Changeset 1023

Show
Ignore:
Timestamp:
12/07/07 09:20:25
Author:
piv
Message:

added remember memberdata handler, some fixes

Files:

Legend:

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

    r652 r1023  
    3737        """ 
    3838        if not self.is_compatible(): return [] 
    39         all_props = [] 
    4039        for member in self.getAllMembers(): 
    4140            if hasattr(aq_inner(member), 'Schema') and callable(member.Schema): 
    4241                schema = member.getSchema() 
    43                 fields = [f.getName() for f in schema.filterFields() 
    44                     if (f.getName() not in exclude_props) and (include_props and f.getName() in include_props or not include_props)] 
    45                 for field in fields
    46                     if field not in all_props: 
    47                         all_props.append(str(field)
    48         return all_props                                                                                     
     42                for field in schema.filterFields(): 
     43                    fname = str(field.getName()) 
     44                    if (fname not in exclude_props) and (include_props and fname in include_props or not include_props)
     45                        if field not in self.fieldnames: 
     46                            self.fieldnames.append(fname
     47        return all_props 
    4948 
    5049    def getAllMembers(self): 
     
    6261            Get properties from schemas of every member object and collect it. 
    6362        """ 
     63 
    6464        if not self.compatible: return {} 
     65 
     66        props = {} 
    6567        if hasattr(aq_inner(member), 'Schema') and callable(member.Schema): 
    6668            schema = member.getSchema() 
    67             fields = [f.getName() for f in schema.filterFields() 
    68                 if (f.getName() not in exclude_props) and (include_props and f.getName() in include_props or not include_props)] 
    69             for field in fields
    70                 if field not in self.fieldnames
    71                     self.fieldnames.append(str(field)
    72         props = {} 
    73         for field in self.fieldnames: 
    74             value = member.getProperty(str(field), '') 
    75             if type(value) is UnicodeType
    76                 value = value.encode('UTF8'
    77             props[field] = value 
     69            for field in schema.filterFields(): 
     70                fname = str(field.getName()) 
     71                if (fname not in exclude_props) and (include_props and fname in include_props or not include_props)
     72                    if not props.has_key(fname)
     73                        value = member.getProperty(fname, ''
     74                        if type(value) is UnicodeType: 
     75                            value = value.encode('UTF8') 
     76                        props[fname] = value 
     77                    if fname not in self.fieldnames
     78                        self.fieldnames.append(fname
     79 
    7880        return props 
    7981 
  • qMemberdataExport/trunk/Extensions/getMemberData.py

    r968 r1023  
    1 def getMemberData(self, start=0, batch=400, exclude_props=None, include_props=None): 
     1def getMemberData(self, start=0, batch=4000, exclude_props=None, include_props=None): 
    22 
    33    import csv 
     
    2828 
    2929    for member in members[start:start+batch]: 
    30         print "Processed %d members. Current member id: %s" % (counter, str(member)) 
    31         counter += 1 
    3230        if counter % CLEAR_CACHE_COUNTER == 0:  
    3331            self._p_jar.sync() 
    3432        members_list.append(memberdatahandler.getMemberProperties(member, exclude_props, include_props)) 
    35  
     33        counter += 1 
     34        print "Processed %d members. Current member id: %s" % (counter, str(member)) 
    3635 
    3736    res = StringIO() 
  • qMemberdataExport/trunk/PASMemberdataHandler.py

    r968 r1023  
    3838        """ 
    3939        if not self.is_compatible(): return [] 
    40                  
     40 
    4141        if ('id' not in exclude_props) and (include_props and 'id' in include_props or not include_props): 
    4242            if 'id' not in self.fieldnames: self.fieldnames.append('id') 
     
    5656        """ 
    5757        if not self.is_compatible(): return [] 
    58         mid_list = [user['userid'] for user in self.tool.acl_users.searchUsers()]         
    59          
    60         return mid_list  
     58        mid_list = [user['userid'] for user in self.tool.acl_users.searchUsers()] 
     59 
     60        return mid_list 
    6161 
    6262    def getMemberProperties(self, member, exclude_props=[], include_props=None): 
     
    6767            Get properties from portal_memberdata property sheet. 
    6868        """ 
     69 
    6970        if not self.is_compatible: return {} 
    7071        props = {} 
  • qMemberdataExport/trunk/__init__.py

    r818 r1023  
    1010from CMFMemberdataHandler import CMFMemberdataHandler 
    1111from PASMemberdataHandler import PASMemberdataHandler 
     12from RememberMemberdataHandler import RememberMemberdataHandler 
  • qMemberdataExport/trunk/version.txt

    r895 r1023  
    1 0.2.0 
     10.3.0