First version of a getServices() method, ineffective as we lack data

This commit is contained in:
Frédéric Péters 2009-10-22 11:46:30 +02:00
parent adbbb3627c
commit 48406b5425
1 changed files with 28 additions and 1 deletions

View File

@ -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)