Private
Public Access
1
0

plan chart

This commit is contained in:
2024-04-13 20:09:37 +02:00
parent 5d8968fc5f
commit 21eca6c7d0
4 changed files with 20 additions and 19 deletions

View File

@@ -354,6 +354,17 @@ def interactive_boxchart(datadf, fieldname, extratitle='',
def interactive_planchart(data, startdate, enddate):
# data = data.melt(id_vars=['startdate'], value_vars=['executed', 'planned'])
data = data.with_columns((pl.col("startdate").apply(lambda x: x.strftime("%Y-%m-%d"))).alias("startdate"))
data_dict = data.to_dicts()
chart_data = {
'data': data_dict,
}
script, div = get_chart("/plan", chart_data, debug=False)
return script, div
hv.extension('bokeh')
yaxmaximum = data['executed'].max()

View File

@@ -25,6 +25,7 @@ from rowingdata import rower as rrower
from rowingdata import rowingdata as rrdata
import arrow
import pandas as pd
import polars as pl
import json
# Python
@@ -203,16 +204,8 @@ def get_execution_report(rower, startdate, enddate, plan=None):
startdate__gte=enddate)
else: # pragma: no cover
plans = TrainingPlan.objects.filter(rowers__in=[rower])
#plans2 = TrainingPlan.objects.filter(
# enddate__lte=enddate, startdate__lte=enddate, rowers__in=[rower])
#plans = plans | plans2
#plans = plans.exclude(status=False).order_by("-enddate")
if not plans:
# make week cycles here
# get monday before startdate
micros = []
else:
sorted_plans = sorted(plans, key= lambda t: t.overlap(startdate,enddate))
@@ -313,7 +306,7 @@ def get_execution_report(rower, startdate, enddate, plan=None):
planned += [plannedscore]
executed += [actualscore]
data = pd.DataFrame({
data = pl.DataFrame({
'startdate': startdates,
'planned': planned,
'executed': executed,

View File

@@ -6,25 +6,22 @@
{% block main %}
<script src="https://cdn.pydata.org/bokeh/release/bokeh-3.1.1.min.js"></script>
<script src="https://cdn.pydata.org/bokeh/release/bokeh-widgets-3.1.1.min.js"></script>
<script async="true" type="text/javascript">
Bokeh.set_log_level("info");
</script>
<script src="https://code.jquery.com/jquery-1.9.1.min.js"></script>
<h1>Training Plan - {{ plan.name }}</h1>
{{ the_script | safe }}
<ul class="main-content">
<li class="grid_4">
<div id="theplot" class="flexplot">
{{ the_div|safe }}
</div>
{{ the_div|safe }}
</li>
</ul>
<script src="https://d3js.org/d3.v6.js"></script>
{{ the_script | safe }}
{% endblock %}
{% block scripts %}

View File

@@ -3569,7 +3569,7 @@ def rower_trainingplan_execution_view(request,
else: # pragma: no cover
data, message = get_execution_report(r, startdate, enddate)
if not data.empty:
if not data.is_empty():
script, div = interactive_planchart(data, startdate, enddate)
else: # pragma: no cover
script = ''