Support for cellules
This commit is contained in:
parent
bfaec89d70
commit
719d17be96
|
@ -66,7 +66,7 @@ class PcfAnnuaire(BaseContent):
|
|||
ldapdir = aq_base(portal.acl_users.ldap)
|
||||
luf = ldapdir._getLDAPUserFolder()
|
||||
server = luf._delegate.getServers()[0]
|
||||
ldap_conn = ldap.initialize('%(protocol)s://%(host)s:%(port)s' % server)
|
||||
ldap_conn = ldap.initialize('%(protocol)s://%(host)s' % server)
|
||||
ldap_conn.simple_bind_s(luf._binduid, luf._bindpwd)
|
||||
return ldap_conn
|
||||
|
||||
|
@ -74,7 +74,7 @@ class PcfAnnuaire(BaseContent):
|
|||
portal = getToolByName(self, 'portal_url').getPortalObject()
|
||||
ldapdir = aq_base(portal.acl_users.ldap)
|
||||
luf = ldapdir._getLDAPUserFolder()
|
||||
users_base = luf.users_base
|
||||
users_base = 'OU=ouPCF,' + luf.users_base
|
||||
return users_base
|
||||
|
||||
def getObjectEntries(self):
|
||||
|
@ -137,7 +137,7 @@ class PcfAnnuaire(BaseContent):
|
|||
def getServiceNonManagers(self, service):
|
||||
service_manager = self.getServiceManager(service)
|
||||
entries = [x for x in self.getEntries() if \
|
||||
x.service == service and x.manager == service_manager.dn and not x.division]
|
||||
x.service == service and x.manager == service_manager.dn and x.division in (None, ' ')]
|
||||
return sorted(entries, key=get_sn)
|
||||
|
||||
def getCellules(self, service):
|
||||
|
@ -145,20 +145,21 @@ class PcfAnnuaire(BaseContent):
|
|||
entries = [x for x in self.getEntries() if x.manager == service_manager.dn]
|
||||
cells = {}
|
||||
for entry in entries:
|
||||
if entry.division:
|
||||
if entry.division and entry.division != ' ':
|
||||
cells[entry.division] = True
|
||||
cells = sorted(cells.keys())
|
||||
return cells
|
||||
|
||||
def getCelluleManager(self, cellule):
|
||||
entries = [x for x in self.getEntries() if x.division == cellule]
|
||||
dns = [x.dn for x in entries]
|
||||
manager = [x for x in entries if x.manager not in dns][0]
|
||||
return manager
|
||||
def getCelluleManagers(self, service, cellule):
|
||||
service_manager = self.getServiceManager(service)
|
||||
entries = [x for x in self.getEntries() if \
|
||||
x.service == service and x.division == cellule and x.manager == service_manager.dn]
|
||||
return sorted(entries, key=get_sn)
|
||||
|
||||
def getCellulePeople(self, cellule):
|
||||
entries = [x for x in self.getEntries() if x.division == cellule]
|
||||
cellule_manager = self.getCelluleManager()
|
||||
def getCellulePeople(self, service, cellule):
|
||||
cellule_managers = [x.dn for x in self.getCelluleManagers(service, cellule)]
|
||||
entries = [x for x in self.getEntries() if \
|
||||
x.service == service and x.division == cellule and x.dn not in cellule_managers]
|
||||
return sorted(entries, key=get_sn)
|
||||
|
||||
|
||||
|
|
|
@ -20,7 +20,8 @@
|
|||
<tal:main-macro metal:define-macro="main"
|
||||
tal:define="kssClassesView context/@@kss_field_decorator_view;
|
||||
getKssClasses nocall:kssClassesView/getKssClassesInlineEditable;
|
||||
service python:context.REQUEST.get('service')">
|
||||
service python:context.REQUEST.get('service');
|
||||
cellule python:context.REQUEST.get('cellule');">
|
||||
|
||||
<div tal:replace="structure provider:plone.abovecontenttitle" />
|
||||
<h1 metal:use-macro="here/kss_generic_macros/macros/generic_title_view">
|
||||
|
@ -53,7 +54,7 @@
|
|||
</ul>
|
||||
</div>
|
||||
|
||||
<div tal:condition="python: not(not(service))">
|
||||
<div tal:condition="python: (service and not cellule)">
|
||||
<h2 tal:content="python: service">service name</h2>
|
||||
<ul>
|
||||
<li tal:repeat="entry python: [context.getServiceManager(service)]">
|
||||
|
@ -63,7 +64,7 @@
|
|||
</ul>
|
||||
|
||||
<ul tal:repeat="cellule python: context.getCellules(service)">
|
||||
<a href="xx" tal:content="cellule">cellule</a>
|
||||
<a tal:attributes="href string:?service=${service}&cellule=${cellule}" tal:content="cellule">cellule</a>
|
||||
</ul>
|
||||
|
||||
<ul>
|
||||
|
@ -72,9 +73,27 @@
|
|||
<span tal:replace="entry/sn">sn</span>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
||||
<div tal:condition="python: (service and cellule)">
|
||||
<h2><span tal:content="python: service">service name</span> -
|
||||
<span tal:content="python: cellule">cellule name</span></h2>
|
||||
<ul>
|
||||
<li tal:repeat="entry python: context.getCelluleManagers(service, cellule)">
|
||||
<span tal:replace="entry/givenName">givenName</span>
|
||||
<span tal:replace="entry/sn">sn</span>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<ul>
|
||||
<li tal:repeat="entry python: context.getCellulePeople(service, cellule)">
|
||||
<span tal:replace="entry/givenName">givenName</span>
|
||||
<span tal:replace="entry/sn">sn</span>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
|
||||
<div tal:replace="structure provider:plone.belowcontentbody" />
|
||||
</tal:main-macro>
|
||||
</metal:main>
|
||||
|
|
Reference in New Issue