From 2dee08dfb7926ad52e87700360ef7d8166f4d6c1 Mon Sep 17 00:00:00 2001 From: Corentin Chary Date: Fri, 15 Apr 2011 00:24:45 +0200 Subject: [PATCH] euscanwww: category, categories and package views Signed-off-by: Corentin Chary --- .../management/commands/scan-upstream.py | 2 +- euscanwww/euscan/templatetags/mul.py | 8 ++ euscanwww/euscan/urls.py | 6 +- euscanwww/euscan/urls.pyc | Bin 1019 -> 1129 bytes euscanwww/euscan/views.py | 14 +++- euscanwww/euscan/views.pyc | Bin 2780 -> 3225 bytes euscanwww/media/css/style.css | 39 +--------- euscanwww/media/css/table.css | 20 ++--- euscanwww/templates/_base.html | 7 +- euscanwww/templates/euscan/_base.html | 11 ++- euscanwww/templates/euscan/categories.html | 19 ++++- euscanwww/templates/euscan/category.html | 38 +++++++++ euscanwww/templates/euscan/package.html | 73 ++++++++++++++++++ 13 files changed, 173 insertions(+), 64 deletions(-) create mode 100644 euscanwww/euscan/templatetags/mul.py create mode 100644 euscanwww/templates/euscan/category.html create mode 100644 euscanwww/templates/euscan/package.html diff --git a/euscanwww/euscan/management/commands/scan-upstream.py b/euscanwww/euscan/management/commands/scan-upstream.py index 87013a0..b1c464f 100644 --- a/euscanwww/euscan/management/commands/scan-upstream.py +++ b/euscanwww/euscan/management/commands/scan-upstream.py @@ -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() diff --git a/euscanwww/euscan/templatetags/mul.py b/euscanwww/euscan/templatetags/mul.py new file mode 100644 index 0000000..c28f270 --- /dev/null +++ b/euscanwww/euscan/templatetags/mul.py @@ -0,0 +1,8 @@ +from django import template + +register = template.Library() + +def mul(value, arg=None): + return value*arg + +register.filter('mul', mul) diff --git a/euscanwww/euscan/urls.py b/euscanwww/euscan/urls.py index 23e9529..08c3873 100644 --- a/euscanwww/euscan/urls.py +++ b/euscanwww/euscan/urls.py @@ -4,10 +4,10 @@ urlpatterns = patterns('euscan.views', (r'^$', 'index'), (r'^logs/$', 'logs'), (r'^categories/$', 'categories'), - (r'^category/(?P\w+)/packages/$', 'category'), + (r'^category/(?P[\w+][\w+.-]*)/packages/$', 'category'), (r'^herds/$', 'herds'), - (r'^herd/(?P\w+)/packages/$', 'herd'), + (r'^herd/(?P[\w+][\w+.-]*)/packages/$', 'herd'), (r'^maintainers/$', 'maintainers'), (r'^maintainer/(?P\d+)/packages/$', 'maintainer'), - (r'^package/(?P\w+)/(?P\w+)/$', 'package'), + (r'^package/(?P[\w+][\w+.-]*)/(?P[\w+][\w+.-]*)/$', 'package'), ) diff --git a/euscanwww/euscan/urls.pyc b/euscanwww/euscan/urls.pyc index e187d8d5edc09fd2be4c628093a0a4d7892aa3ff..c63d84b8d839e6ceca36c65e0e181067a3a3b3b6 100644 GIT binary patch delta 359 zcmey({*r_J;wN6NGnvaLvhUI`U|?W~OHM3FP0uf?)Yq^Nuz_*xqGQUnV?l(TZmibC z`-Tb{Ahj8(MJZr)AO@Qo=+y+PFGx(zPE1cl({he6gJ?HQ4q?)E zEoKF}0%Uiw1{07~Ovq81`cR9D^;L>lpn4~7WRegl<_7X|6EpKlfH<|Nc=9KsYc`pFajcoA% delta 226 zcmaFK@td9f;wN4%dHGLtI8`QHs8XeSi&!VF#3% zY{gi`s5?2ESyBYZ(*(;EBqnDkrl*3XzcFSYjG5fVr0pNX3N%QA2}l%UH&Rm{YCy5R oN)Q`dF(1hO+{Dbh5+F`30!gw1g(k}}oAU&5z?I=~%Npjr0DJp9tpET3 diff --git a/euscanwww/euscan/views.py b/euscanwww/euscan/views.py index 2c1d47d..523496b 100644 --- a/euscanwww/euscan/views.py +++ b/euscanwww/euscan/views.py @@ -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 } diff --git a/euscanwww/euscan/views.pyc b/euscanwww/euscan/views.pyc index 4aa64aa4ddda665eedd4bd8838dad2fe21f21bd8..ca2b0f7d8ecbcd73bb05842d02e791c3b83cc293 100644 GIT binary patch literal 3225 zcmc&$+ioL85Un2HVkh1tn>aUatK}lYLcB=J3W*3IA<(|WLKEP@FQZvcuRZa2#!R%qh$-`zcJ>92!s%xswsrDa#wOc=#-;ak>{5AOb4d14x zh$8-1G$Be94HPMiJ(_rwRA^9f;|fixl+XbBS(4b_61}hG&(WFU9iv}%9 zR%x(G$r=sTC~4E6P00fqJRqeNMRmI7wn4uUI)ilrxFTS)1UCe13AkE0 zxlSXU2R3sM!u!J7*|Vq59I(m2NZTNLd8&u}$OBAyc)h~S$$To$)gay zD*YeA;Ur`ORmNZFJhCnB9EWjg`PR8zC_1_|Un%FSZoWcCSXQBZ=FVx8vL~bf z)NX(S2k;7KZ+{QZIvu4`TDXVCLc&*>wgN!yqu60mL*7&Rp0{v7{WjCCIhB#>sF=NQ3#z*j$I@`^6SU z@|Ff;&X%$8Aq}QC2{Y_Dt1PtI##1fRCUyi$f&TcfMiLKj6j`kBzYh;t z8$@Seg3KY#VVY*Pq=4jBBILivbN3CC7(u}^h!=TJm1OmHkS<*U%gO>KN{GJX&T@!Y z+t;LCdvxW|ti`&o(65S60mh7Rz!W{_DUKe;2Uhz2yD))|EM?V&AODKQt2nVb_rVQ$ z&3!&z^&bP{`#!7|Ct%IM5%M~!p;~IW#EQt@2#cX}+5JQKSI~G#UYJ{C2lM|cFD#Jg zNhQI{_YNK$`*_K@UG5k3S*nL`BzUXr%90PCEqS?A2^K5v6iAf*g^3`(cSNN)EG(i> zmxuULzi`GOcJ1$`egqE04u#J>o(Za}}#Vs8N-;tY35e;&S%i zDgG(PQ&k$f#T8aCS3$0DS8SjLA!E}*$k1*Y@_~o5r|@uD-H{B+1GOthmrxQme0+fv zK>vO22}6I(=kBcgK1_^ubrPq8NY?)Zy(efs<>uZ@hPf~JF3P~3dW)}qcaI^9$fFKl z#_8xV(!(qdZI&CKVY1*^bQ-3kjMHIfQm8CMT7YJp<#sr?#>dAl&qOZ|r&**EBgeZO z-tuF?CAplFz(|NBVyIH?uzwr9chKN0a6$P1J&4l(2o0hlfm(z|dUrfkvG)+|Ku?wjOu?MLSu@7P*ATi;HRKiQ(MO*-e zmV$N;R}^#Eq6I})a@SP_iwXugEGf9EU@3=X1Zv6E-OK>0fH00KmJVk8i~b@ey0v_Tm|3BB0se*@X2uc?y^sa0I|e5;9LBi;z5t zY(kbo8q94-R28^nE;Koc2kSKLgg!lFYwnWH?jMZCd!t8K)UV(jeJUM-k%^!5(_M|0 zbSc1i|8O>s`0GU$i_M~=Z#*pVJ}Z%cCPj~W4PP18MIFByH$@pwnXi`-J^WxcBnOKs z_}T0P96V%+>MR{Pa8*VfTGw$yoK%0S#|kLv_nFmxJz3o+Mch ze_A&PUbHvO9>D=Vw{I<-u
{% block content %}{% endblock %} +
- {% block content %}{% endblock %} + {% block content %} + {% endblock %} +