Private
Public Access
1
0

more progress on gauges (loading, initializing)

This commit is contained in:
Sander Roosendaal
2019-12-11 00:21:57 +01:00
parent 557a7fa6e2
commit 93bf91beb5
4 changed files with 122 additions and 7 deletions

View File

@@ -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 %}

View File

@@ -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)

View File

@@ -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',

View File

@@ -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) {}
} }