Ajout gestion d'imprimeurs supplementaires aux clubs
darcs-hash:20080925150938-ddb99-b14a05653652f20395d564ee514a4de72896c18b.gz
This commit is contained in:
parent
a1df248e34
commit
0bee1d7cde
4 changed files with 98 additions and 34 deletions
|
@ -631,15 +631,70 @@ def set_responsable(club):
|
||||||
else:
|
else:
|
||||||
club.responsable(resp)
|
club.responsable(resp)
|
||||||
|
|
||||||
def set_responsables(club):
|
def set_imprimeurs(club):
|
||||||
""" Modifie les responsable d'un club """
|
""" Modifie les imprimeurs d'un club """
|
||||||
arg = u'--title "Responsable du club" '
|
while 1:
|
||||||
arg += u'--msgbox "Séléctionnez l\'adhérent responsable du club\n\n\n" 0 0'
|
arg = u'--title "Imprimeurs de %s" ' % club.Nom()
|
||||||
dialog(arg)
|
if len(club.imprimeurs()) > 0:
|
||||||
resp = select(club, u'du responsable du club a', 'ro')
|
arg += u'--menu "Action ?" 0 0 0 '
|
||||||
if not resp: return 1
|
arg += u'"Enlever" "Enlever un imprimeur" '
|
||||||
else:
|
else:
|
||||||
club.responsable(resp)
|
arg += u'--menu "Il n\'y a aucun imprimeur pour ce club." 0 0 0 '
|
||||||
|
arg += u'"Ajouter" "Ajouter un imprimeur" '
|
||||||
|
annul, res = dialog(arg)
|
||||||
|
if annul: break
|
||||||
|
if res[0] == 'Enlever':
|
||||||
|
liste = map(lambda s: db.search("aid=%s" % s)['adherent'][0], club.imprimeurs())
|
||||||
|
if len(liste) == 1:
|
||||||
|
# Une seule réponse
|
||||||
|
choix = liste[0]
|
||||||
|
else:
|
||||||
|
# Il faut choisir
|
||||||
|
while 1:
|
||||||
|
os.system('clear')
|
||||||
|
choix = None
|
||||||
|
print "Ce club a plusieurs imprimeurs :"
|
||||||
|
aff(liste)
|
||||||
|
i = affich_tools.prompt(u'Votre choix ? (0 pour annuler) aid =')
|
||||||
|
if i == '0': break
|
||||||
|
for v in liste:
|
||||||
|
if v.id() == i:
|
||||||
|
choix = v
|
||||||
|
break
|
||||||
|
if not choix:
|
||||||
|
# Redemande le choix
|
||||||
|
print 'Choix invalide'
|
||||||
|
continue
|
||||||
|
if choix: break
|
||||||
|
|
||||||
|
if not choix:
|
||||||
|
continue
|
||||||
|
|
||||||
|
arg = u'--title "Enlever un imprimeur" '
|
||||||
|
arg += u'--yesno "Enlever l\'imprimeur %s ? \n\n" 0 0' % choix.Nom()
|
||||||
|
no, res = dialog(arg)
|
||||||
|
if not no:
|
||||||
|
if club.imprimeurs(retirer=str(choix.id())):
|
||||||
|
arg = u'--title "Enlever un imprimeur" '
|
||||||
|
arg += u'--msgbox "Imprimeur enlevé\n\n\n" 0 0'
|
||||||
|
dialog(arg)
|
||||||
|
else:
|
||||||
|
arg = u'--title "Enlever un imprimeur" '
|
||||||
|
arg += u'--msgbox "Cet adhérent n\'est pas imprimeur du club !\n\n\n" 0 0'
|
||||||
|
dialog(arg)
|
||||||
|
|
||||||
|
elif res[0] == 'Ajouter':
|
||||||
|
newimp = select(club, u'd\'un nouvel imprimeur a', 'ro')
|
||||||
|
if newimp:
|
||||||
|
if club.imprimeurs(ajouter=str(newimp.id())):
|
||||||
|
arg = u'--title "Ajout imprimeur" '
|
||||||
|
arg += u'--msgbox "Imprimeur ajouté\n\n\n" 0 0'
|
||||||
|
dialog(arg)
|
||||||
|
else:
|
||||||
|
arg = u'--title "Ajout imprimeur" '
|
||||||
|
arg += u'--msgbox "Cet adhérent est déjà imprimeur !\n\n\n" 0 0'
|
||||||
|
dialog(arg)
|
||||||
|
continue
|
||||||
|
|
||||||
def set_club_nom(club):
|
def set_club_nom(club):
|
||||||
# Nom du club
|
# Nom du club
|
||||||
|
@ -1123,6 +1178,7 @@ def modif_club(club):
|
||||||
arg += u'--menu "Que souhaitez vous modifier ?" 0 0 0 '
|
arg += u'--menu "Que souhaitez vous modifier ?" 0 0 0 '
|
||||||
arg += u'"NomClub" "Modifier le nom du club" '
|
arg += u'"NomClub" "Modifier le nom du club" '
|
||||||
arg += u'"Responsable" "Changer le responsable du club %s" ' % club.responsable().Nom()
|
arg += u'"Responsable" "Changer le responsable du club %s" ' % club.responsable().Nom()
|
||||||
|
arg += u'"Imprimeurs" "Changer la liste des imprimeurs" '
|
||||||
arg += u'"Administratif" "Précâblage" '
|
arg += u'"Administratif" "Précâblage" '
|
||||||
arg += u'"Local" "Modifier le local du club" '
|
arg += u'"Local" "Modifier le local du club" '
|
||||||
arg += u'"Compte" "Créer un compte crans." '
|
arg += u'"Compte" "Créer un compte crans." '
|
||||||
|
@ -1142,6 +1198,8 @@ def modif_club(club):
|
||||||
set_club_nom(club)
|
set_club_nom(club)
|
||||||
elif res[0] == 'Responsable':
|
elif res[0] == 'Responsable':
|
||||||
set_responsable(club)
|
set_responsable(club)
|
||||||
|
elif res[0] == 'Imprimeurs':
|
||||||
|
set_imprimeurs(club)
|
||||||
elif res[0] == 'Administratif':
|
elif res[0] == 'Administratif':
|
||||||
set_admin(club)
|
set_admin(club)
|
||||||
elif res[0] == 'Compte':
|
elif res[0] == 'Compte':
|
||||||
|
|
|
@ -1098,7 +1098,7 @@ class BaseClasseCrans(CransLdap):
|
||||||
for champ in ['droits', 'controle', 'paiement', 'carteEtudiant',
|
for champ in ['droits', 'controle', 'paiement', 'carteEtudiant',
|
||||||
'mailAlias', 'hostAlias', 'exempt', 'nvram',
|
'mailAlias', 'hostAlias', 'exempt', 'nvram',
|
||||||
'portTCPin', 'portTCPout', 'portUDPin', 'portUDPout',
|
'portTCPin', 'portTCPout', 'portUDPin', 'portUDPout',
|
||||||
'homepageAlias']:
|
'homepageAlias', 'imprimeurClub']:
|
||||||
if champ in self.modifs:
|
if champ in self.modifs:
|
||||||
if champ == 'controle':
|
if champ == 'controle':
|
||||||
# Ce n'est pas pareil que self._init_data.get('controle', [''])
|
# Ce n'est pas pareil que self._init_data.get('controle', [''])
|
||||||
|
@ -2421,24 +2421,29 @@ class Club(BaseProprietaire):
|
||||||
self._set('responsable', [adher.id()])
|
self._set('responsable', [adher.id()])
|
||||||
return adher
|
return adher
|
||||||
|
|
||||||
def responsables(self, ajouter=None, retirer=None):
|
def imprimeurs(self, ajouter=None, retirer=None):
|
||||||
"""
|
"""Retourne la liste des aid des personnes autorisees a imprimer avec
|
||||||
NE PAS UTILISER CETTE FONCTION
|
le compte *@club-*, ou ajoute/retire un aid a cette liste."""
|
||||||
Elle correspond a un champ qui n'existe
|
if self._data.has_key('imprimeurClub'):
|
||||||
pas encore dans le schema
|
liste = list(self._data['imprimeurClub'])
|
||||||
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())
|
|
||||||
else:
|
else:
|
||||||
resultat = []
|
liste = []
|
||||||
for aid in self._data['responsables']:
|
if ajouter != None:
|
||||||
resultat.append(db.search('uid ='+uid)['adherent'][0])
|
if len(db.search('aid=%s' % ajouter)['adherent']) > 0:
|
||||||
return adher
|
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):
|
def chbre(self, new=None):
|
||||||
""" Défini le local du club
|
""" Défini le local du club
|
||||||
|
|
|
@ -664,7 +664,7 @@ def machine_details(machine) :
|
||||||
|
|
||||||
def club_details(club) :
|
def club_details(club) :
|
||||||
"""
|
"""
|
||||||
Affichage du détail des propriétés d'un adhérent
|
Affichage du détail des propriétés d'un club
|
||||||
"""
|
"""
|
||||||
f=''
|
f=''
|
||||||
# Cid
|
# Cid
|
||||||
|
@ -675,6 +675,10 @@ def club_details(club) :
|
||||||
# responsale
|
# responsale
|
||||||
f += coul(u'Responsable : ','gras') + "%s\n" % club.responsable().Nom()
|
f += coul(u'Responsable : ','gras') + "%s\n" % club.responsable().Nom()
|
||||||
|
|
||||||
|
if len(club.imprimeurs()) > 0:
|
||||||
|
f += (coul(u'Imprimeurs : ', 'gras') + "%s\n" % ', '.join(map(lambda x:
|
||||||
|
club.search("aid=%s" % x)['adherent'][0].Nom(), club.imprimeurs())))
|
||||||
|
|
||||||
# État administratif
|
# État administratif
|
||||||
f += coul(u'État administratif : ','gras')
|
f += coul(u'État administratif : ','gras')
|
||||||
jour=1
|
jour=1
|
||||||
|
|
|
@ -164,11 +164,8 @@ def verifLogin(login = '', password = ''):
|
||||||
if login_club == 'club-crans':
|
if login_club == 'club-crans':
|
||||||
if u'Nounou' not in adh.droits() and u'Bureau' not in adh.droits():
|
if u'Nounou' not in adh.droits() and u'Bureau' not in adh.droits():
|
||||||
raise Exception, "Pas respo bureau ou nounou"
|
raise Exception, "Pas respo bureau ou nounou"
|
||||||
# gros hack moche et temporaire car je n'ai pas trop le temps et c'est presse
|
elif (adh.id() not in club._data['responsable']
|
||||||
elif login_club == 'club-bde':
|
and adh.id() not in club.imprimeurs()):
|
||||||
if login not in ['queue','jmarty','recher','monge']:
|
|
||||||
raise Exception, "Pas dans les respos du BDE"
|
|
||||||
elif adh.id() not in club._data['responsable']:
|
|
||||||
raise Exception, "Pas respo club"
|
raise Exception, "Pas respo club"
|
||||||
cherrypy.session['uid'] = login_club
|
cherrypy.session['uid'] = login_club
|
||||||
cherrypy.session['droits'] = []
|
cherrypy.session['droits'] = []
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue