diff --git a/PcfAnnuaire.py b/PcfAnnuaire.py index 5769ff7..d8f0957 100644 --- a/PcfAnnuaire.py +++ b/PcfAnnuaire.py @@ -6,6 +6,7 @@ import os import time import calendar import ldap +import urllib from interfaces import IPcfAnnuaire from zope.interface import implements @@ -23,7 +24,7 @@ class PcfAnnuaireEntry: def __init__(self, ldap_dn, ldap_entry): def get_attr(x): try: - return ldap_entry.get(x)[0] + return ldap_entry.get(x)[0].strip() except (IndexError, TypeError): return None self._debug_entry = ldap_entry @@ -47,6 +48,12 @@ class PcfAnnuaireEntry: self.title = get_attr('title') self.company = get_attr('company') self.manager = get_attr('manager') + if self.manager: + self.manager_url = urllib.quote(self.manager) + self.manager = self.manager.split('=')[1].split(',')[0] + + def __str__(self): + return urllib.quote(self.dn) class PcfAnnuaireService: pass @@ -165,5 +172,8 @@ class PcfAnnuaire(BaseContent): x.service == service and x.division == cellule and x.dn not in cellule_managers] return sorted(entries, key=get_sn) + def getPerson(self, dn): + person = [x for x in self.getEntries() if x.dn == dn][0] + return person registerType(PcfAnnuaire) diff --git a/skins/pcfannuaire/pcfannuaire_view.pt b/skins/pcfannuaire/pcfannuaire_view.pt index 4a147fc..158246c 100644 --- a/skins/pcfannuaire/pcfannuaire_view.pt +++ b/skins/pcfannuaire/pcfannuaire_view.pt @@ -21,6 +21,7 @@ tal:define="kssClassesView context/@@kss_field_decorator_view; getKssClasses nocall:kssClassesView/getKssClassesInlineEditable; service python:context.REQUEST.get('service'); + person python:context.REQUEST.get('person'); cellule python:context.REQUEST.get('cellule');">
@@ -37,12 +38,14 @@ Description
-
+

Secrétaire Général

@@ -58,8 +61,10 @@

service name

@@ -69,8 +74,10 @@
@@ -80,19 +87,44 @@ cellule name
+
+
+

givenName + sn

+ +
+