From c0f64275a6b20dc71f50ebaafe70f0bee2822676 Mon Sep 17 00:00:00 2001 From: Jeremie Dimino Date: Sun, 3 Oct 2010 19:55:14 +0200 Subject: [PATCH] =?UTF-8?q?[controle=5Ftresorier]=20tient=20compte=20de=20?= =?UTF-8?q?l'argument=20'-t'=20pour=20le=20contr=C3=B4le=20interactif?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit darcs-hash:20101003175514-af139-94cace77b2b0978f746320f032465a0d06d6a691.gz --- admin/controle_tresorier.py | 47 ++++++++++++++++++++----------------- 1 file changed, 26 insertions(+), 21 deletions(-) diff --git a/admin/controle_tresorier.py b/admin/controle_tresorier.py index ae2d3508..cbfccab8 100644 --- a/admin/controle_tresorier.py +++ b/admin/controle_tresorier.py @@ -146,6 +146,23 @@ def _controle_interactif_clubs(liste): return nb, len(liste)-nb +def qui(historique, quoi): + """ + Recherche le câbleur qui a effectué la dernière modification quoi + dans l'historique, ou qui a inscrit l'adhérent. + Retourne le couple (date, cableur) ou ('_inconnu_', '_inconnu_'). + """ + regexp = re.compile(r'^([^,]*), ([^ :]*)') + cableur = ('_inconnu_', '_inconnu_') + + champ = re.compile(quoi) + + for ligne in historique: + if champ.search(ligne) or 'inscription' in ligne: + matched = regexp.search(ligne) + if matched: cableur = matched.group(1), matched.group(2) + + return cableur def controle_interactif(quoi): """ @@ -156,8 +173,15 @@ def controle_interactif(quoi): % ({'p': 'paiement', 'c': 'carteEtudiant'}[quoi], ann_scol, quoi)) # Tri de la liste des adhérents selon nom, prénom - # Ça peut se faire plus facilement en Python 2.4 avec l'argument key - todo_list['adherent'].sort(lambda x, y: cmp((x.nom(), x.prenom()), (y.nom(), y.prenom()))) + todo_list['adherent'].sort(key = lambda x: (x.nom(), x.prenom())) + + if trier_par == 'id': + todo_list['adherent'].sort(key = lambda x: x.id()) + elif trier_par == 'nom': + pass + else: + champ = { 'date': 0, 'cableur': 1 }[trier_par] + todo_list['adherent'].sort(key = lambda x: qui(x.historique(), r'paiement')[champ]) # Traitement des adhérents oka, noka = _controle_interactif_adherents(todo_list['adherent'], quoi) @@ -234,25 +258,6 @@ def formater_pour_bureau(dico): alignement = ['d', 'c', 'c', 'c']) + u'\nTotal : %d' % total -def qui(historique, quoi): - """ - Recherche le câbleur qui a effectué la dernière modification quoi - dans l'historique, ou qui a inscrit l'adhérent. - Retourne le couple (date, cableur) ou ('_inconnu_', '_inconnu_'). - """ - regexp = re.compile(r'^([^,]*), ([^ :]*)') - cableur = ('_inconnu_', '_inconnu_') - - champ = re.compile(quoi) - - for ligne in historique: - if champ.search(ligne) or 'inscription' in ligne: - matched = regexp.search(ligne) - if matched: cableur = matched.group(1), matched.group(2) - - return cableur - - def chercher_cableurs(liste, quoi): """ Renvoie un dictionnaire cableur->adherents à partir de liste, quoi