diff --git a/devel/views.py b/devel/views.py index 6f82bb4f..0724968f 100644 --- a/devel/views.py +++ b/devel/views.py @@ -25,6 +25,7 @@ from django.views.decorators.cache import cache_control, never_cache from main.models import Arch, Package, Repo +from main.utils import groupby_preserve_order from news.models import News from packages.models import FlagRequest, PackageRelation, Signoff from packages.utils import get_signoff_groups @@ -46,9 +47,14 @@ def index(request): inner_q = PackageRelation.objects.none() inner_q = inner_q.values('pkgbase') - flagged = Package.objects.normal().filter( + # select all flagged packages by pkgname + flagged_all = Package.objects.normal().filter( flag_date__isnull=False, pkgbase__in=inner_q).order_by('pkgname') + # group flagged packages by pkgbase + same_pkgbase_key = lambda x: (x.repo.name, x.arch.name, x.pkgbase) + flagged = groupby_preserve_order(flagged_all, same_pkgbase_key) + todopkgs = TodolistPackage.objects.select_related( 'todolist', 'pkg', 'arch', 'repo').exclude( status=TodolistPackage.COMPLETE).filter(removed__isnull=True) diff --git a/templates/devel/index.html b/templates/devel/index.html index f0b2c9e7..70a7b21d 100644 --- a/templates/devel/index.html +++ b/templates/devel/index.html @@ -26,19 +26,26 @@