diff options
author | Dan McGee <dan@archlinux.org> | 2011-05-15 18:25:17 +0200 |
---|---|---|
committer | Dan McGee <dan@archlinux.org> | 2011-05-15 18:25:17 +0200 |
commit | f04de80528da8e4eeba8fbbf9f720ba046a5bf11 (patch) | |
tree | 26c0b9551ab8bcf03e46d81a5b22e540acfe4978 | |
parent | d20b20bd8ac66ff8c05e4a6b40a72fc25419075a (diff) | |
download | archweb-f04de80528da8e4eeba8fbbf9f720ba046a5bf11.tar.gz archweb-f04de80528da8e4eeba8fbbf9f720ba046a5bf11.tar.xz |
Allow screening developer reports by maintainer
A simple link is added for each user, but the URLs are flexible enough
to screen by any maintainer if you know how they are constructed.
Signed-off-by: Dan McGee <dan@archlinux.org>
-rw-r--r-- | devel/urls.py | 1 | ||||
-rw-r--r-- | devel/views.py | 22 | ||||
-rw-r--r-- | templates/devel/index.html | 22 | ||||
-rw-r--r-- | templates/devel/packages.html | 8 |
4 files changed, 40 insertions, 13 deletions
diff --git a/devel/urls.py b/devel/urls.py index 9bf50f4..8759562 100644 --- a/devel/urls.py +++ b/devel/urls.py @@ -7,6 +7,7 @@ urlpatterns = patterns('devel.views', (r'^$', 'index'), (r'^newuser/$', 'new_user_form'), (r'^profile/$', 'change_profile'), + (r'^reports/(?P<report>.*)/(?P<username>.*)/$', 'report'), (r'^reports/(?P<report>.*)/$', 'report'), ) diff --git a/devel/views.py b/devel/views.py index 555c7cc..6c36742 100644 --- a/devel/views.py +++ b/devel/views.py @@ -128,18 +128,21 @@ def change_profile(request): {'form': form, 'profile_form': profile_form}) @login_required -def report(request, report): +def report(request, report, username=None): title = 'Developer Report' packages = Package.objects.select_related('arch', 'repo') - names = attrs = None + names = attrs = user = None + if report == 'old': title = 'Packages last built more than two years ago' cutoff = datetime.now() - timedelta(days=730) - packages = packages.filter(build_date__lt=cutoff).order_by('build_date') + packages = packages.filter( + build_date__lt=cutoff).order_by('build_date') elif report == 'big': title = 'Packages with compressed size > 50 MiB' cutoff = 50 * 1024 * 1024 - packages = packages.filter(compressed_size__gte=cutoff).order_by('-compressed_size') + packages = packages.filter( + compressed_size__gte=cutoff).order_by('-compressed_size') names = [ 'Compressed Size', 'Installed Size' ] attrs = [ 'compressed_size_pretty', 'installed_size_pretty' ] # Format the compressed and installed sizes with MB/GB/etc suffixes @@ -175,8 +178,19 @@ def report(request, report): else: raise Http404 + if username: + user = get_object_or_404(User, username=username, is_active=True) + maintained = PackageRelation.objects.filter(user=user, + type=PackageRelation.MAINTAINER).values('pkgbase') + packages = packages.filter(pkgbase__in=maintained) + + maints = User.objects.filter(id__in=PackageRelation.objects.filter( + type=PackageRelation.MAINTAINER).values('user')) + context = { + 'all_maintainers': maints, 'title': title, + 'maintainer': user, 'packages': packages, 'column_names': names, 'column_attrs': attrs, diff --git a/templates/devel/index.html b/templates/devel/index.html index 29b98bd..015ae1b 100644 --- a/templates/devel/index.html +++ b/templates/devel/index.html @@ -100,13 +100,21 @@ <h3>Developer Reports</h3> <ul> - <li><a href="reports/big/">Big</a>: All packages with compressed size > 50 MiB</li> - <li><a href="reports/old/">Old</a>: Packages last built more than two years ago</li> - <li><a href="reports/uncompressed-man/">Uncompressed Manpages</a>: Self-explanatory</li> - <li><a href="reports/uncompressed-info/">Uncompressed Info Pages</a>: Self-explanatory</li> - <li><a href="reports/unneeded-orphans/">Unneeded Orphans</a>: Packages - that have no maintainer and are not required by any other package in - any repository</li> + <li><a href="reports/big/">Big</a>: + All packages with compressed size > 50 MiB + (<a href="reports/big/{{ user.username }}/">yours only</a>)</li> + <li><a href="reports/old/">Old</a>: + Packages last built more than two years ago + (<a href="reports/old/{{ user.username }}/">yours only</a>)</li> + <li><a href="reports/uncompressed-man/">Uncompressed Manpages</a>: + Self-explanatory + (<a href="reports/uncompressed-man/{{ user.username }}/">yours only</a>)</li> + <li><a href="reports/uncompressed-info/">Uncompressed Info Pages</a>: + Self-explanatory + (<a href="reports/uncompressed-info/{{ user.username }}/">yours only</a>)</li> + <li><a href="reports/unneeded-orphans/">Unneeded Orphans</a>: + Packages that have no maintainer and are not required by any other + package in any repository</li> </ul> </div><!-- #dev-dashboard --> diff --git a/templates/devel/packages.html b/templates/devel/packages.html index e0988c0..051ee4a 100644 --- a/templates/devel/packages.html +++ b/templates/devel/packages.html @@ -5,8 +5,12 @@ {% block content %} <div class="box"> - <h2>{{ title }}</h2> - <p>{{ packages|length }} package{{ packages|pluralize }} found.</p> + <h2>{{ title }}{% if maintainer %}, + maintained by {{ maintainer.get_full_name }}{% endif%}</h2> + <p>{{ packages|length }} package{{ packages|pluralize }} found. + {% if maintainer %}This report only includes packages maintained by + {{ maintainer.get_full_name }} ({{ maintainer.username }}).{% endif %} + </p> <table class="results"> <thead> <tr> |