From 4506dd4dc09a1255e68043b2c13afff7b3b72fce Mon Sep 17 00:00:00 2001
From: Yohann D'ANELLO <yohann.danello@gmail.com>
Date: Mon, 7 Sep 2020 11:02:10 +0200
Subject: [PATCH] Plain text mode in reports

---
 management/commands/send_reports.py | 22 +++++++++++++++++-----
 1 file changed, 17 insertions(+), 5 deletions(-)

diff --git a/management/commands/send_reports.py b/management/commands/send_reports.py
index fac74f6..c1dae04 100644
--- a/management/commands/send_reports.py
+++ b/management/commands/send_reports.py
@@ -14,12 +14,19 @@ from note.tables import HistoryTable
 
 
 class Command(BaseCommand):
+    def add_arguments(self, parser):
+        parser.add_argument('--notes', '-n', type=int, nargs='+', help='Select note ids')
+        parser.add_argument('--debug', '-d', action='store_true', help='Debug mode, print mails in stdout')
+
     def handle(self, *args, **options):
         activate('fr')
-        notes = NoteUser.objects.filter(
-            user__memberships__date_end__gte=timezone.now(),
-            user__profile__report_frequency__gt=0,
-        ).distinct().all()
+        if "notes" in options:
+            notes = NoteUser.objects.filter(pk__in=options["notes"]).all()
+        else:
+            notes = NoteUser.objects.filter(
+                user__memberships__date_end__gte=timezone.now(),
+                user__profile__report_frequency__gt=0,
+            ).distinct().all()
         for note in notes:
             now = timezone.now()
             last_report = note.user.profile.last_report
@@ -41,11 +48,16 @@ class Command(BaseCommand):
             context = dict(
                 user=note.user,
                 table=table,
+                last_transactions=last_transactions,
                 incoming=incoming,
                 outcoming=outcoming,
                 diff=incoming - outcoming,
                 now=now,
                 last_report=last_report,
             )
+            plain = render_to_string("note/mails/weekly_report.txt", context)
             html = render_to_string("note/mails/weekly_report.html", context)
-            note.user.email_user("[Note Kfet] Rapport de la Note Kfet", html, html_message=html)
+            if options["debug"]:
+                self.stdout.write(plain)
+            else:
+                note.user.email_user("[Note Kfet] Rapport de la Note Kfet", plain, html_message=html)
-- 
GitLab