Add person graphs endpoint for workouts per week & PRs per week, consumed via dashboard, person overview and notes
This commit is contained in:
12
db.py
12
db.py
@@ -1,6 +1,5 @@
|
||||
import os
|
||||
import psycopg2
|
||||
import numpy as np
|
||||
from psycopg2.extras import RealDictCursor
|
||||
from datetime import datetime
|
||||
from dateutil.relativedelta import relativedelta
|
||||
@@ -9,11 +8,12 @@ from flask import g
|
||||
import pandas as pd
|
||||
from features.calendar import Calendar
|
||||
from features.exercises import Exercises
|
||||
from features.people_graphs import PeopleGraphs
|
||||
from features.person_overview import PersonOverview
|
||||
from features.stats import Stats
|
||||
from features.workout import Workout
|
||||
from features.sql_explorer import SQLExplorer
|
||||
from utils import count_prs_over_time, get_all_exercises_from_topsets, get_exercise_graph_model, get_topsets_for_person, get_weekly_pr_graph_model, get_workout_counts, get_workouts
|
||||
from utils import get_all_exercises_from_topsets, get_exercise_graph_model, get_topsets_for_person, get_workouts
|
||||
|
||||
|
||||
class DataBase():
|
||||
@@ -24,6 +24,7 @@ class DataBase():
|
||||
self.exercises = Exercises(self.execute)
|
||||
self.sql_explorer = SQLExplorer(self.execute)
|
||||
self.person_overview = PersonOverview(self.execute)
|
||||
self.people_graphs = PeopleGraphs(self.execute)
|
||||
db_url = urlparse(os.environ['DATABASE_URL'])
|
||||
# if db_url is null then throw error
|
||||
if not db_url:
|
||||
@@ -207,17 +208,12 @@ class DataBase():
|
||||
LEFT JOIN Exercise E ON T.exercise_id=E.exercise_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 {
|
||||
'PersonId': next((t['PersonId'] for t in topsets), -1),
|
||||
'PersonName': next((t['PersonName'] for t in topsets), 'Unknown'),
|
||||
'Exercises': get_all_exercises_from_topsets(topsets),
|
||||
'Workouts': get_workouts(topsets),
|
||||
'ExerciseProgressGraphs': get_topsets_for_person(topsets),
|
||||
'PersonGraphs': person_graphs
|
||||
'ExerciseProgressGraphs': get_topsets_for_person(topsets)
|
||||
}
|
||||
|
||||
def get_workout(self, person_id, workout_id):
|
||||
|
||||
Reference in New Issue
Block a user