From: "Vikraman Choudhury" <vikraman.choudhury@gmail.com>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] proj/gentoostats:master commit in: server/, server/templates/
Date: Thu, 7 Jul 2011 19:40:37 +0000 (UTC) [thread overview]
Message-ID: <78fb9b4a76433d166ef20091a598105075eb4265.vikraman@gentoo> (raw)
commit: 78fb9b4a76433d166ef20091a598105075eb4265
Author: Vikraman Choudhury <vikraman.choudhury <AT> gmail <DOT> com>
AuthorDate: Thu Jul 7 19:37:12 2011 +0000
Commit: Vikraman Choudhury <vikraman.choudhury <AT> gmail <DOT> com>
CommitDate: Thu Jul 7 19:37:12 2011 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/gentoostats.git;a=commit;h=78fb9b4a
add top C,CP,CPV to /package pages
---
server/package.py | 131 ++++++++++++++++++++++++++++---------
server/templates/package.html | 9 +++
server/templates/package_c.html | 10 +++
server/templates/package_cp.html | 11 +++
4 files changed, 129 insertions(+), 32 deletions(-)
diff --git a/server/package.py b/server/package.py
index 8f23daf..4ac7aa2 100644
--- a/server/package.py
+++ b/server/package.py
@@ -1,74 +1,141 @@
+import web
import helpers
from config import render, db
class Package(object):
def GET(self, *args):
+ try:
+ top = int(web.input(top="5").top)
+ except ValueError:
+ top = 5
l = len(args)
if l == 0:
- return self.__GET()
+ return self.__GET(top)
elif l == 1:
- return self.__GET_C(args[0])
+ return self.__GET_C(top, args[0])
elif l == 2:
cpv = helpers.pkgsplit(args[0] + '/' + args[1])
if cpv['ver'] == '':
- return self.__GET_CP(cpv['cat'], cpv['pkg'])
+ return self.__GET_CP(top, cpv['cat'], cpv['pkg'])
else:
return self.__GET_CPV(cpv['cat'], cpv['pkg'], cpv['ver'])
else:
return config.internalerror()
- def __GET(self):
- pquery = db.query('SELECT COUNT(DISTINCT UUID) AS HOST_COUNT,\
+ def __GET(self, top):
+ p_query = db.query('SELECT COUNT(DISTINCT UUID) AS HOST_COUNT,\
COUNT(DISTINCT CAT) AS C_COUNT,\
COUNT(DISTINCT CAT,PKG) AS CP_COUNT,\
COUNT(DISTINCT CAT,PKG,VER) AS CPV_COUNT\
FROM INSTALLED_PACKAGES RIGHT OUTER JOIN PACKAGES\
ON INSTALLED_PACKAGES.PKEY = PACKAGES.PKEY')
- t = pquery[0]
- pdata = {
- 'HOST_COUNT':t['HOST_COUNT'],
- 'C_COUNT':t['C_COUNT'],
- 'CP_COUNT':t['CP_COUNT'],
- 'CPV_COUNT':t['CPV_COUNT']
+ p_tuple = p_query[0]
+ p_data = {
+ 'HOST_COUNT':p_tuple['HOST_COUNT'],
+ 'C_COUNT':p_tuple['C_COUNT'],
+ 'CP_COUNT':p_tuple['CP_COUNT'],
+ 'CPV_COUNT':p_tuple['CPV_COUNT'],
+ 'TOP_C':self.__top(top)
}
- return render.package(pdata)
+ return render.package(p_data)
- def __GET_C(self, cat):
- pquery = db.query('SELECT COUNT(DISTINCT UUID) AS HOST_COUNT,\
+ def __GET_C(self, top, cat):
+ p_query = db.query('SELECT COUNT(DISTINCT UUID) AS HOST_COUNT,\
COUNT(DISTINCT CAT,PKG) AS CP_COUNT,\
COUNT(DISTINCT CAT,PKG,VER) AS CPV_COUNT\
FROM INSTALLED_PACKAGES RIGHT OUTER JOIN PACKAGES\
ON INSTALLED_PACKAGES.PKEY = PACKAGES.PKEY\
WHERE CAT=$cat', vars={'cat':cat})
- t = pquery[0]
- pdata = {
- 'HOST_COUNT':t['HOST_COUNT'],
- 'CP_COUNT':t['CP_COUNT'],
- 'CPV_COUNT':t['CPV_COUNT']
+ p_tuple = p_query[0]
+ p_data = {
+ 'HOST_COUNT':p_tuple['HOST_COUNT'],
+ 'CP_COUNT':p_tuple['CP_COUNT'],
+ 'CPV_COUNT':p_tuple['CPV_COUNT'],
+ 'TOP_CP':self.__top(top, cat)
}
- return render.package_c(cat, pdata)
+ return render.package_c(cat, p_data)
- def __GET_CP(self, cat, pkg):
- pquery = db.query('SELECT COUNT(DISTINCT UUID) AS HOST_COUNT,\
+ def __GET_CP(self, top, cat, pkg):
+ p_query = db.query('SELECT COUNT(DISTINCT UUID) AS HOST_COUNT,\
COUNT(DISTINCT CAT,PKG,VER) AS CPV_COUNT\
FROM INSTALLED_PACKAGES RIGHT OUTER JOIN PACKAGES\
ON INSTALLED_PACKAGES.PKEY = PACKAGES.PKEY\
WHERE CAT=$cat AND PKG=$pkg', vars={'cat':cat,'pkg':pkg})
- t = pquery[0]
- pdata = {
- 'HOST_COUNT':t['HOST_COUNT'],
- 'CPV_COUNT':t['CPV_COUNT']
+ p_tuple = p_query[0]
+ p_data = {
+ 'HOST_COUNT':p_tuple['HOST_COUNT'],
+ 'CPV_COUNT':p_tuple['CPV_COUNT'],
+ 'TOP_CPV':self.__top(top, cat, pkg)
}
- return render.package_cp(cat, pkg, pdata)
+ return render.package_cp(cat, pkg, p_data)
def __GET_CPV(self, cat, pkg, ver):
- pquery = db.query('SELECT COUNT(DISTINCT UUID) AS HOST_COUNT\
+ p_query = db.query('SELECT COUNT(DISTINCT UUID) AS HOST_COUNT\
FROM INSTALLED_PACKAGES RIGHT OUTER JOIN PACKAGES\
ON INSTALLED_PACKAGES.PKEY = PACKAGES.PKEY\
WHERE CAT=$cat AND PKG=$pkg AND VER=$ver', vars={'cat':cat,'pkg':pkg,'ver':ver})
- t = pquery[0]
- pdata = {
- 'HOST_COUNT':t['HOST_COUNT'],
+ p_tuple = p_query[0]
+ p_data = {
+ 'HOST_COUNT':p_tuple['HOST_COUNT'],
}
- return render.package_cpv(cat, pkg, ver, pdata)
+ return render.package_cpv(cat, pkg, ver, p_data)
+
+ def __top(self, count, *args):
+ t_list = list()
+ if len(args) == 0:
+ tc_query = db.query('SELECT CAT,COUNT(DISTINCT UUID) AS HOST_COUNT\
+ FROM INSTALLED_PACKAGES RIGHT OUTER JOIN PACKAGES\
+ ON INSTALLED_PACKAGES.PKEY = PACKAGES.PKEY\
+ GROUP BY CAT\
+ ORDER BY HOST_COUNT DESC,CAT')
+ for idx in range(0,count):
+ try:
+ tc_tuple = tc_query[idx]
+ t_list.append({
+ 'CAT':tc_tuple['CAT'],
+ 'HOST_COUNT':tc_tuple['HOST_COUNT']
+ })
+ except IndexError:
+ break
+
+ elif len(args) == 1:
+ tcp_query = db.query('SELECT CAT,PKG,COUNT(DISTINCT UUID) AS HOST_COUNT\
+ FROM INSTALLED_PACKAGES RIGHT OUTER JOIN PACKAGES\
+ ON INSTALLED_PACKAGES.PKEY = PACKAGES.PKEY\
+ WHERE CAT=$cat\
+ GROUP BY CAT,PKG\
+ ORDER BY HOST_COUNT DESC,CAT,PKG',
+ vars={'cat':args[0]})
+ for idx in range(0,count):
+ try:
+ tcp_tuple = tcp_query[idx]
+ t_list.append({
+ 'CAT':tcp_tuple['CAT'],
+ 'PKG':tcp_tuple['PKG'],
+ 'HOST_COUNT':tcp_tuple['HOST_COUNT']
+ })
+ except IndexError:
+ break
+
+ elif len(args) == 2:
+ tcpv_query = db.query('SELECT CAT,PKG,VER,COUNT(DISTINCT UUID) AS HOST_COUNT\
+ FROM INSTALLED_PACKAGES RIGHT OUTER JOIN PACKAGES\
+ ON INSTALLED_PACKAGES.PKEY = PACKAGES.PKEY\
+ WHERE CAT=$cat AND PKG=$pkg\
+ GROUP BY CAT,PKG,VER\
+ ORDER BY HOST_COUNT DESC,CAT,PKG,VER',
+ vars={'cat':args[0],'pkg':args[1]})
+ for idx in range(0,count):
+ try:
+ tcpv_tuple = tcpv_query[idx]
+ t_list.append({
+ 'CAT':tcpv_tuple['CAT'],
+ 'PKG':tcpv_tuple['PKG'],
+ 'VER':tcpv_tuple['VER'],
+ 'HOST_COUNT':tcpv_tuple['HOST_COUNT']
+ })
+ except IndexError:
+ break
+
+ return t_list
diff --git a/server/templates/package.html b/server/templates/package.html
index ca8ec96..f1a4e5c 100644
--- a/server/templates/package.html
+++ b/server/templates/package.html
@@ -5,3 +5,12 @@ No. of hosts: $pdata['HOST_COUNT']</br>
No. of categories: $pdata['C_COUNT']</br>
No. of category-packages: $pdata['CP_COUNT']</br>
No. of category-package-versions: $pdata['CPV_COUNT']</br>
+Top Categories:</br>
+<table border="1">
+ <tr>
+ <th>Category</th>
+ <th>Hosts</th>
+ </tr>
+ $for p in pdata['TOP_C']:
+ <tr><td>$p['CAT']</td><td>$p['HOST_COUNT']</td></tr>
+</table>
diff --git a/server/templates/package_c.html b/server/templates/package_c.html
index 1d8e43a..8247173 100644
--- a/server/templates/package_c.html
+++ b/server/templates/package_c.html
@@ -4,3 +4,13 @@ $var title: $cat
No. of hosts: $pdata['HOST_COUNT']</br>
No. of category-packages: $pdata['CP_COUNT']</br>
No. of category-package-versions: $pdata['CPV_COUNT']</br>
+Top CPs:</br>
+<table border="1">
+ <tr>
+ <th>Category</th>
+ <th>Package</th>
+ <th>Hosts</th>
+ </tr>
+ $for p in pdata['TOP_CP']:
+ <tr><td>$p['CAT']</td><td>$p['PKG']</td><td>$p['HOST_COUNT']</td></tr>
+</table>
diff --git a/server/templates/package_cp.html b/server/templates/package_cp.html
index 1f24f8e..30fdb25 100644
--- a/server/templates/package_cp.html
+++ b/server/templates/package_cp.html
@@ -3,3 +3,14 @@ $var title: $cat/$pkg
No. of hosts: $pdata['HOST_COUNT']</br>
No. of category-package-versions: $pdata['CPV_COUNT']</br>
+Top CPVs:</br>
+<table border="1">
+ <tr>
+ <th>Category</th>
+ <th>Package</th>
+ <th>Version</th>
+ <th>Hosts</th>
+ </tr>
+ $for p in pdata['TOP_CPV']:
+ <tr><td>$p['CAT']</td><td>$p['PKG']</td><td>$p['VER']</td><td>$p['HOST_COUNT']</td></tr>
+</table>
next reply other threads:[~2011-07-07 19:40 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-07-07 19:40 Vikraman Choudhury [this message]
-- strict thread matches above, loose matches on Subject: below --
2011-08-11 20:41 [gentoo-commits] proj/gentoostats:master commit in: server/, server/templates/ Vikraman Choudhury
2011-08-03 23:45 Vikraman Choudhury
2011-08-03 21:52 Vikraman Choudhury
2011-07-17 21:51 Vikraman Choudhury
2011-07-09 17:09 Vikraman Choudhury
2011-07-07 16:02 Vikraman Choudhury
2011-07-03 18:04 Vikraman Choudhury
2011-06-14 17:43 Vikraman Choudhury
2011-05-06 14:42 Vikraman Choudhury
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=78fb9b4a76433d166ef20091a598105075eb4265.vikraman@gentoo \
--to=vikraman.choudhury@gmail.com \
--cc=gentoo-commits@lists.gentoo.org \
--cc=gentoo-dev@lists.gentoo.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox