Ajout gestion d'imprimeurs supplementaires aux clubs

darcs-hash:20080925150938-ddb99-b14a05653652f20395d564ee514a4de72896c18b.gz
This commit is contained in:
Michel Blockelet 2008-09-25 17:09:38 +02:00
parent a1df248e34
commit 0bee1d7cde
4 changed files with 98 additions and 34 deletions

View file

@ -1098,7 +1098,7 @@ class BaseClasseCrans(CransLdap):
for champ in ['droits', 'controle', 'paiement', 'carteEtudiant',
'mailAlias', 'hostAlias', 'exempt', 'nvram',
'portTCPin', 'portTCPout', 'portUDPin', 'portUDPout',
'homepageAlias']:
'homepageAlias', 'imprimeurClub']:
if champ in self.modifs:
if champ == 'controle':
# Ce n'est pas pareil que self._init_data.get('controle', [''])
@ -2421,24 +2421,29 @@ class Club(BaseProprietaire):
self._set('responsable', [adher.id()])
return adher
def responsables(self, ajouter=None, retirer=None):
"""
NE PAS UTILISER CETTE FONCTION
Elle correspond a un champ qui n'existe
pas encore dans le schema
Responsables du club, ajouter et retirer doivent
tre des instances de la classe adherent """
if ajouter != None:
self._data['responsables'].remove(ajouter.id())
self._data['responsables'].append(ajouter.id())
elif retirer != None:
self._data['responsables'].remove(retirer.id())
def imprimeurs(self, ajouter=None, retirer=None):
"""Retourne la liste des aid des personnes autorisees a imprimer avec
le compte *@club-*, ou ajoute/retire un aid a cette liste."""
if self._data.has_key('imprimeurClub'):
liste = list(self._data['imprimeurClub'])
else:
resultat = []
for aid in self._data['responsables']:
resultat.append(db.search('uid ='+uid)['adherent'][0])
return adher
liste = []
if ajouter != None:
if len(db.search('aid=%s' % ajouter)['adherent']) > 0:
if ajouter not in liste:
liste.append(ajouter)
self._set('imprimeurClub', liste)
self.modifs['imprimeurClub'] = None
return True
return False
return False
elif retirer != None:
if retirer in liste:
liste.remove(retirer)
self._set('imprimeurClub', liste)
return True
return False
return liste
def chbre(self, new=None):
""" Défini le local du club