Skip to content

Commit 6de3084

Browse files
functionzzmathjazz
andauthored
Fix incorrect display of recipient count when selecting user roles (#3760)
Co-authored-by: Matjaž Horvat <matjaz.horvat@gmail.com>
1 parent 900be38 commit 6de3084

File tree

1 file changed

+10
-5
lines changed

1 file changed

+10
-5
lines changed

pontoon/messaging/views.py

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
from django.contrib.auth.models import User
1010
from django.core.exceptions import PermissionDenied
1111
from django.db import transaction
12-
from django.db.models import Count, F
12+
from django.db.models import Count, F, Q
1313
from django.http import JsonResponse
1414
from django.shortcuts import get_object_or_404, render
1515
from django.utils import timezone
@@ -104,8 +104,12 @@ def get_recipients(form):
104104
- Translators of selected Locales
105105
- Email/Notification opt-in status
106106
"""
107-
locale_ids = sorted(split_ints(form.cleaned_data.get("locales")))
108-
project_ids = form.cleaned_data.get("projects")
107+
locale_ids = Locale.objects.available().values_list("id", flat=True)
108+
project_ids = Project.objects.available().values_list("id", flat=True)
109+
if form.cleaned_data.get("locale_toggle"):
110+
locale_ids = sorted(split_ints(form.cleaned_data.get("locales")))
111+
if form.cleaned_data.get("project_toggle"):
112+
project_ids = form.cleaned_data.get("projects")
109113

110114
locales = Locale.objects.filter(pk__in=locale_ids)
111115
manager_ids = (
@@ -120,9 +124,10 @@ def get_recipients(form):
120124
)
121125

122126
translations = Translation.objects.all()
123-
124127
if form.cleaned_data.get("contributors"):
125-
recipients = User.objects.exclude(pk=-1)
128+
recipients = User.objects.exclude(
129+
Q(pk__in=manager_ids) | Q(pk__in=translator_ids) | Q(pk=-1)
130+
)
126131

127132
if form.cleaned_data.get("managers"):
128133
recipients = recipients | User.objects.filter(pk__in=manager_ids)

0 commit comments

Comments
 (0)