diff --git a/gestion/gen_confs/generate.py b/gestion/gen_confs/generate.py index 898863ba..9e725eb0 100755 --- a/gestion/gen_confs/generate.py +++ b/gestion/gen_confs/generate.py @@ -152,6 +152,10 @@ class rouge(base_reconfigure): from supervison import mail self._do(mail(trucs)) + def mail_solde(self, modifs): + from gen_confs.supervison import mail_solde + self._do(mail_solde(modifs)) + def switch(self, chambres): from gen_confs.switchs import switch self._do(switch(chambres)) diff --git a/gestion/gen_confs/supervison.py b/gestion/gen_confs/supervison.py index 1c704f57..0016bb9a 100755 --- a/gestion/gen_confs/supervison.py +++ b/gestion/gen_confs/supervison.py @@ -75,3 +75,41 @@ Subject: %(Subject)s 'Text' : texte.encode('iso8859-15') } ) conn.quit() print OK + +class mail_solde: + """ + Envoie un mail au Tresorier pour les modifications de solde""" + + From = 'stasi@crans.org' + To = [ 'tresorier@crans.org', 'bos@crans.org' ] + Subject = "Modification de solde" + + mail_template = """From: %(From)s +To: %(To)s +Subject: %(Subject)s + +%(Text)s""" + + # Avec les caractères d'échappement qui vont bien pour la couleur ? + couleur = False + + def __init__(self,modifs) : + self.modifs = modifs + + def reconfigure(self) : + """ Envoi le mail """ + cprint(u'Mail de notification de modifications du solde', 'gras') + texte = '' + for modif in self.modifs: + texte = texte + modif + '\n' + + anim('\tEnvoi mail') + + conn=smtplib.SMTP(smtpserv) + conn.sendmail(self.From, self.To , \ + self.mail_template % { 'From' : self.From, + 'To' : ','.join(self.To), + 'Subject' : self.Subject, + 'Text' : texte.encode('iso8859-15') } ) + conn.quit() + print OK diff --git a/gestion/ldap_crans.py b/gestion/ldap_crans.py index 15a3bc33..6ebec997 100755 --- a/gestion/ldap_crans.py +++ b/gestion/ldap_crans.py @@ -16,6 +16,7 @@ import ldap, ldap.modlist, ldap_passwd import config, annuaires, iptools, chgpass, user_tests, cPickle, config_mail from chgpass import chgpass from affich_tools import coul, prompt, cprint +from email_tools import send_email from syslog import * date_format = '%d/%m/%Y %H:%M' @@ -1044,7 +1045,8 @@ class BaseClasseCrans(CransLdap): modif['solde'] = "debit %s Euros" % str(diff) else: modif['solde'] = "credit %s Euros" % str(-diff) - + self.services_to_restart('mail_solde', ['%s : %s pour %s [%s]' %(script_utilisateur,str(diff),self._data['uid'][0],self.modifs['solde'])]) + # Formate les entrées de l'historique de la forme champ (ancien -> nouveau) # On suppose que le champ apparaît forcément dans l'enregistrement for champ in ['chbre', 'nom', 'prenom', 'mail', 'tel', @@ -1714,7 +1716,7 @@ class BaseProprietaire(BaseClasseCrans): if 'droits' in self.modifs: self.services_to_restart('droits') self.services_to_restart('mail_modif', ['uid=%s' % self._data['uid'][0]]) - + # Remise à zero self.modifs = {}