aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCorentin Chary <corentin.chary@gmail.com>2012-11-26 23:39:34 +0100
committerCorentin Chary <corentin.chary@gmail.com>2012-11-26 23:39:34 +0100
commitc6a0c29401a7e26f7f7481254c27844aa022c9fd (patch)
tree5437bdf59d71487a6cc85a9d0df07509c3ffb865 /euscanwww/djeuscan/views.py
parenteuscanwww: reorder some settings (diff)
downloadeuscan-c6a0c29401a7e26f7f7481254c27844aa022c9fd.tar.gz
euscan-c6a0c29401a7e26f7f7481254c27844aa022c9fd.tar.bz2
euscan-c6a0c29401a7e26f7f7481254c27844aa022c9fd.zip
euscanwww: tweak the new handler code
Signed-off-by: Corentin Chary <corentin.chary@gmail.com>
Diffstat (limited to 'euscanwww/djeuscan/views.py')
-rw-r--r--euscanwww/djeuscan/views.py30
1 files changed, 17 insertions, 13 deletions
diff --git a/euscanwww/djeuscan/views.py b/euscanwww/djeuscan/views.py
index e09b82f..1b128a4 100644
--- a/euscanwww/djeuscan/views.py
+++ b/euscanwww/djeuscan/views.py
@@ -380,25 +380,29 @@ def config(request):
@render_to("euscan/statistics.html")
def statistics(request):
- handlers = (
- Version.objects.values("handler", "confidence")
- .filter(overlay="")
- .annotate(n=models.Count("handler"),
- avg_conf=models.Avg("confidence"))
- .order_by("-n")
+ # Didn't found a way to do:
+ # SELECT COUNT(*), AVG(confidence) FROM Versions
+ # GROUP BY handler
+ handlers = ( Version.objects.values("handler")
+ .filter(overlay="")
+ .annotate(n=models.Count("handler"))
)
+ for i in xrange(len(handlers)):
+ handler_id = handlers[i]['handler']
+ avg = ( Version.objects.filter(handler=handler_id)
+ .aggregate(avg=models.Avg("confidence"))
+ )
+ if not handler_id:
+ handlers[i]['handler'] = "None"
+ handlers[i]['avg_conf'] = avg['avg'] if 'avg' in avg else 0
return {"handlers": handlers}
@render_to("euscan/statistics_handler.html")
def statistics_handler(request, handler):
- package_ids = [
- elem["package"] for elem in
- Version.objects.filter(handler=handler)
- .values("package")
- .distinct()
- ]
- packages = Package.objects.filter(pk__in=package_ids)
+ if handler == "None":
+ handler = ""
+ packages = Package.objects.for_handler(handler)
return {"handler": handler, "packages": packages}