Add same graphs to person list view
This commit is contained in:
9
db.py
9
db.py
@@ -7,7 +7,7 @@ from urllib.parse import urlparse
|
|||||||
from flask import g
|
from flask import g
|
||||||
|
|
||||||
|
|
||||||
from utils import get_all_exercises_from_topsets, get_exercise_graph_model, get_stats_from_topsets, get_topsets_for_person, get_workouts
|
from utils import count_prs_over_time, get_all_exercises_from_topsets, get_exercise_graph_model, get_stats_from_topsets, get_topsets_for_person, get_weekly_pr_graph_model, get_workout_counts, get_workouts
|
||||||
|
|
||||||
|
|
||||||
class DataBase():
|
class DataBase():
|
||||||
@@ -187,13 +187,18 @@ class DataBase():
|
|||||||
LEFT JOIN Exercise E ON T.exercise_id=E.exercise_id
|
LEFT JOIN Exercise E ON T.exercise_id=E.exercise_id
|
||||||
WHERE P.person_id=%s""", [person_id])
|
WHERE P.person_id=%s""", [person_id])
|
||||||
|
|
||||||
|
weekly_counts = get_workout_counts(topsets, 'week')
|
||||||
|
weekly_pr_counts = count_prs_over_time(topsets, 'week')
|
||||||
|
person_graphs = [get_weekly_pr_graph_model('Workouts per week', weekly_counts), get_weekly_pr_graph_model('PRs per week', weekly_pr_counts)]
|
||||||
|
|
||||||
return {
|
return {
|
||||||
'PersonId': next((t['PersonId'] for t in topsets), -1),
|
'PersonId': next((t['PersonId'] for t in topsets), -1),
|
||||||
'PersonName': next((t['PersonName'] for t in topsets), 'Unknown'),
|
'PersonName': next((t['PersonName'] for t in topsets), 'Unknown'),
|
||||||
'Stats': get_stats_from_topsets(topsets),
|
'Stats': get_stats_from_topsets(topsets),
|
||||||
'Exercises': get_all_exercises_from_topsets(topsets),
|
'Exercises': get_all_exercises_from_topsets(topsets),
|
||||||
'Workouts': get_workouts(topsets),
|
'Workouts': get_workouts(topsets),
|
||||||
'ExerciseProgressGraphs': get_topsets_for_person(topsets)
|
'ExerciseProgressGraphs': get_topsets_for_person(topsets),
|
||||||
|
'PersonGraphs': person_graphs
|
||||||
}
|
}
|
||||||
|
|
||||||
def get_workout(self, person_id, workout_id):
|
def get_workout(self, person_id, workout_id):
|
||||||
|
|||||||
@@ -2,6 +2,14 @@
|
|||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
|
|
||||||
|
<div class="w-full mb-4 grid grid-cols-1 xl:grid-cols-2 gap-4">
|
||||||
|
{% for graph in person['PersonGraphs'] %}
|
||||||
|
<div class="bg-white shadow rounded-lg p-4 sm:p-6 xl:p-8">
|
||||||
|
{{ render_partial('partials/svg_line_graph.html', **graph) }}
|
||||||
|
</div>
|
||||||
|
{% endfor %}
|
||||||
|
</div>
|
||||||
|
|
||||||
<a hx-get="{{ url_for('get_person', person_id=person['PersonId']) }}"
|
<a hx-get="{{ url_for('get_person', person_id=person['PersonId']) }}"
|
||||||
hx-include="[name='exercise_id'],[name='min_date'],[name='max_date']" hx-target="#container"
|
hx-include="[name='exercise_id'],[name='min_date'],[name='max_date']" hx-target="#container"
|
||||||
hx-trigger="refreshView" id="refreshViewElement"></a>
|
hx-trigger="refreshView" id="refreshViewElement"></a>
|
||||||
|
|||||||
Reference in New Issue
Block a user