[scripts] Going to utf-8
This commit is contained in:
parent
c4a19a88ed
commit
a1bf0a4547
54 changed files with 676 additions and 573 deletions
|
@ -1,21 +1,21 @@
|
|||
#! /usr/bin/env python
|
||||
# -*- coding: iso-8859-15 -*-
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
# Copyright (C) Stéphane Glondu, Alexandre Bos, Michel Blockelet
|
||||
# Copyright (C) Stéphane Glondu, Alexandre Bos, Michel Blockelet
|
||||
# Licence : GPLv2
|
||||
|
||||
u"""Ce script permet au secrétaire de repérer plus facilement les membres
|
||||
actifs qui n'ont pas signé la charte du même nom.
|
||||
u"""Ce script permet au secrétaire de repérer plus facilement les membres
|
||||
actifs qui n'ont pas signé la charte du même nom.
|
||||
|
||||
Utilisation :
|
||||
%(prog)s {liste|modif|spam} [--debug <adresse>]
|
||||
|
||||
L'unique option est :
|
||||
--debug <adresse> envoyer tous les mails à l'<adresse> indiquée, plutôt
|
||||
--debug <adresse> envoyer tous les mails à l'<adresse> indiquée, plutôt
|
||||
qu'aux vrais destinataires
|
||||
Les commandes sont :
|
||||
* liste énumérer les membres n'ayant pas signé la charte
|
||||
* modif modifier les membres actifs n'ayant pas signé la charte
|
||||
* liste énumérer les membres n'ayant pas signé la charte
|
||||
* modif modifier les membres actifs n'ayant pas signé la charte
|
||||
* spam envoie des mails de rappel pour les chartes
|
||||
"""
|
||||
|
||||
|
@ -29,7 +29,7 @@ from email_tools import send_email, parse_mail_template
|
|||
# Fonctions d'affichage
|
||||
from affich_tools import coul, tableau, prompt, cprint
|
||||
|
||||
# Importation de la base de données
|
||||
# Importation de la base de données
|
||||
from ldap_crans import crans_ldap, ann_scol
|
||||
db = crans_ldap()
|
||||
|
||||
|
@ -44,12 +44,12 @@ if __name__ == '__main__':
|
|||
sys.argv.pop()
|
||||
|
||||
if debug:
|
||||
cprint(u'Mode debug, tous les mails seront envoyés à %s.' % debug)
|
||||
cprint(u'Mode debug, tous les mails seront envoyés à %s.' % debug)
|
||||
|
||||
|
||||
def _controle_interactif_adherents(liste):
|
||||
"""
|
||||
Contrôle interactif des adhérents de la liste.
|
||||
Contrôle interactif des adhérents de la liste.
|
||||
Retourne (nb_OK, nb_pas_OK).
|
||||
"""
|
||||
|
||||
|
@ -57,10 +57,10 @@ def _controle_interactif_adherents(liste):
|
|||
if restant == 0:
|
||||
return 0, 0
|
||||
|
||||
cprint(u'\nContrôle des membre actifs' , 'cyan')
|
||||
cprint(u"Pour chaque entrée, il faut taper 'o' ou 'n' (défaut=n).")
|
||||
cprint(u"Une autre réponse entraîne l'interruption du processus.")
|
||||
cprint(u"Le format est [nb_restant] Nom, Prénom (aid).")
|
||||
cprint(u'\nContrôle des membre actifs' , 'cyan')
|
||||
cprint(u"Pour chaque entrée, il faut taper 'o' ou 'n' (défaut=n).")
|
||||
cprint(u"Une autre réponse entraîne l'interruption du processus.")
|
||||
cprint(u"Le format est [nb_restant] Nom, Prénom (aid).")
|
||||
cprint(u"")
|
||||
|
||||
nb = 0
|
||||
|
@ -81,7 +81,7 @@ def _controle_interactif_adherents(liste):
|
|||
modifiable.charteMA(True)
|
||||
cprint(modifiable.save())
|
||||
else:
|
||||
cprint(u'Adhérent %s locké, réessayer plus tard' % modifiable.Nom(), 'rouge')
|
||||
cprint(u'Adhérent %s locké, réessayer plus tard' % modifiable.Nom(), 'rouge')
|
||||
elif ok == 'n':
|
||||
if a.charteMA() == True:
|
||||
modifiable = db.search('aid=%s' % a.id(), 'w')['adherent'][0]
|
||||
|
@ -89,16 +89,16 @@ def _controle_interactif_adherents(liste):
|
|||
modifiable.charteMA(False)
|
||||
cprint(modifiable.save())
|
||||
else:
|
||||
cprint(u'Adhérent %s locké, réessayer plus tard' % modifiable.Nom(), 'rouge')
|
||||
cprint(u'Adhérent %s locké, réessayer plus tard' % modifiable.Nom(), 'rouge')
|
||||
else:
|
||||
cprint(u'Arrêt du contrôle %s des membres actifs' % explicite, 'rouge')
|
||||
cprint(u'Arrêt du contrôle %s des membres actifs' % explicite, 'rouge')
|
||||
break
|
||||
|
||||
return nb, len(liste)-nb
|
||||
|
||||
|
||||
def liste_charte_nok():
|
||||
"""Retourne la liste des membres actifs qui n'ont pas signé la charte."""
|
||||
"""Retourne la liste des membres actifs qui n'ont pas signé la charte."""
|
||||
liste_actifs = db.search('droits=*')['adherent']
|
||||
liste_nok = []
|
||||
for adh in liste_actifs:
|
||||
|
@ -110,25 +110,25 @@ def liste_charte_nok():
|
|||
|
||||
def controle_interactif():
|
||||
"""
|
||||
Procédure interactive de contrôle des chartes de membres actifs.
|
||||
Procédure interactive de contrôle des chartes de membres actifs.
|
||||
"""
|
||||
todo_list = liste_charte_nok()
|
||||
|
||||
# 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
|
||||
# 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.sort(lambda x, y: cmp((x.nom(), x.prenom()), (y.nom(), y.prenom())))
|
||||
|
||||
# Zou !
|
||||
ok, nok = _controle_interactif_adherents(todo_list)
|
||||
|
||||
cprint(u'\nRécapitulatif des nouveaux contrôles :', 'violet')
|
||||
cprint(u'\nRécapitulatif des nouveaux contrôles :', 'violet')
|
||||
liste = [[u'membres actifs', str(ok), str(nok)]]
|
||||
cprint(tableau(liste,
|
||||
titre = [u'Catégorie', u'OK', u'pas OK'],
|
||||
titre = [u'Catégorie', u'OK', u'pas OK'],
|
||||
largeur = [15, 10, 10]))
|
||||
|
||||
def spammer():
|
||||
# On envoie un mail à chacun des membres actifs qui n'ont pas donné le papier
|
||||
# On envoie un mail à chacun des membres actifs qui n'ont pas donné le papier
|
||||
todo_list = liste_charte_nok()
|
||||
|
||||
if todo_list:
|
||||
|
@ -144,10 +144,10 @@ def spammer():
|
|||
print to
|
||||
if not debug:
|
||||
data = config.mails.txt_charte_MA % {'From' : u"ca@crans.org", 'To' : to}
|
||||
connexion.sendmail("ca@crans.org",to,data.encode('iso-8859-15'))
|
||||
connexion.sendmail("ca@crans.org",to,data.encode('utf-8'))
|
||||
|
||||
def __usage(message=None):
|
||||
""" Comment ça marche ? """
|
||||
""" Comment ça marche ? """
|
||||
cprint(__doc__ % { 'prog': sys.argv[0] })
|
||||
if message:
|
||||
cprint(message)
|
||||
|
@ -161,7 +161,7 @@ if __name__ == '__main__' :
|
|||
elif sys.argv[1] == 'liste':
|
||||
if len(sys.argv) != 2:
|
||||
__usage(u'Mauvaise utilisation de liste')
|
||||
print "Liste des membres actifs n'ayant pas signé la charte :"
|
||||
print "Liste des membres actifs n'ayant pas signé la charte :"
|
||||
for adh in liste_charte_nok():
|
||||
print adh.Nom()
|
||||
elif sys.argv[1] == 'modif':
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue