[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]
|
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)
|
super(proprio, self).__init__(conn, dn, mode, ldif)
|
||||||
self._machines = machines
|
self._machines = machines
|
||||||
|
|
||||||
|
@ -564,7 +564,7 @@ class proprio(CransLdapObject):
|
||||||
|
|
||||||
def machines(self):
|
def machines(self):
|
||||||
"""Renvoie la liste des machines"""
|
"""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)
|
self._machines = self.conn.search('mid=*', dn = self.dn, scope = 1, mode=self.mode)
|
||||||
for m in self._machines:
|
for m in self._machines:
|
||||||
m._proprio = self
|
m._proprio = self
|
||||||
|
@ -661,13 +661,27 @@ class adherent(proprio):
|
||||||
]
|
]
|
||||||
ldap_name = "adherent"
|
ldap_name = "adherent"
|
||||||
|
|
||||||
def __init__(self, conn, dn, mode='ro', ldif = None):
|
def __init__(self, conn, dn, mode='ro', ldif = None, machines=None, clubs=None, imprimeur_clubs=None):
|
||||||
super(adherent, self).__init__(conn, dn, mode, ldif)
|
super(adherent, self).__init__(conn, dn, mode, ldif, machine)
|
||||||
self.full = False
|
self.full = False
|
||||||
|
self._clubs = clubs
|
||||||
|
self._imprimeur_clubs = imprimeur_clubs
|
||||||
if u'cransAccount' in [ unicode(o) for o in self['objectClass']]:
|
if u'cransAccount' in [ unicode(o) for o in self['objectClass']]:
|
||||||
self.attribs = self.attribs + crans_account_attribs
|
self.attribs = self.attribs + crans_account_attribs
|
||||||
self.full = True
|
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):
|
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
|
u"""Renvoie le nom du compte crans. S'il n'existe pas, et que uid
|
||||||
est précisé, le crée."""
|
est précisé, le crée."""
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue