1818from django .db import transaction
1919from django .db .models import Count , Max
2020from django .http import Http404 , HttpResponse , HttpResponseRedirect
21- from django .shortcuts import get_object_or_404 , render
21+ from django .shortcuts import get_list_or_404 , get_object_or_404 , render
2222from django .utils .encoding import force_str
2323from django .utils .http import http_date
2424from django .utils .timezone import now
@@ -265,6 +265,24 @@ def change_profile(request):
265265 'profile_form' : profile_form })
266266
267267
268+ @login_required
269+ def report_pkgbases (request , report_name : str , svn_root : str ,
270+ username : str | None = None ) -> HttpResponse :
271+ report = {report .slug : report for report in available_reports ()}.get (report_name , None )
272+ if report is None :
273+ raise Http404
274+
275+ repos = get_list_or_404 (Repo , svn_root = svn_root )
276+ packages = Package .objects .normal ().filter (repo__in = repos )
277+ if report .slug in ('uncompressed-man' , 'uncompressed-info' ):
278+ packages = report .packages (packages , username )
279+ else :
280+ packages = report .packages (packages )
281+
282+ pkgbases = sorted ({pkg .pkgbase for pkg in packages })
283+ return HttpResponse ('\n ' .join (pkgbases ), content_type = 'text/plain' )
284+
285+
268286@login_required
269287def report (request , report_name , username = None ):
270288 available = {report .slug : report for report in available_reports ()}
@@ -290,6 +308,8 @@ def report(request, report_name, username=None):
290308
291309 arches = {pkg .arch for pkg in packages }
292310 repos = {pkg .repo for pkg in packages }
311+ svn_roots = sorted ({repo .svn_root for repo in repos })
312+
293313 context = {
294314 'all_maintainers' : maints ,
295315 'title' : report .description ,
@@ -300,6 +320,7 @@ def report(request, report_name, username=None):
300320 'repos' : sorted (repos ),
301321 'column_names' : report .names ,
302322 'column_attrs' : report .attrs ,
323+ 'svn_roots' : svn_roots
303324 }
304325 return render (request , 'devel/packages.html' , context )
305326
0 commit comments