summaryrefslogtreecommitdiff
path: root/app/controllers
diff options
context:
space:
mode:
authormo khan <mo@mokhan.ca>2017-02-18 11:49:10 -0700
committermo khan <mo@mokhan.ca>2017-02-18 11:49:10 -0700
commit2fae577b43f930a456bc0ce93e36f3f18eece601 (patch)
treec0a78293abed4558c9c6d784795f9eed0fdcecbf /app/controllers
parent3ea15efd43893620c8c37aafe47d3f134c0182a8 (diff)
use chart.js instead of google charts.
Diffstat (limited to 'app/controllers')
-rw-r--r--app/controllers/charts_controller.rb22
1 files changed, 18 insertions, 4 deletions
diff --git a/app/controllers/charts_controller.rb b/app/controllers/charts_controller.rb
index 9475a0c..cbb7a95 100644
--- a/app/controllers/charts_controller.rb
+++ b/app/controllers/charts_controller.rb
@@ -3,14 +3,28 @@ class ChartsController < ApplicationController
exercise = Exercise.find_by(id: params[:exercise])
respond_to do |format|
format.js { @training_history = current_user.history_for(exercise) }
- format.json { render json: recent_workouts(exercise).to_line_chart }
+ #format.json { render json: recent_workouts(exercise).to_line_chart }
+ format.json { render json: rolled_up_sets(exercise || Exercise.primary).chart_json }
end
+
end
private
- def recent_workouts(exercise, since = (params[:since] || 7.days).to_i.seconds.ago)
- workouts = current_user.workouts.since(since.beginning_of_day).recent
- exercise ? workouts.with_exercise(exercise) : workouts
+ #def recent_workouts(exercise, since = (params[:since] || 7.days).to_i.seconds.ago)
+ #workouts = current_user.workouts.since(since.beginning_of_day).recent
+ #exercise ? workouts.with_exercise(exercise) : workouts
+ #end
+
+ def rolled_up_sets(exercise, since = (params[:since] || 7.days).to_i.seconds.ago)
+ ExerciseSet
+ .joins(:exercise)
+ .where(exercise: exercise)
+ .where('workouts.occurred_at > ?', since.beginning_of_day)
+ .where.not(target_weight: nil)
+ .group('exercises.name')
+ .joins(:workout)
+ .group('workouts.occurred_at')
+ .maximum(:target_weight)
end
end