Compare commits
2 Commits
481492868b
...
325f753d31
| Author | SHA1 | Date | |
|---|---|---|---|
| 325f753d31 | |||
| b4794ca42f |
@ -1,4 +1,5 @@
|
|||||||
from typing import Callable, Dict, List, Tuple, overload
|
import json
|
||||||
|
from typing import Any, Callable, Dict, List, Tuple, overload
|
||||||
import numpy as np
|
import numpy as np
|
||||||
|
|
||||||
from formula10.domain.domain_model import Model
|
from formula10.domain.domain_model import Model
|
||||||
@ -466,3 +467,25 @@ class PointsModel(Model):
|
|||||||
return True
|
return True
|
||||||
|
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
#
|
||||||
|
# Diagram queries
|
||||||
|
#
|
||||||
|
|
||||||
|
def cumulative_points_data(self) -> str:
|
||||||
|
data: Dict[Any, Any] = dict()
|
||||||
|
|
||||||
|
data["labels"] = [0] + [
|
||||||
|
race.name for race in sorted(self.all_races(), key=lambda race: race.number)
|
||||||
|
]
|
||||||
|
|
||||||
|
data["datasets"] = [
|
||||||
|
{
|
||||||
|
"data": [0] + self.points_per_step_cumulative()[user.name],
|
||||||
|
"label": user.name,
|
||||||
|
"fill": False
|
||||||
|
}
|
||||||
|
for user in self.all_users()
|
||||||
|
]
|
||||||
|
|
||||||
|
return json.dumps(data)
|
||||||
|
|||||||
@ -176,8 +176,11 @@
|
|||||||
<link href="../static/style/bootstrap.css" rel="stylesheet">
|
<link href="../static/style/bootstrap.css" rel="stylesheet">
|
||||||
<script src="../static/script/bootstrap.bundle.js"></script>
|
<script src="../static/script/bootstrap.bundle.js"></script>
|
||||||
|
|
||||||
<link href="../static/style/grid.css" rel="stylesheet">
|
<!-- ChartJS -->
|
||||||
|
<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
|
||||||
|
|
||||||
|
<!-- Custom -->
|
||||||
|
<link href="../static/style/grid.css" rel="stylesheet">
|
||||||
<script defer>
|
<script defer>
|
||||||
{# Initialize Bootstrap Tooltips #}
|
{# Initialize Bootstrap Tooltips #}
|
||||||
let tooltipTriggerList = document.querySelectorAll("[data-bs-toggle='tooltip']")
|
let tooltipTriggerList = document.querySelectorAll("[data-bs-toggle='tooltip']")
|
||||||
|
|||||||
@ -55,13 +55,43 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{# <div class="card mt-2">#}
|
<div class="card mt-2">
|
||||||
{# <div class="card-body">#}
|
<div class="card-header">
|
||||||
{# <h5 class="card-title">History</h5>#}
|
History
|
||||||
|
</div>
|
||||||
|
|
||||||
{# Line chart of point history with a line per user #}
|
<div class="card-body">
|
||||||
{# </div>#}
|
<div class="chart-container" style="width: 100%; height: 40vh;">
|
||||||
{# </div>#}
|
<canvas id="line-chart"></canvas>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
function cumulative_points(data) {
|
||||||
|
return new Chart(document.getElementById("line-chart"), {
|
||||||
|
type: 'line',
|
||||||
|
data: data,
|
||||||
|
options: {
|
||||||
|
title: {
|
||||||
|
display: true,
|
||||||
|
text: 'History'
|
||||||
|
},
|
||||||
|
{#tension: 0,#}
|
||||||
|
responsive: true,
|
||||||
|
maintainAspectRatio: false,
|
||||||
|
scales: {
|
||||||
|
y: {
|
||||||
|
min: 0,
|
||||||
|
{#max: 100#}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
cumulative_points({{ points.cumulative_points_data() | safe }})
|
||||||
|
</script>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
{# <div class="card mt-2">#}
|
{# <div class="card mt-2">#}
|
||||||
{# <div class="card-body">#}
|
{# <div class="card-body">#}
|
||||||
|
|||||||
Reference in New Issue
Block a user