[pypy-svn] r71310 - in codespeed/pyspeed: codespeed media/css media/js templates
tobami at codespeak.net
tobami at codespeak.net
Thu Feb 18 22:17:45 CET 2010
Author: tobami
Date: Thu Feb 18 22:17:43 2010
New Revision: 71310
Added:
codespeed/pyspeed/templates/results_table.html
Removed:
codespeed/pyspeed/templates/result_list.html
Modified:
codespeed/pyspeed/codespeed/urls.py
codespeed/pyspeed/codespeed/views.py
codespeed/pyspeed/media/css/main5.css
codespeed/pyspeed/media/js/codespeed.js
codespeed/pyspeed/templates/overview.html
codespeed/pyspeed/templates/results.html
Log:
use ajax to get table
Modified: codespeed/pyspeed/codespeed/urls.py
==============================================================================
--- codespeed/pyspeed/codespeed/urls.py (original)
+++ codespeed/pyspeed/codespeed/urls.py Thu Feb 18 22:17:43 2010
@@ -5,12 +5,6 @@
from pyspeed.codespeed.models import Result, Revision, Interpreter
from pyspeed import settings
-result_list = {
- 'queryset': Result.objects.order_by('-date'),
- 'template_name': 'result_list.html',
- 'template_object_name': 'result',
-}
-
def getresults():
#Function so that results are not cached
return Result.objects.filter(revision__project=settings.PROJECT_NAME)
@@ -36,7 +30,8 @@
urlpatterns += patterns('pyspeed.codespeed.views',
(r'^overview/$', 'overview'),
(r'^overview/table/$', 'overviewtable'),
- (r'^results/$', list_detail.object_list, result_list),
+ (r'^results/$', 'results'),
+ (r'^results/table/$', 'resultstable'),
(r'^revision/$', list_detail.object_list, revision_list),
# URL interface for adding results
(r'^result/add/$', 'addresult'),
Modified: codespeed/pyspeed/codespeed/views.py
==============================================================================
--- codespeed/pyspeed/codespeed/views.py (original)
+++ codespeed/pyspeed/codespeed/views.py Thu Feb 18 22:17:43 2010
@@ -5,8 +5,15 @@
from pyspeed import settings
from time import sleep
+def resultstable(request):
+ result_list = Result.objects.order_by('-date')[:200]
+ return render_to_response('results_table.html', locals())
+
+def results(request):
+ return render_to_response('results.html')
+
def overviewtable(request):
- #sleep(4)
+ #sleep(2)
trendconfig = int(request.GET["trend"])
lastrevisions = Revision.objects.filter(
project=settings.PROJECT_NAME
@@ -43,19 +50,18 @@
#calculate past average
average = 0
- for rev in pastrevisions:
- past_rev = Result.objects.filter(
- revision__number=rev.number
- ).filter(
- revision__project=settings.PROJECT_NAME
- ).filter(benchmark=bench)
- if past_rev.count():
- average += past_rev[0].value
- else:
- average = 0
- break
+ if len(pastrevisions):
+ for rev in pastrevisions:
+ past_rev = Result.objects.filter(
+ revision__number=rev.number
+ ).filter(
+ revision__project=settings.PROJECT_NAME
+ ).filter(benchmark=bench)
+ if past_rev.count():
+ average += past_rev[0].value
+ else: average = "-"
trend = 0
- if average:
+ if average and average != "-":
average = average / len(pastrevisions)
trend = (result - average)*100/average
@@ -72,19 +78,26 @@
})
return render_to_response('overview_table.html', locals())
- #return HttpResponse("<div>Aquí estoy!<br>Trend="+ str(request.GET["trend"]) +"</div>")
def overview(request):
+ if request.method != 'GET':
+ return HttpResponseNotAllowed('GET')
+ data = request.GET
trendconfig = 10
# TODO: list of posible <select> values. choose from nearest
- #if request.GET.has_key("trend"):
- #if request.GET["trend"] > 0:
+ #if data.has_key("trend"):
+ #if data["trend"] > 0:
#trendconfig = int(request.GET["trend"])
interpreters = Interpreter.objects.filter(name__startswith=settings.PROJECT_NAME)
- lastrevision = Revision.objects.filter(
+ lastrevisions = Revision.objects.filter(
project=settings.PROJECT_NAME
- ).order_by('-number')[0].number
+ ).order_by('-number')[:10]
+ selectedrevision = lastrevisions[0].number
+ if data.has_key("revision"):
+ if data["revision"] > 0:
+ # TODO: Create 404 html embeded in the overview
+ selectedrevision = get_object_or_404(Revision, number=data["revision"])
hostlist = Environment.objects.all()
return render_to_response('overview.html', locals())
Modified: codespeed/pyspeed/media/css/main5.css
==============================================================================
--- codespeed/pyspeed/media/css/main5.css (original)
+++ codespeed/pyspeed/media/css/main5.css Thu Feb 18 22:17:43 2010
@@ -5,13 +5,12 @@
}
h1 { margin: 0; font-style: italic; }
-div#containter { width: 75em; margin-left: auto; margin-right: auto; }
+div#containter { width: 73em; margin-left: auto; margin-right: auto; }
div#header { width: 100%; margin: 0; margin-bottom: 0.8em; float:left; }
div#title {
width: 100%;
float: left;
background-color: #EAEAEA; color: #000000;
- padding-bottom: 6px;
-moz-border-radius-bottomleft: 12px;
-moz-border-radius-bottomright: 12px;
-webkit-border-radius-bottomleft: 12px;
@@ -160,6 +159,7 @@
border: 1px solid #CDCDCD;
vertical-align: top;
text-align: right;
+ white-space: nowrap;
}
table.tablesorter tbody tr.odd td {
background-color:#F0F0F6;
@@ -209,7 +209,7 @@
table.tablesorter tbody tr td.status-yellow { background-color: #FEE772; }
table.tablesorter tbody tr.highlight td {
background-color: #9DADC6 !important;
- cursor: pointer;
+/* cursor: pointer; */
}
/* new clearfix */
Modified: codespeed/pyspeed/media/js/codespeed.js
==============================================================================
--- codespeed/pyspeed/media/js/codespeed.js (original)
+++ codespeed/pyspeed/media/js/codespeed.js Thu Feb 18 22:17:43 2010
@@ -1,7 +1 @@
-// $(function() {
-// $("#navigation ul li").hover(function() {
-// $(this).addClass('highlight');
-// }, function() {
-// $(this).removeClass('highlight');
-// });
-// });
\ No newline at end of file
+//?
\ No newline at end of file
Modified: codespeed/pyspeed/templates/overview.html
==============================================================================
--- codespeed/pyspeed/templates/overview.html (original)
+++ codespeed/pyspeed/templates/overview.html Thu Feb 18 22:17:43 2010
@@ -2,7 +2,7 @@
{% block script %}
<script type="text/javascript" src="/media/js/jquery.tablesorter.min.js"></script>
<script type="text/javascript">
- var config = {"petardo": 2};
+ var config = new Object();
function updateTable() {
var tdwidth = parseInt($("#results thead tr").find("th:eq(5)").css("width"));
@@ -42,6 +42,7 @@
function readConfiguration() {
config["trend"] = $("#trend option:selected").val();
+ config["revision"] = $("#revision option:selected").val();
}
function refreshContent() {
@@ -55,28 +56,18 @@
h2 = parseInt($("#content").css("height")) - 16;
if(h2 < 40) { h2 = 40; }
h = "height:" + h2;
-// alert(h);
h2 = h2/2 + 30;
-// alert(h + " parsed: " + parseInt(h));
var ajax_load = '<div style="text-align:center;' + w + ';' + h + 'px;"><p style="line-height:' + h2 + 'px;">loading...</p></div>';
var loadUrl = "table/";
- $("#content").html(ajax_load).load(loadUrl, $.param(config), function(responseText) { updateTable(); });
-// alert($("#content").css("height"));
+ $("#content").fadeOut("fast").html(ajax_load).fadeIn("fast").load(loadUrl, $.param(config), function(responseText) { updateTable(); });
}
- function onSelectChange() {
- var selected = $("#trend option:selected");
- var output = "";
- if(selected.val() != 0){
- output = "You Selected " + selected.text();
- }
- refreshContent();
- }
-
$(function() {
$("#trend").val({{ trendconfig }});
- $("#trend").change(onSelectChange);
+ $("#trend").change(refreshContent);
+ $("#revision").val({{ selectedrevision }});
+ $("#revision").change(refreshContent);
refreshContent();
});
</script>
@@ -115,7 +106,12 @@
<div class="boxhead"><h2>Options</h2></div>
<div class="boxbody">
<ul>
- <li title="Trend since {{ trendconfig }} tested revisions ago">Trend: <select id="trend"><option value="5">5</option><option value="10">10</option><option value="20">20</option></select>
+ <li title="Trend since {{ trendconfig }} tested revisions ago">Trend:
+ <select id="trend">
+ <option value="5">5</option>
+ <option value="10">10</option>
+ <option value="20">20</option>
+ </select>
</li>
<!-- <li id="output">{{ trendconfig }}</li> -->
</ul>
@@ -123,7 +119,11 @@
</div>
</div>
-<div id="configbar">Results for revision {{ lastrevision }}</div>
+<div id="configbar">Results for revision
+ <select id="revision">{% for rev in lastrevisions %}
+ <option value="{{ rev }}">{{ rev }}</option>{% endfor %}
+ </select>
+</div>
<div id="content">
<table class="tablesorter"></table>
</div>
Modified: codespeed/pyspeed/templates/results.html
==============================================================================
--- codespeed/pyspeed/templates/results.html (original)
+++ codespeed/pyspeed/templates/results.html Thu Feb 18 22:17:43 2010
@@ -1,12 +1,56 @@
{% extends "base.html" %}
+{% block script %}
+<script type="text/javascript" src="/media/js/jquery.tablesorter.min.js"></script>
+<script type="text/javascript">
+ function updateTable() {
+ $("#results").tablesorter({widgets: ['zebra']});
+ $("#results tbody td").hover(function() {
+ $(this).parents('tr').addClass('highlight');
+ }, function() {
+ $(this).parents('tr').removeClass('highlight');
+ });
+ }
+
+ function refreshContent() {
+// readConfiguration();
+ $.ajaxSetup ({
+ cache: false
+ });
+
+ //loading text
+ w = "width:" + $("#content").css("width");
+ h2 = parseInt($("#content").css("height")) - 16;
+ if(h2 < 40) { h2 = 40; }
+ h = "height:" + h2;
+ h2 = h2/2 + 30;
+ var ajax_load = '<div style="text-align:center;' + w + ';' + h + 'px;"><p style="line-height:' + h2 + 'px;">loading...</p></div>';
+
+ var loadUrl = "table/";
+ $("#content").hide();
+ $("#content").html(ajax_load).fadeIn().load(loadUrl, function(responseText) { updateTable(); });
+ }
+
+ $(function() {
+ refreshContent();
+ });
+</script>
+{% endblock %}
+
+{% block navigation %}
+ <div id="tabs">
+ <ul>
+ <li><a href="/overview/">Overview</a></li>
+ <li><a href="#">Timeline</a></li>
+ <li><a href="#" class="current">Results</a></li>
+ </ul>
+ </div>
+{% endblock %}
+
{% block body %}
-<p>Results for pypy revision {{ revision }}</p>
-<table>
- <tr>
- <th>Benchmark</th><th>Result</th><th>Relative to cpython</th>
- </tr>
-{% for result in result_list %} <tr>
- <td>{{ result.benchmark }}</td><td>{{ result.value }}</td><td></td>
- </tr>{% endfor %}
-</table>
+<div id="configbar">List of test results. Filter: none.</div>
+<div id="content">
+<table class="tablesorter"></table>
+</div>
+{% endblock %}
+{% block footer %}
{% endblock %}
Added: codespeed/pyspeed/templates/results_table.html
==============================================================================
--- (empty file)
+++ codespeed/pyspeed/templates/results_table.html Thu Feb 18 22:17:43 2010
@@ -0,0 +1,11 @@
+<table id="results" class="tablesorter">
+ <thead>
+ <tr><th>Revision</th><th>Interpreter</th><th>Compile options</th><th>Benchmark</th><th>Result</th><th>run date</th></tr>
+ </thead>
+ <tbody>
+{% for result in result_list %} <tr>
+ <td>{{ result.revision.number }}</td><td>{{ result.interpreter.name }}</td><td>{{ result.interpreter.coptions }}</td><td>{{ result.benchmark }}</td><td>{{ result.value }}</td><td>{{ result.date }}</td>
+ </tr>
+{% endfor %}
+ </tbody>
+</table>
\ No newline at end of file
More information about the Pypy-commit
mailing list