[objets] Ajout de methodes à adherent pour récupérer les clubs dont il est responsable ou imprimeur
On en profite pour corriger la methode analogue dans proprio pour machine : On initialise bien la valeur interne par None et pas par une liste vide. En effet, il est possible que l'adherent possède 0 machines et alors il n'est pas utile de récupérer ses machines si self._machines vaut []
This commit is contained in:
parent
616acdbb7a
commit
f069ead1ea
1 changed files with 18 additions and 4 deletions
22
objets.py
22
objets.py
|
@ -486,7 +486,7 @@ class proprio(CransLdapObject):
|
|||
|
||||
attribs = [attributs.nom, attributs.chbre, attributs.paiement, attributs.info, attributs.blacklist, attributs.controle, attributs.historique]
|
||||
|
||||
def __init__(self, conn, dn, mode='ro', ldif = None, machines=[]):
|
||||
def __init__(self, conn, dn, mode='ro', ldif = None, machines=None):
|
||||
super(proprio, self).__init__(conn, dn, mode, ldif)
|
||||
self._machines = machines
|
||||
|
||||
|
@ -564,7 +564,7 @@ class proprio(CransLdapObject):
|
|||
|
||||
def machines(self):
|
||||
"""Renvoie la liste des machines"""
|
||||
if not self._machines:
|
||||
if self._machines is None:
|
||||
self._machines = self.conn.search('mid=*', dn = self.dn, scope = 1, mode=self.mode)
|
||||
for m in self._machines:
|
||||
m._proprio = self
|
||||
|
@ -661,13 +661,27 @@ class adherent(proprio):
|
|||
]
|
||||
ldap_name = "adherent"
|
||||
|
||||
def __init__(self, conn, dn, mode='ro', ldif = None):
|
||||
super(adherent, self).__init__(conn, dn, mode, ldif)
|
||||
def __init__(self, conn, dn, mode='ro', ldif = None, machines=None, clubs=None, imprimeur_clubs=None):
|
||||
super(adherent, self).__init__(conn, dn, mode, ldif, machine)
|
||||
self.full = False
|
||||
self._clubs = clubs
|
||||
self._imprimeur_clubs = imprimeur_clubs
|
||||
if u'cransAccount' in [ unicode(o) for o in self['objectClass']]:
|
||||
self.attribs = self.attribs + crans_account_attribs
|
||||
self.full = True
|
||||
|
||||
def clubs(self):
|
||||
"""Renvoie la liste des clubs dont l'adherent est responsable"""
|
||||
if self._clubs is None:
|
||||
self._clubs = self.conn.search('responsable=%s' % self['aid'][0], scope = 1, mode=self.mode)
|
||||
return self._clubs
|
||||
|
||||
def imprimeur_clubs(self):
|
||||
"""Renvoie la liste des clubs dont l'adherent est imprimeur"""
|
||||
if self._imprimeur_clubs is None:
|
||||
self._imprimeur_clubs = self.conn.search('imprimeurClub=%s' % self['aid'][0], scope = 1, mode=self.mode)
|
||||
return self._imprimeur_clubs
|
||||
|
||||
def compte(self, login = None, uidNumber=0, hash_pass = '', shell=config.login_shell):
|
||||
u"""Renvoie le nom du compte crans. S'il n'existe pas, et que uid
|
||||
est précisé, le crée."""
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue