public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
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: Sat,  9 Jul 2011 17:09:56 +0000 (UTC)	[thread overview]
Message-ID: <304488f520ecbcea352283a9b5c0c3c41ddf05b5.vikraman@gentoo> (raw)

commit:     304488f520ecbcea352283a9b5c0c3c41ddf05b5
Author:     Vikraman Choudhury <vikraman.choudhury <AT> gmail <DOT> com>
AuthorDate: Sat Jul  9 17:09:25 2011 +0000
Commit:     Vikraman Choudhury <vikraman.choudhury <AT> gmail <DOT> com>
CommitDate: Sat Jul  9 17:09:25 2011 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/gentoostats.git;a=commit;h=304488f5

per useflag stats

---
 server/app.py                     |    3 +-
 server/templates/use.html         |   11 +-------
 server/templates/use_useflag.html |    8 ++++++
 server/use.py                     |   48 ++++++++++++++++++++++++++++++++----
 4 files changed, 54 insertions(+), 16 deletions(-)

diff --git a/server/app.py b/server/app.py
index 94dffdd..fa5d6a4 100755
--- a/server/app.py
+++ b/server/app.py
@@ -22,12 +22,13 @@ urls = (
 	r'/mirror', 'Mirror',
 	r'/feature', 'Feature',
 	r'/keyword', 'Keyword',
-	r'/use', 'Use',
 	r'/repo', 'Repo',
 	r'/lang', 'Lang',
 	r'/package/(.+)/(.+)', 'Package',
 	r'/package/(.+)', 'Package',
 	r'/package', 'Package',
+	r'/use/(.+)', 'Use',
+	r'/use', 'Use',
 	r'/host/(.+)', 'Host'
 	)
 

diff --git a/server/templates/use.html b/server/templates/use.html
index 209f8f8..bd2a3f7 100644
--- a/server/templates/use.html
+++ b/server/templates/use.html
@@ -1,11 +1,4 @@
 $def with (use_data)
-$var title: Use
+$var title: Useflags
 
-<table border="1">
-  <tr>
-	<th>Use</th>
-	<th>Hosts</th>
-  </tr>
-  $for use in use_data.keys():
-    <tr><td>$use</td><td>$use_data[use]['HOSTS']</td></tr>
-</table>
+No. of useflags: $use_data['USE_COUNT']

diff --git a/server/templates/use_useflag.html b/server/templates/use_useflag.html
new file mode 100644
index 0000000..4d27b4a
--- /dev/null
+++ b/server/templates/use_useflag.html
@@ -0,0 +1,8 @@
+$def with (useflag, use_data)
+$var title: Useflags
+
+Useflag: $useflag</br>
+Globally enabled: $use_data['GLOBAL_COUNT'] hosts</br>
+Enabled: $use_data['PLUS_COUNT'] packages</br>
+Disabled: $use_data['MINUS_COUNT'] packages</br>
+Unset: $use_data['UNSET_COUNT'] packages</br>

diff --git a/server/use.py b/server/use.py
index dfdcfaf..5b7a54d 100644
--- a/server/use.py
+++ b/server/use.py
@@ -2,9 +2,45 @@
 from config import render, db
 
 class Use(object):
-  def GET(self):
-	use_count = db.query('SELECT USEFLAG,COUNT(UUID) AS HOSTS FROM GLOBAL_USEFLAGS NATURAL JOIN USEFLAGS GROUP BY USEFLAG')
-	use_data = dict()
-	for t in use_count:
-	  use_data[t['USEFLAG']] = {'HOSTS':t['HOSTS']}
-	return render.use(use_data)
+  def GET(self, *args):
+	l = len(args)
+	if l == 0:
+	  use_query = db.query('SELECT COUNT(DISTINCT UKEY) AS USE_COUNT FROM USEFLAGS')
+	  use_tuple = use_query[0]
+	  use_data = {'USE_COUNT':use_tuple['USE_COUNT']}
+	  return render.use(use_data)
+
+	elif l == 1:
+	  global_use_query = db.query('SELECT COUNT(DISTINCT UUID) AS GLOBAL_COUNT\
+		  FROM GLOBAL_USEFLAGS RIGHT OUTER JOIN USEFLAGS\
+		  ON GLOBAL_USEFLAGS.UKEY = USEFLAGS.UKEY\
+		  WHERE USEFLAG=$useflag', vars={'useflag':args[0]})
+	  plus_use_query = db.query('SELECT COUNT(DISTINCT IPKEY) AS PLUS_COUNT\
+		  FROM PLUS_USEFLAGS RIGHT OUTER JOIN USEFLAGS\
+		  ON PLUS_USEFLAGS.UKEY = USEFLAGS.UKEY\
+		  WHERE USEFLAG=$useflag', vars={'useflag':args[0]})
+	  minus_use_query = db.query('SELECT COUNT(DISTINCT IPKEY) AS MINUS_COUNT\
+		  FROM MINUS_USEFLAGS RIGHT OUTER JOIN USEFLAGS\
+		  ON MINUS_USEFLAGS.UKEY = USEFLAGS.UKEY\
+		  WHERE USEFLAG=$useflag', vars={'useflag':args[0]})
+	  unset_use_query = db.query('SELECT COUNT(DISTINCT IPKEY) AS UNSET_COUNT\
+		  FROM UNSET_USEFLAGS RIGHT OUTER JOIN USEFLAGS\
+		  ON UNSET_USEFLAGS.UKEY = USEFLAGS.UKEY\
+		  WHERE USEFLAG=$useflag', vars={'useflag':args[0]})
+	  
+	  global_use_tuple = global_use_query[0]
+	  plus_use_tuple = plus_use_query[0]
+	  minus_use_tuple = minus_use_query[0]
+	  unset_use_tuple = unset_use_query[0]
+
+	  use_data = {
+		  'GLOBAL_COUNT':global_use_tuple['GLOBAL_COUNT'],
+		  'PLUS_COUNT':plus_use_tuple['PLUS_COUNT'],
+		  'MINUS_COUNT':minus_use_tuple['MINUS_COUNT'],
+		  'UNSET_COUNT':unset_use_tuple['UNSET_COUNT']
+		  }
+
+	  return render.use_useflag(args[0], use_data)
+
+	else:
+	  return config.internalerror()



             reply	other threads:[~2011-07-09 17:10 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-07-09 17:09 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-07 19:40 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=304488f520ecbcea352283a9b5c0c3c41ddf05b5.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