Mercurial > bitten > bitten-test
changeset 504:e2eef154f1af
Add pending/inprogress build counts to web ui.
author | wbell |
---|---|
date | Mon, 09 Mar 2009 01:07:15 +0000 |
parents | a7c795920c4a |
children | 4caa400abe8e |
files | bitten/templates/bitten_config.html bitten/web_ui.py |
diffstat | 2 files changed, 60 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/bitten/templates/bitten_config.html +++ b/bitten/templates/bitten_config.html @@ -39,6 +39,11 @@ <div id="content" class="build"> <h1>$title</h1><py:choose test="page_mode"><py:when test="'overview'"> + <py:if test="builds_pending"> + <div>$builds_pending pending build<py:if test="builds_pending > 1">s</py:if> + </div></py:if><py:if test="builds_inprogress"> + <div>$builds_inprogress in-progress build<py:if test="builds_inprogress > 1">s</py:if> + </div></py:if> <form id="prefs" method="get" action=""> <div> <input type="checkbox" id="showall" name="show" value="all" @@ -51,7 +56,18 @@ </form><py:for each="config in configs"> <h2 class="config ${not config.active and 'deactivated' or ''}"> <a href="$config.href">$config.label</a> - </h2> + </h2><py:if test="config.builds_pending"> + <div>$config.builds_pending pending + build<py:if test="config.builds_pending > 1">s</py:if> <i>(<py:for each="platform in config.platforms"> + <py:if test="platform.builds_pending"> + $platform.name: $platform.builds_pending + </py:if></py:for>)</i> + </div></py:if><py:if test="config.builds_inprogress"> + <div>$config.builds_inprogress in-progress + build<py:if test="config.builds_inprogress > 1">s</py:if> <i>(<py:for each="platform in config.platforms"><py:if test="platform.builds_inprogress"> + $platform.name: $platform.builds_inprogress + </py:if></py:for>)</i> + </div></py:if> <div py:if="config.description" class="description"> $config.description </div><py:if test="len(config.builds)"> @@ -109,6 +125,16 @@ <div py:if="config.description" class="description"> $config.description </div> + <py:if test="config.builds_pending"> + <div>$config.builds_pending pending build<py:if test="config.builds_pending > 1">s</py:if> <i>(<py:for each="platform in config.platforms"> + <py:if test="platform.builds_pending"> + $platform.name: $platform.builds_pending + </py:if></py:for>)</i> + </div></py:if><py:if test="config.builds_inprogress"> + <div>$config.builds_inprogress in-progress build<py:if test="config.builds_inprogress > 1">s</py:if> <i>(<py:for each="platform in config.platforms"><py:if test="platform.builds_inprogress"> + $platform.name: $platform.builds_inprogress + </py:if></py:for>)</i> + </div></py:if> <div id="charts"><py:for each="chart in config.charts"> <object type="application/x-shockwave-flash" width="320" height="240"
--- a/bitten/web_ui.py +++ b/bitten/web_ui.py @@ -141,12 +141,25 @@ description = config.description if description: description = wiki_to_html(description, self.env, req) + + platforms_data = [] + for platform in TargetPlatform.select(self.env, config=config.name): + pd = { 'name': platform.name, + 'id': platform.id, + 'builds_pending': len(list(Build.select(self.env, config=config.name, status=Build.PENDING, platform=platform.id))), + 'builds_inprogress': len(list(Build.select(self.env, config=config.name, status=Build.IN_PROGRESS, platform=platform.id))) + } + platforms_data.append(pd) + config_data = { 'name': config.name, 'label': config.label or config.name, 'active': config.active, 'path': config.path, 'description': description, + 'builds_pending' : len(list(Build.select(self.env, config=config.name, status=Build.PENDING))), + 'builds_inprogress' : len(list(Build.select(self.env, config=config.name, status=Build.IN_PROGRESS))), 'href': req.href.build(config.name), - 'builds': [] + 'builds': [], + 'platforms': platforms_data } configs.append(config_data) if not config.active: @@ -182,6 +195,13 @@ data['configs'] = configs data['page_mode'] = 'overview' + + in_progress_builds = Build.select(self.env, status=Build.IN_PROGRESS) + pending_builds = Build.select(self.env, status=Build.PENDING) + + data['builds_pending'] = len(list(pending_builds)) + data['builds_inprogress'] = len(list(in_progress_builds)) + add_link(req, 'views', req.href.build(view='inprogress'), 'In Progress Builds') add_ctxtnav(req, 'In Progress Builds', @@ -258,6 +278,10 @@ description = config.description if description: description = wiki_to_html(description, self.env, req) + + pending_builds = list(Build.select(self.env, config=config.name, status=Build.PENDING)) + inprogress_builds = list(Build.select(self.env, config=config.name, status=Build.IN_PROGRESS)) + data['config'] = { 'name': config.name, 'label': config.label, 'path': config.path, 'min_rev': config.min_rev, @@ -265,13 +289,19 @@ 'max_rev': config.max_rev, 'max_rev_href': req.href.changeset(config.max_rev), 'active': config.active, 'description': description, - 'browser_href': req.href.browser(config.path) + 'browser_href': req.href.browser(config.path), + 'builds_pending' : len(pending_builds), + 'builds_inprogress' : len(inprogress_builds) } platforms = list(TargetPlatform.select(self.env, config=config_name, db=db)) data['config']['platforms'] = [ - {'name': platform.name, 'id': platform.id} + { 'name': platform.name, + 'id': platform.id, + 'builds_pending': len(list(Build.select(self.env, config=config.name, status=Build.PENDING, platform=platform.id))), + 'builds_inprogress': len(list(Build.select(self.env, config=config.name, status=Build.IN_PROGRESS, platform=platform.id))) + } for platform in platforms ]