Gestion de la caution par Stphane.

darcs-hash:20051118002556-41617-c81d1382bc14ab6f92ff080aaf4155495a7fe42e.gz
This commit is contained in:
pauget 2005-11-18 01:25:56 +01:00
parent 6271b2919c
commit 872f8bd772
3 changed files with 51 additions and 12 deletions

View file

@ -885,8 +885,12 @@ def set_blackliste(clas) :
def set_admin(proprio) : def set_admin(proprio) :
""" """
Définition de l'état administratif : carte d'étudiant et paiement Définition de l'état administratif : carte d'étudiant, paiement
et caution.
""" """
# Le propriétaire est-il un personnel de l'ENS ?
personnel = proprio.etudes(0) == "ENS" and proprio.etudes(1) == "Pers"
# Le proprietaire a t-il une section carte d'étudiant ? # Le proprietaire a t-il une section carte d'étudiant ?
# Pas pour les clubs # Pas pour les clubs
if proprio.idn != 'cid': if proprio.idn != 'cid':
@ -911,6 +915,12 @@ def set_admin(proprio) :
else: else:
paid_ok = 'off' paid_ok = 'off'
if 'k' in proprio.controle():
txt.append(u'Caution payée')
caution_ok = 'on'
else:
caution_ok = 'off'
if 'c' in proprio.controle(): if 'c' in proprio.controle():
txt.append(u'Carte vérifiée') txt.append(u'Carte vérifiée')
carte_ok = 'on' carte_ok = 'on'
@ -919,7 +929,7 @@ def set_admin(proprio) :
if iscontroleur: txt = [] if iscontroleur: txt = []
if len(txt) == 2 : if len(txt) == 3 :
# Il n'y a rien à demander # Il n'y a rien à demander
dialog(u'--title "État administratif de %s non modifiable" --msgbox "%s\n" 0 0 ' % (proprio.Nom(), '\n'.join(txt))) dialog(u'--title "État administratif de %s non modifiable" --msgbox "%s\n" 0 0 ' % (proprio.Nom(), '\n'.join(txt)))
return return
@ -929,16 +939,19 @@ def set_admin(proprio) :
arg+= u'--checklist "%s" 0 0 0 ' % '\n'.join(txt) arg+= u'--checklist "%s" 0 0 0 ' % '\n'.join(txt)
if carte_ok == 'off' or iscontroleur: if carte_ok == 'off' or iscontroleur:
if card and (proprio.etudes(0) != "ENS" or proprio.etudes(1) != "Pers"): if personnel:
arg+= u'"1" "Carte d\'étudiant %d/%d fournie" "%s" ' % (ann_scol,ann_scol+1, carte)
elif card:
arg+= u'"1" "Preuve informelle d\'appartenance aux personnels de l\'ENS" "%s" ' % carte arg+= u'"1" "Preuve informelle d\'appartenance aux personnels de l\'ENS" "%s" ' % carte
elif card:
arg+= u'"1" "Carte d\'étudiant %d/%d fournie" "%s" ' % (ann_scol,ann_scol+1, carte)
if paid_ok == 'off' or iscontroleur: if paid_ok == 'off' or iscontroleur:
arg+= u'"2" "Adhésion %d/%d réglée et charte signée" "%s" ' % (ann_scol,ann_scol+1,paid_now) arg+= u'"2" "Adhésion %d/%d réglée et charte signée" "%s" ' % (ann_scol,ann_scol+1,paid_now)
if config.precab == 1 : if config.precab == 1 :
arg+= u'"3" "Adhésion %d/%d réglée et charte signée (précâblage)" "%s" ' % (ann_scol+1,ann_scol+2,precab) arg+= u'"3" "Adhésion %d/%d réglée et charte signée (précâblage)" "%s" ' % (ann_scol+1,ann_scol+2,precab)
if iscontroleur or (caution_ok == 'off' and not personnel):
arg+= u'"C" "Caution payée" "%s" ' % caution_ok
if iscontroleur: if iscontroleur:
if card: arg += u'"4" "Vérification de la carte d\'étudiant effectuée" "%s" ' % carte_ok if card: arg += u'"4" "Vérification de la carte d\'étudiant effectuée" "%s" ' % carte_ok
arg += u'"5" "Vérification de la cotisation/charte effectuée" "%s" ' % paid_ok arg += u'"5" "Vérification de la cotisation/charte effectuée" "%s" ' % paid_ok
@ -949,7 +962,7 @@ def set_admin(proprio) :
# Traitement # Traitement
if card : if card :
if '1\n' in result : proprio.carteEtudiant(ann_scol) if '1\n' in result : proprio.carteEtudiant(ann_scol)
else : proprio.carteEtudiant(-ann_scol) elif iscontroleur or carte_ok == 'off' : proprio.carteEtudiant(-ann_scol)
if '2\n' in result and ann_scol not in proprio.paiement(): if '2\n' in result and ann_scol not in proprio.paiement():
# On est en train de renouveller l'adhésion # On est en train de renouveller l'adhésion
@ -984,6 +997,11 @@ def set_admin(proprio) :
if '5\n' in result: proprio.controle('+p') if '5\n' in result: proprio.controle('+p')
elif iscontroleur: proprio.controle('-p') elif iscontroleur: proprio.controle('-p')
if 'C\n' in result:
proprio.controle('+k')
elif iscontroleur:
proprio.controle('-k')
############################################################### ###############################################################
## Fonctions de remplissage ou modification des paramètres club ## Fonctions de remplissage ou modification des paramètres club
@ -1805,12 +1823,18 @@ def menu_principal() :
if proprio.__class__ == club or proprio.etudes(0) != "ENS" or \ if proprio.__class__ == club or proprio.etudes(0) != "ENS" or \
proprio.etudes(1) != "Pers": proprio.etudes(1) != "Pers":
# On ne peut avoir de machine fixe si on n'a pas payé
# la caution
caution_ok = 'k' in proprio.controle()
# On ne peut avoir une machine fixe que si on a pas # On ne peut avoir une machine fixe que si on a pas
# déjà une machine fixe, sauf si on est membre actif # déjà une machine fixe, sauf si on est membre actif
# (expérimental) # (expérimental)
# On récupère la liste des machines fixes # On récupère la liste des machines fixes
if proprio.__class__ == club or not proprio.machines_fixes() or proprio.droits(): if caution_ok and \
(proprio.__class__ == club or \
not proprio.machines_fixes() or proprio.droits()):
arg = u'--title "Nouvelle machine" ' arg = u'--title "Nouvelle machine" '
arg+= u'--menu "Type de machine ?" 0 0 0 ' arg+= u'--menu "Type de machine ?" 0 0 0 '
arg+= u'"Fixe" "Machine fixe" ' arg+= u'"Fixe" "Machine fixe" '
@ -1818,6 +1842,19 @@ def menu_principal() :
annul , result = dialog(arg) annul , result = dialog(arg)
if annul : continue if annul : continue
choix=result[0] choix=result[0]
elif not caution_ok:
arg = u'--title "Nouvelle machine" '
arg+= u'--menu " Caution non payée\n\n'
arg+= u'Pour pouvoir incrire une machine fixe, il faut avoir'
arg+= u'payé la caution." 0 0 0 '
arg+= u'"OK" "OK, on lui rajoute une machine wifi" '
arg+= u'"Annul" "Bon, on abandonne..." '
annul, result = dialog(arg)
if annul or result[0] == "Annul": continue
if result[0] == "OK":
choix = 'Wifi'
else:
continue
else: else:
# Plus de machine fixe possible... # Plus de machine fixe possible...
arg = u'--title "Nouvelle machine" ' arg = u'--title "Nouvelle machine" '

