From d80e3ecd3bfdfcacb96bb7c96f67deafd9330e15 Mon Sep 17 00:00:00 2001 From: Maximilian Grundke Date: Fri, 20 Jul 2018 10:36:10 +0200 Subject: [PATCH] Sort exercise collection items by position in statistics view --- app/assets/javascripts/exercise_collections.js.erb | 8 ++++---- app/models/exercise_collection.rb | 9 +++++---- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/app/assets/javascripts/exercise_collections.js.erb b/app/assets/javascripts/exercise_collections.js.erb index c7de9db6..c1995c7e 100644 --- a/app/assets/javascripts/exercise_collections.js.erb +++ b/app/assets/javascripts/exercise_collections.js.erb @@ -52,11 +52,11 @@ $(function() { "translate(" + margin.left + "," + margin.top + ")"); // Get the data - data = Object.keys(data).map(function (key, index) { + data = Object.keys(data).map(function (key) { return { - index: index, - exercise_id: parseInt(key), - working_time: parseFloat(data[key]) + index: parseInt(key), + exercise_id: parseInt(data[key]['exercise_id']), + working_time: parseFloat(data[key]['working_time']) }; }); diff --git a/app/models/exercise_collection.rb b/app/models/exercise_collection.rb index 0836b404..df7082d5 100644 --- a/app/models/exercise_collection.rb +++ b/app/models/exercise_collection.rb @@ -8,8 +8,8 @@ class ExerciseCollection < ActiveRecord::Base def exercise_working_times working_times = {} - exercises.each do |exercise| - working_times[exercise.id] = time_to_f exercise.average_working_time + exercise_collection_items.each do |item| + working_times[item.position] = {exercise_id: item.exercise.id, working_time: time_to_f(item.exercise.average_working_time)} end working_times end @@ -18,8 +18,9 @@ class ExerciseCollection < ActiveRecord::Base if exercises.empty? 0 else - values = exercise_working_times.values.reject { |v| v.nil?} - values.reduce(:+) / exercises.size + values = exercise_working_times.values.reject { |o| o[:working_time].nil?} + sum = values.reduce(0) {|sum, item| sum + item[:working_time]} + sum / values.size end end