From 342a3b5ffddec27b73ba27ceda2358ff84dc7831 Mon Sep 17 00:00:00 2001 From: Daniel STAN Date: Sun, 26 Oct 2014 18:37:39 +0100 Subject: [PATCH] fin_connexion: mail calendrier mois courant --- gestion/mail/fin_connexion.py | 25 ++++++++++++------ .../mail/template/fin_connexion_stats/From/fr | 1 + .../mail/template/fin_connexion_stats/README | 1 + .../template/fin_connexion_stats/Subject/fr | 1 + .../mail/template/fin_connexion_stats/To/fr | 1 + .../template/fin_connexion_stats/X-Mailer/fr | 1 + .../template/fin_connexion_stats/body/fr.md | 26 +++++++++++++++++++ 7 files changed, 48 insertions(+), 8 deletions(-) create mode 100644 gestion/mail/template/fin_connexion_stats/From/fr create mode 100644 gestion/mail/template/fin_connexion_stats/README create mode 100644 gestion/mail/template/fin_connexion_stats/Subject/fr create mode 100644 gestion/mail/template/fin_connexion_stats/To/fr create mode 100644 gestion/mail/template/fin_connexion_stats/X-Mailer/fr create mode 100644 gestion/mail/template/fin_connexion_stats/body/fr.md diff --git a/gestion/mail/fin_connexion.py b/gestion/mail/fin_connexion.py index 0313755f..e0714bbd 100755 --- a/gestion/mail/fin_connexion.py +++ b/gestion/mail/fin_connexion.py @@ -128,7 +128,7 @@ def prev_calendar(c, date): first = datetime.datetime(day=1, month=month, year=year, tzinfo=pytz.UTC) last = first.replace(month=1+month%12, year=year+int(month==12)) - disconnect = brief(c, first, last) + disconnect = select(c, first, last) by_day = {x: 0 for x in xrange(1,32)} for adh in disconnect: date = compute_fin_connexion(adh) @@ -150,6 +150,7 @@ def prev_calendar(c, date): def ascii_calendar(calendar): + """Affiche le calendrier en ascii""" spaces = 3 def pretty_day(x): if x is None: @@ -169,6 +170,18 @@ def batch_warn(liste): for adh in liste: warn(mail_conn, adh) +def prev_mail(calendar): + """Envoi d'un mail récapitulatif pour ``calendar``""" + data = { + 'calendar': list(calendar), + } + From = 'respbats@crans.org' + To = From + data.update({'To': To, 'From': From}) + mailtxt = mail_module.generate('fin_connexion_stats', data) + with mail_module.ServerConnection() as mail_conn: + mail_conn.sendmail(From, [To], mailtxt.as_string()) + if __name__ == '__main__': db = lc_ldap_readonly() @@ -178,7 +191,7 @@ if __name__ == '__main__': for arg in args: # Applique un delta, si spécifié if arg.startswith('+'): - now += int(arg[1:])*DAY + today += int(arg[1:])*DAY print "Nous serons le %s" % today if '--preventif' in args: @@ -198,11 +211,7 @@ if __name__ == '__main__': batch_warn(liste) if '--prev' in args: ascii_calendar(prev_calendar(db, today)) - -# TODO -# * Mensuel: avertit les cableurs des connexions à expiration dans le mois -# prochain -# select(c, first_day, last_day+DAY) -# prev(c, today+28*DAY) + if '--prev-mail' in args: + prev_mail(prev_calendar(db, today)) diff --git a/gestion/mail/template/fin_connexion_stats/From/fr b/gestion/mail/template/fin_connexion_stats/From/fr new file mode 100644 index 00000000..498ccaff --- /dev/null +++ b/gestion/mail/template/fin_connexion_stats/From/fr @@ -0,0 +1 @@ +Script d'avertissement diff --git a/gestion/mail/template/fin_connexion_stats/README b/gestion/mail/template/fin_connexion_stats/README new file mode 100644 index 00000000..0b1d48ac --- /dev/null +++ b/gestion/mail/template/fin_connexion_stats/README @@ -0,0 +1 @@ +Mail envoyé au début du mois pour résumer les effectifs nécessaires diff --git a/gestion/mail/template/fin_connexion_stats/Subject/fr b/gestion/mail/template/fin_connexion_stats/Subject/fr new file mode 100644 index 00000000..53116ece --- /dev/null +++ b/gestion/mail/template/fin_connexion_stats/Subject/fr @@ -0,0 +1 @@ +Prévision des prochaines fins de connexion diff --git a/gestion/mail/template/fin_connexion_stats/To/fr b/gestion/mail/template/fin_connexion_stats/To/fr new file mode 100644 index 00000000..38476730 --- /dev/null +++ b/gestion/mail/template/fin_connexion_stats/To/fr @@ -0,0 +1 @@ +{{To}} diff --git a/gestion/mail/template/fin_connexion_stats/X-Mailer/fr b/gestion/mail/template/fin_connexion_stats/X-Mailer/fr new file mode 100644 index 00000000..f5d9c869 --- /dev/null +++ b/gestion/mail/template/fin_connexion_stats/X-Mailer/fr @@ -0,0 +1 @@ +{{ mailer }} diff --git a/gestion/mail/template/fin_connexion_stats/body/fr.md b/gestion/mail/template/fin_connexion_stats/body/fr.md new file mode 100644 index 00000000..83c819df --- /dev/null +++ b/gestion/mail/template/fin_connexion_stats/body/fr.md @@ -0,0 +1,26 @@ +Calendrier des déconnexions ce mois-ci: + + +{%- for line in calendar %} + + {%- for item in line %} + {%- if item == none %} + + {%- endfor %} + +{%- endfor %} +
+ {%- elif item is not number %} + + {{ item }} + {%- elif item == 0 %} + + {%- else %} + + {{ item }} + {%- endif %} +
+ +-- + +Les membres actifs de l'association