phone list

This commit is contained in:
Frédéric Péters 2009-10-22 10:59:30 +02:00
parent 912e99d796
commit 8c6ad70d3f
2 changed files with 38 additions and 15 deletions

View File

@ -16,7 +16,28 @@ schema = BaseSchema
class PcfAnnuaireEntry:
def __init__(self, ldap_entry):
self.cn = ldap_entry.get('cn')[0]
def get_attr(x):
try:
return ldap_entry.get(x)[0]
except (IndexError, TypeError):
return None
self.cn = get_attr('cn')
self.sn = get_attr('sn')
self.telephoneNumbers = ldap_entry.get('telephoneNumber')
if self.telephoneNumbers:
self.shortTelephoneNumber = self.telephoneNumbers[0][-3:]
else:
self.shortTelephoneNumber = None
self.givenName = get_attr('givenName')
self.mobile = get_attr('mobile')
self.building = get_attr('location')
self.floor = get_attr('extensionAttribute1')
self.office = get_attr('physicalDeliveryOfficeName')
self.fax = get_attr('facsimileTelephoneNumber')
self.email = get_attr('mail')
self.division = get_attr('division')
self.title = get_attr('title')
self.company = get_attr('company')
class PcfAnnuaire(BaseContent):
@ -41,17 +62,14 @@ class PcfAnnuaire(BaseContent):
users_base = luf.users_base
return users_base
def getContent(self):
def getEntries(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 plop(self):
portal = getToolByName(self, 'portal_url').getPortalObject()
ldapdir = aq_base(portal.acl_users.ldap)
luf = ldapdir._getLDAPUserFolder()
users_base = luf.users_base
return repr((luf._delegate.getServers(), users_base))
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)
registerType(PcfAnnuaire)

View File

@ -35,13 +35,18 @@
Description
</div>
<div tal:content="python: context.plop()">
</div>
<ul>
<li tal:repeat="entry python: context.getContent()">
<span tal:content="entry/cn"></span></li>
</ul>
<table id="phone-numbers">
<tr tal:repeat="entry python: context.getEntriesWithPhone()">
<td>
<span tal:replace="entry/givenName">givenName</span>
<span tal:replace="entry/sn">sn</span>
</td>
<td class="col-phone">
<span tal:replace="entry/shortTelephoneNumber">000</span>
<span tal:condition="entry/mobile"><br/><span tal:replace="entry/mobile">mobile</span></span>
</td>
</tr>
</table>
<div tal:replace="structure provider:plone.belowcontentbody" />
</tal:main-macro>