Skip to content

Commit

Permalink
Handle better the cases when there is no data
Browse files Browse the repository at this point in the history
  • Loading branch information
tobami committed Aug 24, 2010
1 parent cd39230 commit 7a594b8
Show file tree
Hide file tree
Showing 2 changed files with 42 additions and 16 deletions.
42 changes: 26 additions & 16 deletions speedcenter/codespeed/views.py
Expand Up @@ -8,6 +8,21 @@
import json
from itertools import chain

def no_environment_error():
return render_to_response('nodata.html', {
'message': 'You need to configure at least one Environment. Please go to the <a href="../admin/codespeed/environment/">admin interface</a>'
})

def no_default_project_error():
return render_to_response('nodata.html', {
'message': 'You need to configure at least one one Project as default (checked "Track changes" field).<br />Please go to the <a href="../admin/codespeed/project/">admin interface</a>'
})

def no_executables_error():
return render_to_response('nodata.html', {
'message': 'There needs to be at least one executable'
})

def getbaselineexecutables():
baseline = [{'key': "none", 'name': "None", 'executable': "none", 'revision': "none"}]
revs = Revision.objects.exclude(tag="")
Expand Down Expand Up @@ -129,8 +144,7 @@ def comparison(request):

# Configuration of default parameters
defaultenvironment = getdefaultenvironment()
if not defaultenvironment:
return HttpResponse("You need to configure at least one Environment")
if not defaultenvironment: return no_environment_error()
if 'env' in data:
try:
defaultenvironment = Environment.objects.get(name=data['env'])
Expand All @@ -149,8 +163,10 @@ def comparison(request):
if not checkedenviros:
checkedenviros = enviros

if not len(Project.objects.all()):
return HttpResponse('You need to configure at least one Project as default (checked "Track changes" field)')
if not len(Project.objects.all()): return no_default_project_error()

defaultexecutable = getdefaultexecutable()
if not defaultexecutable: return no_executables_error()

executables, exekeys = getcomparisonexes()
checkedexecutables = []
Expand Down Expand Up @@ -315,17 +331,15 @@ def timeline(request):

# Configuration of default parameters
defaultenvironment = getdefaultenvironment()
if not defaultenvironment:
return HttpResponse("You need to configure at least one Environment")
if not defaultenvironment: return no_environment_error()
if 'env' in data:
try:
defaultenvironment = Environment.objects.get(name=data['env'])
except Environment.DoesNotExist:
pass

defaultproject = Project.objects.filter(track=True)
if not len(defaultproject):
return HttpResponse('You need to configure at least one Project as default (checked "Track changes" field)')
if not len(defaultproject): return no_default_project_error()
else: defaultproject = defaultproject[0]

checkedexecutables = []
Expand All @@ -339,8 +353,7 @@ def timeline(request):
if not checkedexecutables:
checkedexecutables = Executable.objects.filter(project__track=True)

if not len(checkedexecutables):
return HttpResponse("There needs to be at least one executable")
if not len(checkedexecutables): return no_executables_error()

baseline = getbaselineexecutables()
defaultbaseline = None
Expand Down Expand Up @@ -539,8 +552,7 @@ def changes(request):
defaulttrend = int(data['tre'])

defaultenvironment = getdefaultenvironment()
if not defaultenvironment:
return HttpResponse("You need to configure at least one Environment")
if not defaultenvironment: return no_environment_error()
if 'env' in data:
try:
defaultenvironment = Environment.objects.get(name=data['env'])
Expand All @@ -549,13 +561,11 @@ def changes(request):
environments = Environment.objects.all()

defaultproject = Project.objects.filter(track=True)
if not len(defaultproject):
return HttpResponse('You need to configure at least one Project as default (checked "Track changes" field)')
if not len(defaultproject): return no_default_project_error()
else: defaultproject = defaultproject[0]

defaultexecutable = getdefaultexecutable()
if not defaultexecutable:
return HttpResponse("There needs to be at least one executable")
if not defaultexecutable: return no_executables_error()

if "exe" in data:
try:
Expand Down
16 changes: 16 additions & 0 deletions speedcenter/templates/nodata.html
@@ -0,0 +1,16 @@
{% extends "base.html" %}
{% block body %}
{% block script %}
<script type="text/javascript">
$(function() {
$("#changes").click(function () { window.location="/changes/"; });
$("#timeline").click(function () { window.location="/timeline/"; });
$("#comparison").click(function () { window.location="/comparison/"; });
});
</script>
{% endblock %}

<div id="presentation_wrapper">
<p>{{ message|safe }}</p>
</div>
{% endblock %}

0 comments on commit 7a594b8

Please sign in to comment.