Skip to content

Commit 424617b

Browse files
committed
Revert "Allow assigning of any user as delegate"
This reverts commit e0fd7cd. This change does not scale with a larger number of lists, and clearly needs more work. Revert until such a time as this is carried out. Signed-off-by: Stephen Finucane <[email protected]> (cherry picked from commit 198139e)
1 parent 6703cb5 commit 424617b

File tree

1 file changed

+12
-4
lines changed

1 file changed

+12
-4
lines changed

patchwork/forms.py

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121

2222
from django.contrib.auth.models import User
2323
from django import forms
24+
from django.db.models import Q
2425

2526
from patchwork.models import Patch, State, Bundle, UserProfile
2627

@@ -98,8 +99,13 @@ class DeleteBundleForm(forms.Form):
9899

99100
class DelegateField(forms.ModelChoiceField):
100101

101-
def __init__(self, *args, **kwargs):
102-
queryset = User.objects
102+
def __init__(self, project, instance=None, *args, **kwargs):
103+
q = Q(profile__in=UserProfile.objects
104+
.filter(maintainer_projects=project)
105+
.values('pk').query)
106+
if instance and instance.delegate:
107+
q = q | Q(username=instance.delegate)
108+
queryset = User.objects.complex_filter(q)
103109
super(DelegateField, self).__init__(queryset, *args, **kwargs)
104110

105111

@@ -111,7 +117,8 @@ def __init__(self, instance=None, project=None, *args, **kwargs):
111117
if not project:
112118
raise Exception("meep")
113119
super(PatchForm, self).__init__(instance=instance, *args, **kwargs)
114-
self.fields['delegate'] = DelegateField(required=False)
120+
self.fields['delegate'] = DelegateField(project, instance,
121+
required=False)
115122

116123
class Meta:
117124
model = Patch
@@ -218,7 +225,8 @@ class MultiplePatchForm(forms.Form):
218225

219226
def __init__(self, project, *args, **kwargs):
220227
super(MultiplePatchForm, self).__init__(*args, **kwargs)
221-
self.fields['delegate'] = OptionalDelegateField(required=False)
228+
self.fields['delegate'] = OptionalDelegateField(project=project,
229+
required=False)
222230

223231
def save(self, instance, commit=True):
224232
opts = instance.__class__._meta

0 commit comments

Comments
 (0)