View file

@ -1217,9 +1217,9 @@ class base_proprietaire(base_classes_crans):
def controle(self,new=None): def controle(self,new=None):
""" """
Controle du tresorier Controle du tresorier
New est de la forme [+-][pc] New est de la forme [+-][pck]
(p pour le paiement, c pour la carte (p pour le paiement, c pour la carte, k pour la caution)
Retourne une chaine contenant p ou c ou les deux Retourne une chaine contenant une combinaison de p, c, k.
""" """
actuel = self._data.get('controle',['']) actuel = self._data.get('controle',[''])
if not actuel: if not actuel:
@ -1230,10 +1230,10 @@ class base_proprietaire(base_classes_crans):
if new==None: if new==None:
return actuel return actuel
if not sre.match(r'^[+-][pc]$', new): if not sre.match(r'^[+-][pck]$', new):
raise ValueError('modification de controle incorrecte') raise ValueError('modification de controle incorrecte')
for c in 'pc': for c in 'pck':
if new == '+%s' % c and c not in actuel: if new == '+%s' % c and c not in actuel:
actuel += c actuel += c
if new == '-%s' % c: if new == '-%s' % c:

View file

@ -314,6 +314,8 @@ def adher_details(adher) :
if jour : if jour :
f += coul(u"à jour",'vert') f += coul(u"à jour",'vert')
if 'k' not in adher.controle():
f += u' (caution non payée)'
f += '\n' f += '\n'
# Telephone # Telephone