summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDan McGee <dan@archlinux.org>2014-12-02 14:53:38 -0600
committerDan McGee <dan@archlinux.org>2014-12-02 14:57:03 -0600
commitdca00e7aabc057d0069606fec6261cc571ddcb71 (patch)
treed3c32e29fa9168af26d65d9fb8d1a352bbc65c85
parente12f88f1d6ab15dd4fbd828f4c2689657bcfa5a2 (diff)
downloadarchweb-dca00e7aabc057d0069606fec6261cc571ddcb71.tar.gz
archweb-dca00e7aabc057d0069606fec6261cc571ddcb71.zip
Filter maintainer list on packages page by allowed repos
We do this elsewhere on the master keys page, so do the same thing here. Noticed-by: Johannes Löthberg <johannes@kyriasis.com> Signed-off-by: Dan McGee <dan@archlinux.org>
-rw-r--r--packages/views/search.py17
1 files changed, 10 insertions, 7 deletions
diff --git a/packages/views/search.py b/packages/views/search.py
index 0b776d79..e4cd0423 100644
--- a/packages/views/search.py
+++ b/packages/views/search.py
@@ -6,6 +6,7 @@ from django.db.models import Q
from django.http import HttpResponse
from django.views.generic import ListView
+from devel.models import UserProfile
from main.models import Package, Arch, Repo
from main.utils import empty_response, make_choice
from ..models import PackageRelation
@@ -36,14 +37,16 @@ class PackageSearchForm(forms.Form):
self.fields['arch'].choices = make_choice(
[arch.name for arch in Arch.objects.all()])
self.fields['q'].widget.attrs.update({"size": "30"})
- maints = User.objects.filter(is_active=True).order_by(
+
+ profile_ids = UserProfile.allowed_repos.through.objects.values('userprofile_id')
+ people = User.objects.filter(
+ is_active=True, userprofile__id__in=profile_ids).order_by(
'first_name', 'last_name')
- self.fields['maintainer'].choices = \
- [('', 'All'), ('orphan', 'Orphan')] + \
- [(m.username, m.get_full_name()) for m in maints]
- self.fields['packager'].choices = \
- [('', 'All'), ('unknown', 'Unknown')] + \
- [(m.username, m.get_full_name()) for m in maints]
+ people = [('', 'All'), ('orphan', 'Orphan')] + \
+ [(p.username, p.get_full_name()) for p in people]
+
+ self.fields['maintainer'].choices = people
+ self.fields['packager'].choices = people
def exact_matches(self):
# only do exact match search if 'q' is sole parameter