Front-end pour les oprations/visualisation du solde
Droits imrpimeur pour pourvoir crditer/dbiter un compte. darcs-hash:20050212183442-41617-26b8acd481fe3f71b095ec5c69bf9293ef9fbff6.gz
This commit is contained in:
parent
e19194147e
commit
60be2b4c14
4 changed files with 63 additions and 44 deletions
|
@ -34,6 +34,10 @@ else : ann_scol = dat[0]
|
||||||
## Répertoire de stoquage des objets détruits
|
## Répertoire de stoquage des objets détruits
|
||||||
cimetiere = '/home/cimetiere'
|
cimetiere = '/home/cimetiere'
|
||||||
|
|
||||||
|
##Impression
|
||||||
|
# Découvert autorisé
|
||||||
|
decouvert = -10
|
||||||
|
|
||||||
#############################
|
#############################
|
||||||
## Paramètres des machines ##
|
## Paramètres des machines ##
|
||||||
#############################
|
#############################
|
||||||
|
|
|
@ -32,6 +32,11 @@ from ldap_crans import adherent, machine, crans_ldap, crans, club, blacklist_ite
|
||||||
def dialog(arg) :
|
def dialog(arg) :
|
||||||
return affich_tools.dialog(u'Gestion des adhérents et machines du Crans',arg)
|
return affich_tools.dialog(u'Gestion des adhérents et machines du Crans',arg)
|
||||||
|
|
||||||
|
try:
|
||||||
|
isimprimeur = u"Imprimeur" in crans_ldap().search("uid=%s" % script_utilisateur)['adherent'][0].droits()
|
||||||
|
except:
|
||||||
|
imprimeur = False
|
||||||
|
|
||||||
#########################################################################
|
#########################################################################
|
||||||
## Fonctions de remplissage ou modification des paramètres d'un adhérent
|
## Fonctions de remplissage ou modification des paramètres d'un adhérent
|
||||||
|
|
||||||
|
@ -461,23 +466,7 @@ def set_droits(adher) :
|
||||||
|
|
||||||
# Traitement
|
# Traitement
|
||||||
adher.droits(result)
|
adher.droits(result)
|
||||||
|
|
||||||
def set_shell(adher) :
|
|
||||||
""" Modification du shell d'un adhérent """
|
|
||||||
while 1 :
|
|
||||||
arg = u'--title "Nouveau shell pour %s" ' % adher.Nom()
|
|
||||||
arg+= u'--inputbox "Shell : " 0 0 "%s" ' % adher.chsh()
|
|
||||||
annul,res = dialog(arg)
|
|
||||||
if annul : return 1
|
|
||||||
|
|
||||||
try :
|
|
||||||
adher.chsh(res[0])
|
|
||||||
break
|
|
||||||
except ValueError, c :
|
|
||||||
arg = u'--title "Changement du shell de %s" ' % adher.Nom()
|
|
||||||
arg+= u'--msgbox "%s\n\n\n" 0 0' % c.args[0]
|
|
||||||
dialog(arg)
|
|
||||||
|
|
||||||
def set_adresse(adher) :
|
def set_adresse(adher) :
|
||||||
""" Modification de l'édresse d'un adhérent """
|
""" Modification de l'édresse d'un adhérent """
|
||||||
arg = u'--title "Déménagement de %s" ' % adher.Nom()
|
arg = u'--title "Déménagement de %s" ' % adher.Nom()
|
||||||
|
@ -711,7 +700,23 @@ def __prompt_input_menu(method,titre,prompt) :
|
||||||
arg+= u'--msgbox "%s\n\n\n" 0 0' % c.args[0]
|
arg+= u'--msgbox "%s\n\n\n" 0 0' % c.args[0]
|
||||||
dialog(arg)
|
dialog(arg)
|
||||||
return __prompt_input_menu(method,titre,prompt)
|
return __prompt_input_menu(method,titre,prompt)
|
||||||
|
|
||||||
|
def set_solde(clas) :
|
||||||
|
""" Débit ou crédit d'un compte """
|
||||||
|
while 1 :
|
||||||
|
arg = u'--title "Crédit / débit du compte de %s" ' % clas.Nom()
|
||||||
|
arg+= u'--inputbox "Solde actuel : %s\n Opération à effectuer (+ pour crédits et - pour débit) ?" 0 0 "" ' % clas.solde()
|
||||||
|
annul,res = dialog(arg)
|
||||||
|
if annul : return 1
|
||||||
|
|
||||||
|
try:
|
||||||
|
clas.solde(res[0])
|
||||||
|
break
|
||||||
|
except ValueError, c :
|
||||||
|
arg = u'--title "Opération impossible" '
|
||||||
|
arg+= u'--msgbox "%s\n\n\n" 0 0' % c.args[0]
|
||||||
|
dialog(arg)
|
||||||
|
|
||||||
def confirm(clas) :
|
def confirm(clas) :
|
||||||
""" Demande confirmation avant enregistrement"""
|
""" Demande confirmation avant enregistrement"""
|
||||||
# On va faire en texte, les couleurs ne passent pas en curses
|
# On va faire en texte, les couleurs ne passent pas en curses
|
||||||
|
@ -916,10 +921,11 @@ def modif_club(club) :
|
||||||
arg+= u'"Compte" "Créer un compte sur zamok" '
|
arg+= u'"Compte" "Créer un compte sur zamok" '
|
||||||
if club.compte() :
|
if club.compte() :
|
||||||
arg+= u'"Alias" "Créer ou supprimer un alias mail" '
|
arg+= u'"Alias" "Créer ou supprimer un alias mail" '
|
||||||
#if isadm and club.compte() :
|
|
||||||
# arg+= u'"Shell" "Changer le shell du club" '
|
|
||||||
if isdeconnecteur :
|
if isdeconnecteur :
|
||||||
arg+= u'"Blackliste" "Modifier la blackliste du club" '
|
arg+= u'"Blackliste" "Modifier la blackliste du club" '
|
||||||
|
if isimprimeur :
|
||||||
|
arg+= u'"Solde" "Effectuer un débit/crédit pour ce club" '
|
||||||
|
|
||||||
arg+= u'"Remarque" "Ajouter ou modifer un commentaire" '
|
arg+= u'"Remarque" "Ajouter ou modifer un commentaire" '
|
||||||
annul, res = dialog(arg)
|
annul, res = dialog(arg)
|
||||||
|
|
||||||
|
@ -941,8 +947,8 @@ def modif_club(club) :
|
||||||
set_local(club)
|
set_local(club)
|
||||||
elif res[0]=='Alias' :
|
elif res[0]=='Alias' :
|
||||||
__prompt_input_menu(club.alias,'Alias mail', "Entrez ou modifier un alias mail.\nPour ajouter un alias modifier le dernier de la liste.")
|
__prompt_input_menu(club.alias,'Alias mail', "Entrez ou modifier un alias mail.\nPour ajouter un alias modifier le dernier de la liste.")
|
||||||
#elif res[0]=='Shell' :
|
elif res[0]=='Solde' :
|
||||||
# set_shell(club)
|
set_solde(club)
|
||||||
|
|
||||||
if club.modifs :
|
if club.modifs :
|
||||||
return confirm(club)
|
return confirm(club)
|
||||||
|
@ -1193,6 +1199,9 @@ def modif_adher(adher) :
|
||||||
arg+= u'"Shell" "Changer le shell de cet utilisateur" '
|
arg+= u'"Shell" "Changer le shell de cet utilisateur" '
|
||||||
if isdeconnecteur :
|
if isdeconnecteur :
|
||||||
arg+= u'"Blackliste" "Modifier la blackliste de cet adhérent" '
|
arg+= u'"Blackliste" "Modifier la blackliste de cet adhérent" '
|
||||||
|
if isimprimeur :
|
||||||
|
arg+= u'"Solde" "Effectuer un débit/crédit pour cet adhérent" '
|
||||||
|
|
||||||
annul, res = dialog(arg)
|
annul, res = dialog(arg)
|
||||||
|
|
||||||
if annul : return 1
|
if annul : return 1
|
||||||
|
@ -1297,6 +1306,9 @@ def modif_adher(adher) :
|
||||||
arg = u'--title "Changement du shell de %s" ' % adher.Nom()
|
arg = u'--title "Changement du shell de %s" ' % adher.Nom()
|
||||||
arg+= u'--msgbox "%s\n\n\n" 0 0' % c.args[0]
|
arg+= u'--msgbox "%s\n\n\n" 0 0' % c.args[0]
|
||||||
dialog(arg)
|
dialog(arg)
|
||||||
|
|
||||||
|
elif res[0]=='Solde' :
|
||||||
|
set_solde(adher)
|
||||||
|
|
||||||
if adher.modifs :
|
if adher.modifs :
|
||||||
return confirm(adher)
|
return confirm(adher)
|
||||||
|
|
|
@ -59,7 +59,7 @@ blacklist_items = { u'bloq' : u'Bloquage total de tout services' ,
|
||||||
|
|
||||||
##################################################################################
|
##################################################################################
|
||||||
### Droits possibles
|
### Droits possibles
|
||||||
droits_possibles = [ u'Nounou', u'Apprenti', u'Modérateur', u'Câbleur', u'Déconnecteur',u'CVSWeb' , u'WebRadio' ]
|
droits_possibles = [ u'Nounou', u'Apprenti', u'Modérateur', u'Câbleur', u'Déconnecteur',u'CVSWeb' , u'WebRadio' , u'Imprimeur']
|
||||||
|
|
||||||
##################################################################################
|
##################################################################################
|
||||||
### Variables internes diverses
|
### Variables internes diverses
|
||||||
|
@ -799,7 +799,7 @@ class base_classes_crans(crans_ldap) :
|
||||||
self._data["chbre"][0]))
|
self._data["chbre"][0]))
|
||||||
|
|
||||||
if "solde" in self.modifs:
|
if "solde" in self.modifs:
|
||||||
diff = string.atof(self._init_data["solde"][0]) - string.atof(self._data["solde"][0])
|
diff = float(self._init_data.get('solde',[0])[0]) - float(self._data.get('solde',[0])[0])
|
||||||
if diff > 0 :
|
if diff > 0 :
|
||||||
modif = modif.replace("solde", "debit %s Euros" % str(diff) )
|
modif = modif.replace("solde", "debit %s Euros" % str(diff) )
|
||||||
else :
|
else :
|
||||||
|
@ -1030,36 +1030,29 @@ class base_proprietaire(base_classes_crans) :
|
||||||
else :
|
else :
|
||||||
return []
|
return []
|
||||||
|
|
||||||
def solde(self, new=None) :
|
def solde(self, operation=None) :
|
||||||
""" Retourne ou modifie le solde d'un propriétaire """
|
""" Retourne ou modifie le solde d'un propriétaire
|
||||||
if not self._data.has_key('solde') :
|
operation doit être un nombre positif ou négatif
|
||||||
self._data['solde']=['0']
|
(string ou int ou float)
|
||||||
solde = string.atof( self._data['solde'][0] )
|
"""
|
||||||
|
solde = float(self._data.get('solde',[0])[0])
|
||||||
|
|
||||||
if new==None :
|
if operation==None :
|
||||||
return solde
|
return solde
|
||||||
|
|
||||||
# vérifie que new est un nombre
|
# On effectue une opération
|
||||||
try :
|
try :
|
||||||
new + 0
|
new = solde + float(operation.replace(',','.'))
|
||||||
except TypeError :
|
except ValueError :
|
||||||
raise TypeError(u"Il faut donner un nombre en argument.")
|
raise ValueError(u"Il faut donner un nombre en argument.")
|
||||||
|
|
||||||
# découvert accepté
|
# découvert accepté
|
||||||
if new < 0 :
|
if new < config.decouvert :
|
||||||
raise ValueError(u"Solde minimal atteind, opération non effectuée.")
|
raise ValueError(u"Solde minimal atteind, opération non effectuée.")
|
||||||
|
|
||||||
self._set('solde',[str(new)])
|
self._set('solde',[str(new)])
|
||||||
return new
|
return new
|
||||||
|
|
||||||
def debit(self, montant) :
|
|
||||||
""" Effectue un débit sur le solde d'un propriétaire """
|
|
||||||
return self.solde( self.solde() - montant )
|
|
||||||
|
|
||||||
def credit(self, montant) :
|
|
||||||
""" Effectue un crédit sur le solde d'un propriétaire """
|
|
||||||
return self.solde( self.solde() + montant )
|
|
||||||
|
|
||||||
def paiement(self,action=None) :
|
def paiement(self,action=None) :
|
||||||
"""
|
"""
|
||||||
Action est un entier représentant une année
|
Action est un entier représentant une année
|
||||||
|
|
|
@ -332,6 +332,16 @@ def adher_details(adher) :
|
||||||
f += coul(u'Etudes : ','gras')+ "%s %s %s\n" % \
|
f += coul(u'Etudes : ','gras')+ "%s %s %s\n" % \
|
||||||
( adher.etudes(0), adher.etudes(1), adher.etudes(2) )
|
( adher.etudes(0), adher.etudes(1), adher.etudes(2) )
|
||||||
|
|
||||||
|
# Solde
|
||||||
|
solde = adher.solde()
|
||||||
|
if solde :
|
||||||
|
f += coul(u'Solde : ','gras')
|
||||||
|
if solde < 0 :
|
||||||
|
f+= coul(str(solde).replace('.',','),'rouge')
|
||||||
|
else :
|
||||||
|
f += str(solde).replace('.',',')
|
||||||
|
f += u" Euros\n"
|
||||||
|
|
||||||
# Role dans l'assoce
|
# Role dans l'assoce
|
||||||
d = adher.droits()
|
d = adher.droits()
|
||||||
if d :
|
if d :
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue