Skip to content

Commit

Permalink
Render plot units
Browse files Browse the repository at this point in the history
include necessary jqplot plugins
allow timeline to display executables from any default project
  • Loading branch information
tobami committed Apr 25, 2010
1 parent bb22758 commit c8520a2
Show file tree
Hide file tree
Showing 4 changed files with 65 additions and 39 deletions.
48 changes: 19 additions & 29 deletions speedcenter/codespeed/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -76,23 +76,19 @@ def getdefaultenvironment():

def getdefaultexecutable():
default = None
defaultproject = Project.objects.filter(isdefault=True)[0]
if hasattr(settings, 'defaultexecutable') and settings.defaultexecutable != None:
try:
default = Executable.objects.get(id=settings.defaultexecutable)
except Executable.DoesNotExist:
pass
if default == None: default = Executable.objects.filter(project=defaultproject)[0]
if default == None: default = Executable.objects.filter(project__isdefault=True)[0]

return default

def gettimelinedata(request):
if request.method != 'GET':
return HttpResponseNotAllowed('GET')
if request.method != 'GET': return HttpResponseNotAllowed('GET')
data = request.GET

defaultproject = Project.objects.filter(isdefault=True)[0]


timeline_list = {'error': 'None', 'timelines': []}
executables = data['executables'].split(",")
if executables[0] == "":
Expand All @@ -105,7 +101,7 @@ def gettimelinedata(request):
benchmarks = Benchmark.objects.all().order_by('name')
number_of_rev = 15
else:
benchmarks.append(Benchmark.objects.get(id=data['benchmark']))
benchmarks.append(Benchmark.objects.get(name=data['benchmark']))

baseline = getbaselineexecutables()
if len(baseline): baseline = baseline[0]
Expand All @@ -118,7 +114,9 @@ def gettimelinedata(request):
append = False
timeline = {}
timeline['benchmark'] = bench.name
timeline['benchmark_id'] = bench.id
timeline['units'] = bench.units
lessisbetter = bench.lessisbetter and ' (less is better)' or ' (more is better)'
timeline['lessisbetter'] = lessisbetter
timeline['executables'] = {}
results = []
for executable in executables:
Expand All @@ -127,6 +125,7 @@ def gettimelinedata(request):
).filter(
executable=executable
).order_by('-revision__date')[:number_of_rev]
if not len(resultquery): continue
results = []
for res in resultquery:
std_dev = ""
Expand All @@ -135,7 +134,7 @@ def gettimelinedata(request):
[str(res.revision.date), res.value, std_dev, res.revision.commitid]
)
timeline['executables'][executable] = results
if len(results): append = True
append = True
if data['baseline'] == "true" and baseline != None and append:
try:
baselinevalue = Result.objects.get(
Expand All @@ -147,6 +146,7 @@ def gettimelinedata(request):
except Result.DoesNotExist:
timeline['baseline'] = "None"
else:
#use results from last executable to determine start and end revisions
end = results[0][0]
start = results[len(results)-1][0]
timeline['baseline'] = [
Expand All @@ -156,13 +156,12 @@ def gettimelinedata(request):
if append: timeline_list['timelines'].append(timeline)

if not len(timeline_list['timelines']):
response = 'No data found for project "' + defaultproject.name + '"'
response = 'No data found for the selected options'
timeline_list['error'] = response
return HttpResponse(json.dumps( timeline_list ))

def timeline(request):
if request.method != 'GET':
return HttpResponseNotAllowed('GET')
if request.method != 'GET': return HttpResponseNotAllowed('GET')
data = request.GET

# Configuration of default parameters
Expand All @@ -186,26 +185,23 @@ def timeline(request):

defaultbenchmark = "grid"
if 'benchmark' in data and data['benchmark'] != defaultbenchmark:
try:
defaultbenchmark = int(data['benchmark'])
except ValueError:
defaultbenchmark = get_object_or_404(Benchmark, name=data['benchmark']).id
defaultbenchmark = get_object_or_404(Benchmark, name=data['benchmark'])

if 'executables' in data:
checkedexecutables = []
for i in data['executables'].split(","):
selected = Executable.objects.filter(id=int(i))
if len(selected): checkedexecutables.append(selected[0])
else:
checkedexecutables = Executable.objects.filter(project=defaultproject)
checkedexecutables = Executable.objects.filter(project__isdefault=True)

lastrevisions = [10, 50, 200, 1000]
defaultlast = 200
if 'revisions' in data and int(data['revisions']) in lastrevisions:
defaultlast = data['revisions']

# Information for template
executables = Executable.objects.filter(project=defaultproject)
executables = Executable.objects.filter(project__isdefault=True)
benchmarks = Benchmark.objects.all()
hostlist = Environment.objects.all()
return render_to_response('codespeed/timeline.html', {
Expand All @@ -224,13 +220,12 @@ def timeline(request):
def getoverviewtable(request):
data = request.GET

defaultproject = Project.objects.filter(isdefault=True)[0]
executable = int(data["executable"])
executable = Executable.objects.get(id=int(data["executable"]))
trendconfig = int(data["trend"])
temp = data["revision"].split(" ")
date = temp[0] + " " + temp[1]
lastrevisions = Revision.objects.filter(
project=defaultproject
project=executable
).filter(date__lte=date).order_by('-date')[:trendconfig+1]
lastrevision = lastrevisions[0]

Expand Down Expand Up @@ -327,8 +322,7 @@ def getoverviewtable(request):
return render_to_response('codespeed/overview_table.html', locals())

def overview(request):
if request.method != 'GET':
return HttpResponseNotAllowed('GET')
if request.method != 'GET': return HttpResponseNotAllowed('GET')
data = request.GET

# Configuration of default parameters
Expand Down Expand Up @@ -380,7 +374,6 @@ def overview(request):
return render_to_response('codespeed/overview.html', locals())

def displaylogs(request):
defaultproject = Project.objects.filter(isdefault=True)[0]
rev = Revision.objects.get(id=request.GET['revisionid'])
logs = []
logs.append(rev)
Expand Down Expand Up @@ -425,15 +418,12 @@ def getlogsfromsvn(newrev, startrev):

def getcommitlogs(rev):
logs = []
defaultproject = Project.objects.filter(isdefault=True)[0]
if rev.project.repository_type == 'N' or rev.project.repository_path == "":
#Don't create logs
return []

startrev = Revision.objects.filter(
project=defaultproject
).filter(
branch='trunk'
project=rev.project
).filter(date__lt=rev.date).order_by('-date')[:1]
if not len(startrev): startrev = rev
else: startrev = startrev[0]
Expand Down
14 changes: 14 additions & 0 deletions speedcenter/media/js/jqplot/jqplot.canvasAxisLabelRenderer.min.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading

0 comments on commit c8520a2

Please sign in to comment.