Skip to content

Commit 566227f

Browse files
committed
Fix confirmation for all flagged packages
Signed-off-by: Lars Rustand <[email protected]>
1 parent 88680f0 commit 566227f

File tree

1 file changed

+24
-22
lines changed

1 file changed

+24
-22
lines changed

packages/views/flag.py

Lines changed: 24 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@
1515
from ..models import FlagRequest
1616
from main.models import Package
1717

18-
1918
class FlagForm(forms.Form):
2019
email = forms.EmailField(label='E-mail Address')
2120
message = forms.CharField(label='Message To Developer',
@@ -48,40 +47,46 @@ def clean_message(self):
4847
def flaghelp(request):
4948
return render(request, 'packages/flaghelp.html')
5049

51-
52-
@never_cache
53-
def flag(request, name, repo, arch):
54-
pkg = get_object_or_404(Package.objects.normal(),
55-
pkgname=name, repo__name__iexact=repo, arch__name=arch)
56-
if pkg.flag_date is not None:
57-
# already flagged. do nothing.
58-
return render(request, 'packages/flagged.html', {'pkg': pkg})
59-
50+
def find_same_pkgbase(pkg):
6051
# Find packages based on the same packagebase
61-
pkg_filter = Q(pkgbase=pkg.pkgbase, flag_date__isnull=True,
52+
pkg_filter = Q(pkgbase=pkg.pkgbase,
6253
repo__testing=pkg.repo.testing,
6354
repo__staging=pkg.repo.staging)
6455

65-
if "lib32-" in name:
56+
if "lib32-" in pkg.pkgname:
6657
# Find normal version of lib32 packages
6758
non_lib32_pkg = get_object_or_404(Package.objects.normal(),
68-
pkgname=name.replace("lib32-",""))
59+
pkgname=pkg.pkgname.replace("lib32-",""))
6960
pkg_filter = pkg_filter | Q(pkgbase=non_lib32_pkg.pkgbase,
70-
flag_date__isnull=True)
61+
repo__testing=pkg.repo.testing,
62+
repo__staging=pkg.repo.staging)
7163
else:
7264
# Find lib32 version of normal packages
7365
try:
7466
lib32_pkg = get_object_or_404(Package.objects.normal(),
7567
pkgname="lib32-"+pkg.pkgbase)
7668
pkg_filter = pkg_filter | Q(pkgbase=lib32_pkg.pkgbase,
77-
flag_date__isnull=True)
69+
repo__testing=pkg.repo.testing,
70+
repo__staging=pkg.repo.staging)
7871
except Http404:
7972
pass # Do not raise an error when there is no lib32 version
8073

81-
82-
8374
pkgs = Package.objects.normal().filter(pkg_filter).order_by(
8475
'pkgname', 'repo__name', 'arch__name')
76+
77+
return pkgs
78+
79+
@never_cache
80+
def flag(request, name, repo, arch):
81+
pkg = get_object_or_404(Package.objects.normal(),
82+
pkgname=name, repo__name__iexact=repo, arch__name=arch)
83+
if pkg.flag_date is not None:
84+
# already flagged. do nothing.
85+
return render(request, 'packages/flagged.html', {'pkg': pkg})
86+
87+
pkgs = find_same_pkgbase(pkg).filter(
88+
flag_date__isnull=True)
89+
8590
authenticated = request.user.is_authenticated
8691

8792
if request.POST:
@@ -166,11 +171,8 @@ def perform_updates():
166171
def flag_confirmed(request, name, repo, arch):
167172
pkg = get_object_or_404(Package,
168173
pkgname=name, repo__name__iexact=repo, arch__name=arch)
169-
pkgs = Package.objects.normal().filter(
170-
pkgbase=pkg.pkgbase, flag_date=pkg.flag_date,
171-
repo__testing=pkg.repo.testing,
172-
repo__staging=pkg.repo.staging).order_by(
173-
'pkgname', 'repo__name', 'arch__name')
174+
pkgs = find_same_pkgbase(pkg).filter(
175+
flag_date=pkg.flag_date)
174176

175177
context = {'package': pkg, 'packages': pkgs}
176178

0 commit comments

Comments
 (0)