more progress on gauges (loading, initializing)
This commit is contained in:
@@ -389,6 +389,11 @@ function copyText() {
|
|||||||
<div id="forcepower_power"></div>
|
<div id="forcepower_power"></div>
|
||||||
</li>
|
</li>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
{% if 'athlete' in metricsgroups %}
|
||||||
|
<li class="grid_1">
|
||||||
|
<div id="athlete_hr"></div>
|
||||||
|
</li>
|
||||||
|
{% endif %}
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
<li class="grid_2">
|
<li class="grid_2">
|
||||||
@@ -404,12 +409,29 @@ function copyText() {
|
|||||||
|
|
||||||
<script>
|
<script>
|
||||||
$(document).ready( function() {
|
$(document).ready( function() {
|
||||||
|
$(window).load(function() {
|
||||||
|
// initialize data fields
|
||||||
|
{% for id, metric in metrics.items %}
|
||||||
|
{{ id }}_now = {{ id }}_values[0];
|
||||||
|
document.getElementById("{{ id }}").innerHTML = {{ id }}_now;
|
||||||
|
document.getElementById("{{ id }}").className = 'bold';
|
||||||
|
{% endfor %}
|
||||||
|
document.getElementById("time").innerHTML = Math.round(videotime);
|
||||||
|
var slider = document.getElementById("myRange");
|
||||||
|
document.getElementById("datatime").innerHTML = slider.value;
|
||||||
|
|
||||||
// gauge settings
|
// gauge settings
|
||||||
{% if workout.workouttype != 'water' %}
|
{% if workout.workouttype != 'water' %}
|
||||||
speedoptions.max = 7;
|
speedoptions.max = 7;
|
||||||
speedoptions.redTo = 7;
|
speedoptions.redTo = 7;
|
||||||
speedoptions.majorTicks = ['0','1','2','3','4','5','6','7'];
|
speedoptions.majorTicks = ['0','1','2','3','4','5','6','7'];
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
|
{% if 'basic' in metricsgroups %}
|
||||||
|
spm_now = spm_values[0];
|
||||||
|
boatspeed_now = boatspeed_values[0];
|
||||||
|
set_basic();
|
||||||
|
{% endif %}
|
||||||
{% if 'forcepower' in metricsgroups %}
|
{% if 'forcepower' in metricsgroups %}
|
||||||
poweroptions.max = {{ rower.pw_an|add:100|round100 }};
|
poweroptions.max = {{ rower.pw_an|add:100|round100 }};
|
||||||
poweroptions.greenFrom = {{ rower.pw_ut2 }};
|
poweroptions.greenFrom = {{ rower.pw_ut2 }};
|
||||||
@@ -417,7 +439,32 @@ function copyText() {
|
|||||||
poweroptions.yellowFrom = {{ rower.pw_at }};
|
poweroptions.yellowFrom = {{ rower.pw_at }};
|
||||||
poweroptions.yellowTo = {{ rower.pw_an }};
|
poweroptions.yellowTo = {{ rower.pw_an }};
|
||||||
poweroptions.redFrom = {{ rower.pw_an }};
|
poweroptions.redFrom = {{ rower.pw_an }};
|
||||||
poweroptions.redTo = {{ rower.pw_an|add:200|round100 }};
|
poweroptions.redTo = {{ rower.pw_an|add:100|round100 }};
|
||||||
|
poweroptions.majorTicks = {{ rower.pw_an|add:100|round100|majorticks }};
|
||||||
|
{% if workout.workouttype == 'water' %}
|
||||||
|
poweroptions.max = {{ rower.pw_an|waterpower:rower|add:100|round100 }}
|
||||||
|
poweroptions.greenFrom = {{ rower.pw_ut2|waterpower:rower }};
|
||||||
|
poweroptions.greenTo = {{ rower.pw_at|waterpower:rower }};
|
||||||
|
poweroptions.yellowFrom = {{ rower.pw_at|waterpower:rower }};
|
||||||
|
poweroptions.yellowTo = {{ rower.pw_an|waterpower:rower }};
|
||||||
|
poweroptions.redFrom = {{ rower.pw_an|waterpower:rower }};
|
||||||
|
poweroptions.redTo = {{ rower.pw_an|waterpower:rower|add:100|round100 }};
|
||||||
|
poweroptions.majorTicks = {{ rower.pw_an|waterpower:rower|add:100|round100|majorticks }};
|
||||||
|
{% endif %}
|
||||||
|
power_now = power_values[0];
|
||||||
|
set_forcepower();
|
||||||
|
{% endif %}
|
||||||
|
{% if 'athlete' in metricsgroups %}
|
||||||
|
hroptions.max = {{ rower.max|round20 }}
|
||||||
|
hroptions.greenFrom = {{ rower.ut2 }}
|
||||||
|
hroptions.greenTo = {{ rower.at }}
|
||||||
|
hroptions.yellowFrom = {{ rower.at }}
|
||||||
|
hroptions.yellowTo = {{ rower.an }}
|
||||||
|
hroptions.redFrom = {{ rower.an }}
|
||||||
|
hroptions.redTo = {{ rower.max }}
|
||||||
|
hroptions.majorTicks = {{ rower.max|round20|majorticks }}
|
||||||
|
hr_now = hr_values[0];
|
||||||
|
set_athlete();
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
// cookie reader
|
// cookie reader
|
||||||
@@ -724,6 +771,7 @@ dataplay.onclick = function() {
|
|||||||
// }
|
// }
|
||||||
|
|
||||||
});
|
});
|
||||||
|
});
|
||||||
</script>
|
</script>
|
||||||
{% endlanguage %}
|
{% endlanguage %}
|
||||||
|
|
||||||
|
|||||||
@@ -121,7 +121,26 @@ def is_coach(rower,rowers):
|
|||||||
|
|
||||||
return True
|
return True
|
||||||
|
|
||||||
|
@register.filter
|
||||||
|
def waterpower(x,rower):
|
||||||
|
return int(x*(100-rower.otwslack)/100.)
|
||||||
|
|
||||||
|
@register.filter
|
||||||
|
def round20(x):
|
||||||
|
return int(20.*(1+int(int(x)/20)))
|
||||||
|
|
||||||
|
@register.filter
|
||||||
|
def round100(x):
|
||||||
|
return int(100.*(1+int(int(x)/100)))
|
||||||
|
|
||||||
|
@register.filter
|
||||||
|
def majorticks(maxval):
|
||||||
|
ticks = range(1+int(maxval/100.))
|
||||||
|
newticks =[]
|
||||||
|
for t in ticks:
|
||||||
|
newticks.append(t*100)
|
||||||
|
|
||||||
|
return newticks
|
||||||
|
|
||||||
def strfdeltah(tdelta):
|
def strfdeltah(tdelta):
|
||||||
hours, rest = divmod(tdelta.seconds,3600)
|
hours, rest = divmod(tdelta.seconds,3600)
|
||||||
|
|||||||
@@ -84,7 +84,7 @@ MIDDLEWARE = [
|
|||||||
'django.middleware.common.CommonMiddleware',
|
'django.middleware.common.CommonMiddleware',
|
||||||
'django.middleware.common.BrokenLinkEmailsMiddleware',
|
'django.middleware.common.BrokenLinkEmailsMiddleware',
|
||||||
'django.middleware.gzip.GZipMiddleware',
|
'django.middleware.gzip.GZipMiddleware',
|
||||||
'htmlmin.middleware.HtmlMinifyMiddleware',
|
# 'htmlmin.middleware.HtmlMinifyMiddleware',
|
||||||
# 'htmlmin.middleware.MarkRequestMiddleware',
|
# 'htmlmin.middleware.MarkRequestMiddleware',
|
||||||
'django.middleware.csrf.CsrfViewMiddleware',
|
'django.middleware.csrf.CsrfViewMiddleware',
|
||||||
'django.middleware.security.SecurityMiddleware',
|
'django.middleware.security.SecurityMiddleware',
|
||||||
|
|||||||
@@ -2,15 +2,18 @@ google.charts.load('current', {'packages':['gauge']});
|
|||||||
google.charts.setOnLoadCallback(drawSPMChart);
|
google.charts.setOnLoadCallback(drawSPMChart);
|
||||||
google.charts.setOnLoadCallback(drawSpeedChart);
|
google.charts.setOnLoadCallback(drawSpeedChart);
|
||||||
google.charts.setOnLoadCallback(drawPowerChart);
|
google.charts.setOnLoadCallback(drawPowerChart);
|
||||||
|
google.charts.setOnLoadCallback(drawHRChart);
|
||||||
|
|
||||||
|
console.log('initializing data');
|
||||||
|
|
||||||
var spmdata = [
|
var spmdata = [
|
||||||
['Label', 'Value'],
|
['Label', 'Value'],
|
||||||
['SPM', 21.0],
|
['SPM', 21],
|
||||||
];
|
];
|
||||||
|
|
||||||
var speeddata = [
|
var speeddata = [
|
||||||
['Label', 'Value'],
|
['Label', 'Value'],
|
||||||
['V m/s', 0.0],
|
['V m/s', 0],
|
||||||
];
|
];
|
||||||
|
|
||||||
var powerdata = [
|
var powerdata = [
|
||||||
@@ -18,6 +21,21 @@ var powerdata = [
|
|||||||
['PWR',150],
|
['PWR',150],
|
||||||
]
|
]
|
||||||
|
|
||||||
|
var hrdata = [
|
||||||
|
['Label','Value'],
|
||||||
|
['HR',110],
|
||||||
|
]
|
||||||
|
|
||||||
|
var hroptions = {
|
||||||
|
min: 100, max: 200,
|
||||||
|
width: 400, height: 120,
|
||||||
|
greenFrom: 100, greenTo: 135,
|
||||||
|
yellowFrom: 135,yellowTo: 157,
|
||||||
|
redFrom: 157, redTo: 200,
|
||||||
|
minorTicks: 5
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
var spmoptions = {
|
var spmoptions = {
|
||||||
min:0, max: 50,
|
min:0, max: 50,
|
||||||
width: 400, height: 120,
|
width: 400, height: 120,
|
||||||
@@ -58,13 +76,16 @@ var datapower = null;
|
|||||||
|
|
||||||
// SPM chart
|
// SPM chart
|
||||||
function drawSPMChart() {
|
function drawSPMChart() {
|
||||||
|
console.log('first draw SPM chart');
|
||||||
dataspm = new google.visualization.arrayToDataTable(spmdata);
|
dataspm = new google.visualization.arrayToDataTable(spmdata);
|
||||||
|
|
||||||
|
|
||||||
|
try {
|
||||||
spmchart = new google.visualization.Gauge(document.getElementById('basic_spm'));
|
spmchart = new google.visualization.Gauge(document.getElementById('basic_spm'));
|
||||||
|
spmchart.draw(dataspm,spmoptions);
|
||||||
|
} catch(err) {
|
||||||
|
|
||||||
|
}
|
||||||
// spmchart.draw(data, spmoptions);
|
// spmchart.draw(data, spmoptions);
|
||||||
|
|
||||||
// Define set_basic(values) so that gauges can be set by metricsgroups
|
// Define set_basic(values) so that gauges can be set by metricsgroups
|
||||||
@@ -75,13 +96,35 @@ function drawSPMChart() {
|
|||||||
function drawSpeedChart() {
|
function drawSpeedChart() {
|
||||||
dataspeed = new google.visualization.arrayToDataTable(speeddata);
|
dataspeed = new google.visualization.arrayToDataTable(speeddata);
|
||||||
|
|
||||||
|
try {
|
||||||
speedchart = new google.visualization.Gauge(document.getElementById('basic_boatspeed'));
|
speedchart = new google.visualization.Gauge(document.getElementById('basic_boatspeed'));
|
||||||
|
speedchart.draw(dataspeed,speedoptions);
|
||||||
|
} catch(err) {
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Power chart
|
// Power chart
|
||||||
function drawPowerChart() {
|
function drawPowerChart() {
|
||||||
datapower = new google.visualization.arrayToDataTable(powerdata);
|
datapower = new google.visualization.arrayToDataTable(powerdata);
|
||||||
|
try {
|
||||||
powerchart = new google.visualization.Gauge(document.getElementById('forcepower_power'));
|
powerchart = new google.visualization.Gauge(document.getElementById('forcepower_power'));
|
||||||
|
powerchart.draw(datapower,poweroptions)
|
||||||
|
} catch(err) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// Power chart
|
||||||
|
function drawHRChart() {
|
||||||
|
datahr = new google.visualization.arrayToDataTable(hrdata);
|
||||||
|
try {
|
||||||
|
hrchart = new google.visualization.Gauge(document.getElementById('athlete_hr'));
|
||||||
|
hrchart.draw(datahr,hroptions);
|
||||||
|
} catch(err) {
|
||||||
|
console.log('no hr div');
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -94,7 +137,10 @@ function set_basic() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function set_athlete() {
|
function set_athlete() {
|
||||||
|
datahr.setCell(0,1,hr_now);
|
||||||
|
try {
|
||||||
|
hrchart.draw(datahr,hroptions);
|
||||||
|
} catch(err) {}
|
||||||
}
|
}
|
||||||
|
|
||||||
function set_stroke() {
|
function set_stroke() {
|
||||||
@@ -103,5 +149,7 @@ function set_stroke() {
|
|||||||
|
|
||||||
function set_forcepower() {
|
function set_forcepower() {
|
||||||
datapower.setCell(0,1,power_now);
|
datapower.setCell(0,1,power_now);
|
||||||
|
try {
|
||||||
powerchart.draw(datapower,poweroptions);
|
powerchart.draw(datapower,poweroptions);
|
||||||
|
} catch(err) {}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user