From 8604e09618e88d3c4b56123086540cb472c039a1 Mon Sep 17 00:00:00 2001
From: Carlos Vega <carlos.vega@.uni.lu>
Date: Mon, 24 Sep 2018 10:26:09 +0200
Subject: [PATCH] Issue #239 Removed get_details method and changed
 extend_context method to use Worker.get_by_user. Enhancement: now the
 superuser also shows a name in the upper right corner or its username if no
 full_name is available.

---
 smash/web/models/worker.py  | 13 -------------
 smash/web/views/__init__.py |  9 ++++++++-
 2 files changed, 8 insertions(+), 14 deletions(-)

diff --git a/smash/web/models/worker.py b/smash/web/models/worker.py
index d77c4919..86e2304d 100644
--- a/smash/web/models/worker.py
+++ b/smash/web/models/worker.py
@@ -193,19 +193,6 @@ class Worker(models.Model):
         return Worker.objects.filter(roles__study_id=study_id,
                                      roles__role__in=roles_by_worker_type(worker_type))
 
-    @staticmethod
-    def get_details(the_user):
-        persons = Worker.objects.filter(user=the_user)
-
-        if len(persons) == 0:
-            return the_user.get_full_name(), '<No worker information>'
-        else:
-            person = persons[0]
-            role = "N/A"
-            if person.roles.filter(study=GLOBAL_STUDY_ID).count() > 0:
-                role = person.role
-            return unicode(person), role
-
     def __str__(self):
         if self.name != '':
             if self.first_name == '':
diff --git a/smash/web/views/__init__.py b/smash/web/views/__init__.py
index ea4b446f..f6bf65ef 100644
--- a/smash/web/views/__init__.py
+++ b/smash/web/views/__init__.py
@@ -41,7 +41,14 @@ def wrap_response(request, template, params):
 
 
 def extend_context(params, request):
-    person, role = Worker.get_details(request.user)
+    person = Worker.get_by_user(request.user) # None if AnonymousUser or no Worker associated
+    if person is not None:
+        role = person.role
+        person = unicode(person)
+    else:
+        #use full name if available, username otherwise
+        person = request.user.get_full_name() if len(request.user.get_full_name()) > 1 else request.user.get_username()
+        role   = '<No worker information>'
     notifications = get_notifications(request.user)
     final_params = params.copy()
     final_params.update({
-- 
GitLab