First version of a getServices() method, ineffective as we lack data
This commit is contained in:
parent
adbbb3627c
commit
48406b5425
|
@ -39,6 +39,10 @@ class PcfAnnuaireEntry:
|
|||
self.title = get_attr('title')
|
||||
self.company = get_attr('company')
|
||||
|
||||
class PcfAnnuaireService:
|
||||
pass
|
||||
|
||||
|
||||
class PcfAnnuaire(BaseContent):
|
||||
|
||||
implements(IPcfAnnuaire)
|
||||
|
@ -62,12 +66,35 @@ class PcfAnnuaire(BaseContent):
|
|||
users_base = luf.users_base
|
||||
return users_base
|
||||
|
||||
def getEntries(self):
|
||||
def getObjectEntries(self):
|
||||
ldap_conn = self.get_ldap_conn()
|
||||
result = ldap_conn.search_s(self.get_users_base(),
|
||||
ldap.SCOPE_SUBTREE, 'objectClass=person')
|
||||
return [PcfAnnuaireEntry(x[1]) for x in result]
|
||||
|
||||
def getEntries(self):
|
||||
return [x for x in self.getObjectEntries() if x.givenName]
|
||||
|
||||
def getServices(self):
|
||||
entries = self.getObjectEntries()
|
||||
services = {}
|
||||
for entry in entries:
|
||||
if not entry.division:
|
||||
continue
|
||||
if not entry.division in services:
|
||||
service = Service()
|
||||
service.name = entry.division
|
||||
service.agents = []
|
||||
services[division] = service
|
||||
service = services.get(entry.division)
|
||||
service.agents.append(entry)
|
||||
def get_name(x): return getattr(x, 'name')
|
||||
def get_sn(x): return getattr(x, 'sn')
|
||||
services = sorted([x for x in services.values()], key=get_name)
|
||||
for service in services:
|
||||
services.agents.sort(key=get_sn)
|
||||
return services
|
||||
|
||||
def getEntriesWithPhone(self):
|
||||
def get_sn(x): return getattr(x, 'sn')
|
||||
return sorted([x for x in self.getEntries() if x.telephoneNumbers], key=get_sn)
|
||||
|
|
Reference in New Issue