|
15 | 15 | from ..models import FlagRequest
|
16 | 16 | from main.models import Package
|
17 | 17 |
|
18 |
| - |
19 | 18 | class FlagForm(forms.Form):
|
20 | 19 | email = forms.EmailField(label='E-mail Address')
|
21 | 20 | message = forms.CharField(label='Message To Developer',
|
@@ -48,40 +47,46 @@ def clean_message(self):
|
48 | 47 | def flaghelp(request):
|
49 | 48 | return render(request, 'packages/flaghelp.html')
|
50 | 49 |
|
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): |
60 | 51 | # 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, |
62 | 53 | repo__testing=pkg.repo.testing,
|
63 | 54 | repo__staging=pkg.repo.staging)
|
64 | 55 |
|
65 |
| - if "lib32-" in name: |
| 56 | + if "lib32-" in pkg.pkgname: |
66 | 57 | # Find normal version of lib32 packages
|
67 | 58 | non_lib32_pkg = get_object_or_404(Package.objects.normal(),
|
68 |
| - pkgname=name.replace("lib32-","")) |
| 59 | + pkgname=pkg.pkgname.replace("lib32-","")) |
69 | 60 | 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) |
71 | 63 | else:
|
72 | 64 | # Find lib32 version of normal packages
|
73 | 65 | try:
|
74 | 66 | lib32_pkg = get_object_or_404(Package.objects.normal(),
|
75 | 67 | pkgname="lib32-"+pkg.pkgbase)
|
76 | 68 | 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) |
78 | 71 | except Http404:
|
79 | 72 | pass # Do not raise an error when there is no lib32 version
|
80 | 73 |
|
81 |
| - |
82 |
| - |
83 | 74 | pkgs = Package.objects.normal().filter(pkg_filter).order_by(
|
84 | 75 | '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 | + |
85 | 90 | authenticated = request.user.is_authenticated
|
86 | 91 |
|
87 | 92 | if request.POST:
|
@@ -166,11 +171,8 @@ def perform_updates():
|
166 | 171 | def flag_confirmed(request, name, repo, arch):
|
167 | 172 | pkg = get_object_or_404(Package,
|
168 | 173 | 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) |
174 | 176 |
|
175 | 177 | context = {'package': pkg, 'packages': pkgs}
|
176 | 178 |
|
|
0 commit comments