phone list
This commit is contained in:
parent
912e99d796
commit
8c6ad70d3f
|
@ -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)
|
||||
|
|
|
@ -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>
|
||||
|
|
Reference in New Issue