From 49b2a169e5356b3ce05987ba7b8f342a4f47c0c9 Mon Sep 17 00:00:00 2001
From: "J.-S. Caux" <J.S.Caux@uva.nl>
Date: Tue, 8 Jan 2019 09:39:05 +0100
Subject: [PATCH] Add guest Fellows to EICRecommendation admin

---
 submissions/admin.py | 21 +++++++++++++--------
 submissions/forms.py |  2 +-
 2 files changed, 14 insertions(+), 9 deletions(-)

diff --git a/submissions/admin.py b/submissions/admin.py
index aa29d66a9..675ff958b 100644
--- a/submissions/admin.py
+++ b/submissions/admin.py
@@ -3,6 +3,7 @@ __license__ = "AGPL v3"
 
 
 from django.contrib import admin
+from django.db.models import Q
 from django import forms
 
 from guardian.admin import GuardedModelAdmin
@@ -207,23 +208,27 @@ class EICRecommendationAdminForm(forms.ModelForm):
     eligible_to_vote = forms.ModelMultipleChoiceField(
         required=False,
         queryset=Contributor.objects.filter(
-            user__groups__name__in=['Editorial College'],
-        ).order_by('user__last_name'))
+            Q(user__groups__name__in=['Editorial College']) |
+            Q(fellowships__isnull=False),
+        ).distinct().order_by('user__last_name'))
     voted_for = forms.ModelMultipleChoiceField(
         required=False,
         queryset=Contributor.objects.filter(
-            user__groups__name__in=['Editorial College'],
-        ).order_by('user__last_name'))
+            Q(user__groups__name__in=['Editorial College']) |
+            Q(fellowships__isnull=False),
+        ).distinct().order_by('user__last_name'))
     voted_against = forms.ModelMultipleChoiceField(
         required=False,
         queryset=Contributor.objects.filter(
-            user__groups__name__in=['Editorial College'],
-        ).order_by('user__last_name'))
+            Q(user__groups__name__in=['Editorial College']) |
+            Q(fellowships__isnull=False),
+        ).distinct().order_by('user__last_name'))
     voted_abstain = forms.ModelMultipleChoiceField(
         required=False,
         queryset=Contributor.objects.filter(
-            user__groups__name__in=['Editorial College'],
-        ).order_by('user__last_name'))
+            Q(user__groups__name__in=['Editorial College']) |
+            Q(fellowships__isnull=False),
+        ).distinct().order_by('user__last_name'))
 
     class Meta:
         model = EICRecommendation
diff --git a/submissions/forms.py b/submissions/forms.py
index 48c05b872..d243bf406 100644
--- a/submissions/forms.py
+++ b/submissions/forms.py
@@ -949,7 +949,7 @@ class VotingEligibilityForm(forms.ModelForm):
         fields = ()
 
     def __init__(self, *args, **kwargs):
-        """Get queryset of Contributors eligibile for voting."""
+        """Get queryset of Contributors eligible for voting."""
         super().__init__(*args, **kwargs)
         self.fields['eligible_fellows'].queryset = Contributor.objects.filter(
             fellowships__pool=self.instance.submission).filter(
-- 
GitLab