euscanwww: category, categories and package views

Signed-off-by: Corentin Chary <corentincj@iksaif.net>
This commit is contained in:
Corentin Chary
2011-04-15 00:24:45 +02:00
parent 25964491dd
commit 2dee08dfb7
13 changed files with 173 additions and 64 deletions

View File

@ -138,7 +138,7 @@ class Command(BaseCommand):
sys.stdout.write('[u] %s/%s-%s %s\n' % (package.category, package.name,
ver, url))
obj.url = url
obj.urls = url
obj.packaged = False
obj.save()

View File

@ -0,0 +1,8 @@
from django import template
register = template.Library()
def mul(value, arg=None):
return value*arg
register.filter('mul', mul)

View File

@ -4,10 +4,10 @@ urlpatterns = patterns('euscan.views',
(r'^$', 'index'),
(r'^logs/$', 'logs'),
(r'^categories/$', 'categories'),
(r'^category/(?P<category>\w+)/packages/$', 'category'),
(r'^category/(?P<category>[\w+][\w+.-]*)/packages/$', 'category'),
(r'^herds/$', 'herds'),
(r'^herd/(?P<herd>\w+)/packages/$', 'herd'),
(r'^herd/(?P<herd>[\w+][\w+.-]*)/packages/$', 'herd'),
(r'^maintainers/$', 'maintainers'),
(r'^maintainer/(?P<maintainer_id>\d+)/packages/$', 'maintainer'),
(r'^package/(?P<category>\w+)/(?P<package>\w+)/$', 'package'),
(r'^package/(?P<category>[\w+][\w+.-]*)/(?P<package>[\w+][\w+.-]*)/$', 'package'),
)

Binary file not shown.

View File

@ -1,5 +1,6 @@
from annoying.decorators import render_to
from django.http import Http404
from django.shortcuts import get_object_or_404
from django.db.models import Sum, Max
from euscan.models import Version, Package, Herd, Maintainer, EuscanResult
@ -9,7 +10,8 @@ def index(request):
ctx = {}
ctx['n_packaged'] = Package.objects.aggregate(Sum('n_packaged'))['n_packaged__sum']
ctx['n_versions'] = Package.objects.aggregate(Sum('n_versions'))['n_versions__sum']
ctx['n_upstream'] = ctx['n_versions'] - ctx['n_packaged']
if ctx['n_versions'] is not None and ctx['n_pacaged'] is not None:
ctx['n_upstream'] = ctx['n_versions'] - ctx['n_packaged']
ctx['n_packages'] = Package.objects.count()
ctx['n_herds'] = Herd.objects.count()
ctx['n_maintainers'] = Maintainer.objects.count()
@ -27,7 +29,10 @@ def categories(request):
@render_to('euscan/category.html')
def category(request, category):
return {}
packages = Package.objects.filter(category=category)
if not packages:
raise Http404
return { 'category' : category, 'packages' : packages }
@render_to('euscan/herds.html')
def herds(request):
@ -47,4 +52,7 @@ def maintainer(request, maintainer_id):
@render_to('euscan/package.html')
def package(request, category, package):
return {}
package = get_object_or_404(Package, category=category, name=package)
packaged = Version.objects.filter(package=package, packaged=True)
upstream = Version.objects.filter(package=package, packaged=False)
return { 'package' : package, 'packaged' : packaged, 'upstream' : upstream }

Binary file not shown.