From 70870cd3a42dc8a6c8ed0049b45e2db72b549f4a Mon Sep 17 00:00:00 2001
From: Fredrik Jonsson <frjo@xdeb.org>
Date: Mon, 23 Mar 2020 15:41:17 +0100
Subject: [PATCH] Add staff, reviewer and applicant group name to user name
 display on submission comments to start with.

---
 hypha/apply/activity/templatetags/activity_tags.py | 2 +-
 hypha/apply/funds/tests/test_models.py             | 2 +-
 hypha/apply/users/models.py                        | 6 ++++++
 3 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/hypha/apply/activity/templatetags/activity_tags.py b/hypha/apply/activity/templatetags/activity_tags.py
index 0e6cb2384..db7c6d4f2 100644
--- a/hypha/apply/activity/templatetags/activity_tags.py
+++ b/hypha/apply/activity/templatetags/activity_tags.py
@@ -15,7 +15,7 @@ register = template.Library()
 def display_author(activity, user):
     if isinstance(activity.related_object, Review) and activity.source.user == user:
         return 'Reviewer'
-    return activity.user
+    return activity.user.get_full_name_with_group()
 
 
 @register.filter
diff --git a/hypha/apply/funds/tests/test_models.py b/hypha/apply/funds/tests/test_models.py
index 9d903d7ff..4d9116337 100644
--- a/hypha/apply/funds/tests/test_models.py
+++ b/hypha/apply/funds/tests/test_models.py
@@ -247,7 +247,7 @@ class TestFormSubmission(TestCase):
         # Lead + applicant
         self.assertEqual(self.User.objects.count(), 2)
         new_user = self.User.objects.get(email=self.email)
-        self.assertEqual(new_user.get_full_name(), self.name)
+        self.assertEqual(new_user.full_name, self.name)
 
         self.assertEqual(ApplicationSubmission.objects.count(), 1)
         self.assertEqual(ApplicationSubmission.objects.first().user, new_user)
diff --git a/hypha/apply/users/models.py b/hypha/apply/users/models.py
index a00f87cdc..97b8afb9d 100644
--- a/hypha/apply/users/models.py
+++ b/hypha/apply/users/models.py
@@ -115,6 +115,12 @@ class User(AbstractUser):
     def get_short_name(self):
         return self.email
 
+    def get_full_name_with_group(self):
+        is_apply_staff = f' ({STAFF_GROUP_NAME})' if self.is_apply_staff else ''
+        is_reviewer = f' ({REVIEWER_GROUP_NAME})' if self.is_reviewer else ''
+        is_applicant = f' ({APPLICANT_GROUP_NAME})' if self.is_applicant else ''
+        return f'{self.full_name.strip()}{is_apply_staff}{is_reviewer}{is_applicant}'
+
     @cached_property
     def roles(self):
         return list(self.groups.values_list('name', flat=True))
-- 
GitLab