Skip to content
Snippets Groups Projects
Unverified Commit 46bee235 authored by Fredrik Jonsson's avatar Fredrik Jonsson Committed by GitHub
Browse files

Use UserQuerySet in get_compliance_email() to exclude inactive users. (#3373)

Fixes #3372
parent 28b7ae30
No related branches found
No related tags found
2 merge requests!18Fix application form submit button remaining disabled (#3483),!13Merge in v4.1.1
...@@ -61,7 +61,7 @@ def get_compliance_email(target_user_gps=None): ...@@ -61,7 +61,7 @@ def get_compliance_email(target_user_gps=None):
target_user_emails.extend([project_settings.contracting_gp_email]) target_user_emails.extend([project_settings.contracting_gp_email])
else: else:
contracting_users_email = [] contracting_users_email = []
for user in User.objects.filter(groups__name=CONTRACTING_GROUP_NAME): for user in User.objects.contracting():
contracting_users_email.append(user.email) contracting_users_email.append(user.email)
target_user_emails.extend(contracting_users_email) target_user_emails.extend(contracting_users_email)
if FINANCE_GROUP_NAME in target_user_gps: if FINANCE_GROUP_NAME in target_user_gps:
...@@ -69,7 +69,7 @@ def get_compliance_email(target_user_gps=None): ...@@ -69,7 +69,7 @@ def get_compliance_email(target_user_gps=None):
target_user_emails.extend([project_settings.finance_gp_email]) target_user_emails.extend([project_settings.finance_gp_email])
else: else:
finance_users_email = [] finance_users_email = []
for user in User.objects.filter(groups__name=FINANCE_GROUP_NAME): for user in User.objects.finances():
finance_users_email.append(user.email) finance_users_email.append(user.email)
target_user_emails.extend(finance_users_email) target_user_emails.extend(finance_users_email)
if STAFF_GROUP_NAME in target_user_gps: if STAFF_GROUP_NAME in target_user_gps:
...@@ -77,7 +77,7 @@ def get_compliance_email(target_user_gps=None): ...@@ -77,7 +77,7 @@ def get_compliance_email(target_user_gps=None):
target_user_emails.extend([project_settings.staff_gp_email]) target_user_emails.extend([project_settings.staff_gp_email])
else: else:
staff_users_email = [] staff_users_email = []
for user in User.objects.filter(groups__name=STAFF_GROUP_NAME): for user in User.objects.staff():
staff_users_email.append(user.email) staff_users_email.append(user.email)
target_user_emails.extend(staff_users_email) target_user_emails.extend(staff_users_email)
return target_user_emails return target_user_emails
...@@ -3,7 +3,6 @@ from django.contrib.auth.hashers import make_password ...@@ -3,7 +3,6 @@ from django.contrib.auth.hashers import make_password
from django.contrib.auth.models import AbstractUser, BaseUserManager, Group from django.contrib.auth.models import AbstractUser, BaseUserManager, Group
from django.core import exceptions from django.core import exceptions
from django.db import IntegrityError, models from django.db import IntegrityError, models
from django.db.models import Q
from django.db.models.constants import LOOKUP_SEP from django.db.models.constants import LOOKUP_SEP
from django.db.models.utils import resolve_callables from django.db.models.utils import resolve_callables
from django.urls import reverse from django.urls import reverse
...@@ -29,9 +28,7 @@ from .utils import get_user_by_email, is_user_already_registered, send_activatio ...@@ -29,9 +28,7 @@ from .utils import get_user_by_email, is_user_already_registered, send_activatio
class UserQuerySet(models.QuerySet): class UserQuerySet(models.QuerySet):
def staff(self): def staff(self):
return self.filter( return self.filter(groups__name=STAFF_GROUP_NAME, is_active=True)
Q(groups__name=STAFF_GROUP_NAME, is_active=True) | Q(is_superuser=True, is_active=True)
).distinct()
def staff_admin(self): def staff_admin(self):
return self.filter(groups__name=TEAMADMIN_GROUP_NAME, is_active=True) return self.filter(groups__name=TEAMADMIN_GROUP_NAME, is_active=True)
...@@ -51,6 +48,9 @@ class UserQuerySet(models.QuerySet): ...@@ -51,6 +48,9 @@ class UserQuerySet(models.QuerySet):
def approvers(self): def approvers(self):
return self.filter(groups__name=APPROVER_GROUP_NAME, is_active=True) return self.filter(groups__name=APPROVER_GROUP_NAME, is_active=True)
def finances(self):
return self.filter(groups__name=FINANCE_GROUP_NAME, is_active=True)
def finances_level_1(self): def finances_level_1(self):
return self.filter(groups__name=FINANCE_GROUP_NAME, is_active=True).exclude(groups__name=APPROVER_GROUP_NAME) return self.filter(groups__name=FINANCE_GROUP_NAME, is_active=True).exclude(groups__name=APPROVER_GROUP_NAME)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment