-
-
-
-
History for {{ rower.user.first_name }} {{ rower.user.last_name }}
@@ -62,7 +74,9 @@
-
-
{{ totalscript|safe }}{{ totaldiv|safe }}
+
+ {{ totaldiv|safe }}
+
{% for ddict in typedicts %}
@@ -103,6 +117,30 @@
{% endblock %}
+{% block scripts %}
+
+
+
+{% endblock %}
+
{% block sidebar %}
diff --git a/rowers/views/analysisviews.py b/rowers/views/analysisviews.py
index eb065ac4..84e18a4f 100644
--- a/rowers/views/analysisviews.py
+++ b/rowers/views/analysisviews.py
@@ -4747,8 +4747,11 @@ def history_view(request,userid=0):
# interactive hr pie chart
+ totalscript = ''
+ totaldiv = get_call()
if typeselect == 'All':
- totalscript,totaldiv = interactive_hr_piechart(df,r,'All Workouts')
+ pass
+ #totalscript,totaldiv = interactive_hr_piechart(df,r,'All Workouts')
else:
a_workouts = g_workouts.filter(workouttype=typeselect)
ddf = getsmallrowdata_db(columns,ids=[w.id for w in a_workouts])
@@ -4758,7 +4761,7 @@ def history_view(request,userid=0):
pass
ddf = dataprep.clean_df_stats(ddf,workstrokesonly=True,
ignoreadvanced=True)
- totalscript, totaldiv = interactive_hr_piechart(ddf,r,mytypes.workouttypes_ordered[typeselect])
+ #totalscript, totaldiv = interactive_hr_piechart(ddf,r,mytypes.workouttypes_ordered[typeselect])
# interactive power pie chart
From 4711a9f8602f4317126cdba51c34761bd2f994d8 Mon Sep 17 00:00:00 2001
From: Sander Roosendaal
Date: Wed, 6 May 2020 21:56:19 +0200
Subject: [PATCH 4/5] totaldisct in ajax call
---
rowers/templates/history.html | 18 +++++---
rowers/views/analysisviews.py | 82 ++++++++++++++++++++++++++---------
2 files changed, 72 insertions(+), 28 deletions(-)
diff --git a/rowers/templates/history.html b/rowers/templates/history.html
index 8f84dcfd..0b775cdb 100644
--- a/rowers/templates/history.html
+++ b/rowers/templates/history.html
@@ -58,16 +58,16 @@
Number of workouts | {{ totalsdict|lookup:"nrworkouts"}} |
- | Average heart rate | {{ totalsdict|lookup:"hrmean"}} bpm |
+ Average heart rate | bpm |
- | Maximum heart rate | {{ totalsdict|lookup:"hrmax"}} bpm |
+ Maximum heart rate | bpm |
- | Average power | {{ totalsdict|lookup:"powermean"}} W |
+ Average power | W |
- | Maximum power | {{ totalsdict|lookup:"powermax"}} W |
+ Maximum power | W |
@@ -125,17 +125,21 @@
diff --git a/rowers/views/analysisviews.py b/rowers/views/analysisviews.py
index 84e18a4f..98f4d145 100644
--- a/rowers/views/analysisviews.py
+++ b/rowers/views/analysisviews.py
@@ -4697,14 +4697,6 @@ def history_view(request,userid=0):
columns = ['hr','power','time']
- df = getsmallrowdata_db(columns,ids=ids)
- try:
- df['deltat'] = df['time'].diff()
- except KeyError:
- pass
- df = dataprep.clean_df_stats(df,workstrokesonly=True,
- ignoreadvanced=True)
-
totalmeters,totalhours, totalminutes = get_totals(g_workouts)
totalminutes = "{totalminutes:02d}".format(totalminutes=totalminutes)
@@ -4740,7 +4732,7 @@ def history_view(request,userid=0):
ddict['hrmean'] = int(wavg(ddf,'hr','deltat'))
ddict['hrmax'] = ddf['hr'].max().astype(int)
- ddict['powermean'] = int(wavg(df,'power','deltat'))
+ ddict['powermean'] = int(wavg(ddf,'power','deltat'))
ddict['powermax'] = ddf['power'].max().astype(int)
ddict['nrworkouts'] = a_workouts.count()
listofdicts.append(ddict)
@@ -4772,18 +4764,7 @@ def history_view(request,userid=0):
)
totalsdict['distance'] = totalmeters
- try:
- totalsdict['powermean'] = int(wavg(df,'power','deltat'))
- totalsdict['powermax'] = df['power'].max().astype(int)
- except KeyError:
- totalsdict['powermean'] = 0
- totalsdict['powermax'] = 0
- try:
- totalsdict['hrmean'] = int(wavg(df,'hr','deltat'))
- totalsdict['hrmax'] = df['hr'].max().astype(int)
- except KeyError:
- totalsdict['hrmean'] = 0
- totalsdict['hrmax'] = 0
+
totalsdict['nrworkouts'] = g_workouts.count()
@@ -4874,7 +4855,64 @@ def history_view_data(request,userid=0):
df = dataprep.clean_df_stats(df,workstrokesonly=True,
ignoreadvanced=True)
+ totalmeters,totalhours, totalminutes = get_totals(g_workouts)
+ totalminutes = "{totalminutes:02d}".format(totalminutes=totalminutes)
+ # meters, duration per workout type
+ wtypes = list(set([w.workouttype for w in g_workouts]))
+
+ typechoices = [("All","All")]
+ for wtype in wtypes:
+ typechoices.append((wtype,mytypes.workouttypes_ordered[wtype]))
+
+ listofdicts = []
+
+ for wtype in wtypes:
+ a_workouts = g_workouts.filter(workouttype=wtype)
+ wmeters, whours, wminutes = get_totals(a_workouts)
+ ddict = {}
+ ddict['wtype'] = mytypes.workouttypes_ordered[wtype]
+ ddict['distance'] = wmeters
+ ddict['duration'] = "{whours}:{wminutes:02d}".format(
+ whours=whours,
+ wminutes=wminutes
+ )
+ ddf = getsmallrowdata_db(columns,ids=[w.id for w in a_workouts])
+ try:
+ ddf['deltat'] = ddf['time'].diff()
+ except KeyError:
+ pass
+ ddf = dataprep.clean_df_stats(ddf,workstrokesonly=True,
+ ignoreadvanced=True)
+
+ ddict['hrmean'] = int(wavg(ddf,'hr','deltat'))
+ ddict['hrmax'] = ddf['hr'].max().astype(int)
+ ddict['powermean'] = int(wavg(df,'power','deltat'))
+ ddict['powermax'] = ddf['power'].max().astype(int)
+ ddict['nrworkouts'] = a_workouts.count()
+ listofdicts.append(ddict)
+
+ totalsdict = {}
+ totalsdict['duration'] = "{totalhours}:{totalminutes}".format(
+ totalhours=totalhours,
+ totalminutes=totalminutes
+ )
+
+ totalsdict['distance'] = totalmeters
+ try:
+ totalsdict['powermean'] = int(wavg(df,'power','deltat'))
+ totalsdict['powermax'] = df['power'].max().astype(int)
+ except KeyError:
+ totalsdict['powermean'] = 0
+ totalsdict['powermax'] = 0
+ try:
+ totalsdict['hrmean'] = int(wavg(df,'hr','deltat'))
+ totalsdict['hrmax'] = df['hr'].max().astype(int)
+ except KeyError:
+ totalsdict['hrmean'] = 0
+ totalsdict['hrmax'] = 0
+
+ totalsdict['nrworkouts'] = g_workouts.count()
# interactive hr pie chart
@@ -4894,4 +4932,6 @@ def history_view_data(request,userid=0):
return JSONResponse({
'script':totalscript,
'div':totaldiv,
+ 'totalsdict':totalsdict,
+ 'listofdicts':listofdicts,
})
From 6c1d176c40289044614453a23f9655ddfc633629 Mon Sep 17 00:00:00 2001
From: Sander Roosendaal
Date: Wed, 6 May 2020 22:13:30 +0200
Subject: [PATCH 5/5] all dicts through ajax
---
rowers/templates/history.html | 19 +++++++++++++++----
rowers/views/analysisviews.py | 31 +++----------------------------
2 files changed, 18 insertions(+), 32 deletions(-)
diff --git a/rowers/templates/history.html b/rowers/templates/history.html
index 0b775cdb..c7507a58 100644
--- a/rowers/templates/history.html
+++ b/rowers/templates/history.html
@@ -96,16 +96,16 @@
Number of workouts | {{ ddict|lookup:"nrworkouts"}} |
- | Average heart rate | {{ ddict|lookup:"hrmean"}} bpm |
+ Average heart rate | bpm |
- | Maximum heart rate | {{ ddict|lookup:"hrmax"}} bpm |
+ Maximum heart rate | bpm |
- | Average power | {{ ddict|lookup:"powermean"}} W |
+ Average power | W |
- | Maximum power | {{ ddict|lookup:"powermax"}} W |
+ Maximum power | W |
@@ -131,6 +131,7 @@
var script = json.script;
var div = json.div;
var totalsdict = json.totalsdict
+ var listofdicts = json.listofdicts
$("#id_sitready").remove();
$("#id_chart").append(div);
console.log(div);
@@ -140,6 +141,16 @@
$("#total_maxhr").append(totalsdict.hrmax);
$("#total_power").append(totalsdict.powermean);
$("#total_maxpower").append(totalsdict.powermax);
+ listofdicts.forEach(function(item){
+ var id = "#"+item.id+"_hr";
+ $(id).append(item.hrmean);
+ id = "#"+item.id+"_hrmax";
+ $(id).append(item.hrmax);
+ id = "#"+item.id+"_power";
+ $(id).append(item.powermean);
+ id = "#"+item.id+"_powermax";
+ $(id).append(item.powermax);
+ })
});
});
diff --git a/rowers/views/analysisviews.py b/rowers/views/analysisviews.py
index 98f4d145..d2293e28 100644
--- a/rowers/views/analysisviews.py
+++ b/rowers/views/analysisviews.py
@@ -4716,24 +4716,13 @@ def history_view(request,userid=0):
a_workouts = g_workouts.filter(workouttype=wtype)
wmeters, whours, wminutes = get_totals(a_workouts)
ddict = {}
+ ddict['id'] = wtype
ddict['wtype'] = mytypes.workouttypes_ordered[wtype]
ddict['distance'] = wmeters
ddict['duration'] = "{whours}:{wminutes:02d}".format(
whours=whours,
wminutes=wminutes
)
- ddf = getsmallrowdata_db(columns,ids=[w.id for w in a_workouts])
- try:
- ddf['deltat'] = ddf['time'].diff()
- except KeyError:
- pass
- ddf = dataprep.clean_df_stats(ddf,workstrokesonly=True,
- ignoreadvanced=True)
-
- ddict['hrmean'] = int(wavg(ddf,'hr','deltat'))
- ddict['hrmax'] = ddf['hr'].max().astype(int)
- ddict['powermean'] = int(wavg(ddf,'power','deltat'))
- ddict['powermax'] = ddf['power'].max().astype(int)
ddict['nrworkouts'] = a_workouts.count()
listofdicts.append(ddict)
@@ -4741,22 +4730,7 @@ def history_view(request,userid=0):
# interactive hr pie chart
totalscript = ''
totaldiv = get_call()
- if typeselect == 'All':
- pass
- #totalscript,totaldiv = interactive_hr_piechart(df,r,'All Workouts')
- else:
- a_workouts = g_workouts.filter(workouttype=typeselect)
- ddf = getsmallrowdata_db(columns,ids=[w.id for w in a_workouts])
- try:
- ddf['deltat'] = ddf['time'].diff()
- except KeyError:
- pass
- ddf = dataprep.clean_df_stats(ddf,workstrokesonly=True,
- ignoreadvanced=True)
- #totalscript, totaldiv = interactive_hr_piechart(ddf,r,mytypes.workouttypes_ordered[typeselect])
-
- # interactive power pie chart
-
+
totalsdict = {}
totalsdict['duration'] = "{totalhours}:{totalminutes}".format(
totalhours=totalhours,
@@ -4872,6 +4846,7 @@ def history_view_data(request,userid=0):
wmeters, whours, wminutes = get_totals(a_workouts)
ddict = {}
ddict['wtype'] = mytypes.workouttypes_ordered[wtype]
+ ddict['id'] = wtype
ddict['distance'] = wmeters
ddict['duration'] = "{whours}:{wminutes:02d}".format(
whours=whours,