From c3dc4e2ab4a8818b93d8159f4ccab7d7a8be629c Mon Sep 17 00:00:00 2001
From: Eliot Berriot <contact@eliotberriot.com>
Date: Fri, 13 Sep 2019 06:13:53 +0200
Subject: [PATCH] Review fixes for report notifications not included in !880

---
 api/funkwhale_api/moderation/tasks.py | 12 +++++-------
 api/tests/moderation/test_tasks.py    |  3 +++
 2 files changed, 8 insertions(+), 7 deletions(-)

diff --git a/api/funkwhale_api/moderation/tasks.py b/api/funkwhale_api/moderation/tasks.py
index 2942e3d03..0d0e97052 100644
--- a/api/funkwhale_api/moderation/tasks.py
+++ b/api/funkwhale_api/moderation/tasks.py
@@ -53,10 +53,11 @@ def send_new_report_email_to_moderators(report):
         # we fallback on superusers
         moderators = users_models.User.objects.filter(is_superuser=True)
     moderators = sorted(moderators, key=lambda m: m.pk)
+    submitter_repr = (
+        report.submitter.full_username if report.submitter else report.submitter_email
+    )
     subject = "[{} moderation - {}] New report from {}".format(
-        settings.FUNKWHALE_HOSTNAME,
-        report.get_type_display(),
-        report.submitter.full_username if report.submitter else report.submitter_email,
+        settings.FUNKWHALE_HOSTNAME, report.get_type_display(), submitter_repr
     )
     detail_url = federation_utils.full_url(
         "/manage/moderation/reports/{}".format(report.uuid)
@@ -67,10 +68,7 @@ def send_new_report_email_to_moderators(report):
     unresolved_reports = models.Report.objects.filter(is_handled=False).count()
     body = [
         '{} just submitted a report in the "{}" category.'.format(
-            report.submitter.full_username
-            if report.submitter
-            else report.submitter_email,
-            report.get_type_display(),
+            submitter_repr, report.get_type_display()
         ),
         "",
         "Reported object: {} - {}".format(
diff --git a/api/tests/moderation/test_tasks.py b/api/tests/moderation/test_tasks.py
index 18e031fd8..a4f287799 100644
--- a/api/tests/moderation/test_tasks.py
+++ b/api/tests/moderation/test_tasks.py
@@ -17,6 +17,8 @@ def test_report_created_signal_sends_email_to_mods(factories, mailoutbox, settin
     mod2 = factories["users.User"](permission_moderation=True)
     # inactive, so no email
     factories["users.User"](permission_moderation=True, is_active=False)
+    # no moderation permission, so no email
+    factories["users.User"]()
 
     report = factories["moderation.Report"]()
 
@@ -28,6 +30,7 @@ def test_report_created_signal_sends_email_to_mods(factories, mailoutbox, settin
     unresolved_reports_url = federation_utils.full_url(
         "/manage/moderation/reports?q=resolved:no"
     )
+    assert len(mailoutbox) == 2
     for i, mod in enumerate([mod1, mod2]):
         m = mailoutbox[i]
         assert m.subject == "[{} moderation - {}] New report from {}".format(
-- 
GitLab