From 6a1dbe4853193d8ebfe01269cfb9ff5265f9dca0 Mon Sep 17 00:00:00 2001 From: Maximilian Grundke Date: Fri, 20 Jul 2018 13:28:03 +0200 Subject: [PATCH] Add exercise title to statistics tooltip --- app/assets/javascripts/exercise_collections.js.erb | 2 ++ app/models/exercise_collection.rb | 10 +++++----- app/views/exercise_collections/statistics.html.slim | 2 +- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/app/assets/javascripts/exercise_collections.js.erb b/app/assets/javascripts/exercise_collections.js.erb index 03ee56d7..8ac76c1a 100644 --- a/app/assets/javascripts/exercise_collections.js.erb +++ b/app/assets/javascripts/exercise_collections.js.erb @@ -56,6 +56,7 @@ $(function() { return { index: parseInt(key), exercise_id: parseInt(data[key]['exercise_id']), + exercise_title: data[key]['exercise_title'], working_time: parseFloat(data[key]['working_time']) }; }); @@ -92,6 +93,7 @@ $(function() { .style("top", d3.event.pageY + 50 + "px") .style("display", "inline-block") .html("<%= I18n.t('activerecord.models.exercise.one') %> ID: " + d.exercise_id + "
" + + "<%= I18n.t('activerecord.attributes.exercise.title') %>: " + d.exercise_title + "
" + "<%= I18n.t('exercises.statistics.average_worktime') %>: " + d.working_time + "s"); }) .on("mouseout", function () { diff --git a/app/models/exercise_collection.rb b/app/models/exercise_collection.rb index df7082d5..a4a19f94 100644 --- a/app/models/exercise_collection.rb +++ b/app/models/exercise_collection.rb @@ -6,19 +6,19 @@ class ExerciseCollection < ActiveRecord::Base has_many :exercises, through: :exercise_collection_items belongs_to :user, polymorphic: true - def exercise_working_times - working_times = {} + def collection_statistics + statistics = {} 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)} + statistics[item.position] = {exercise_id: item.exercise.id, exercise_title: item.exercise.title, working_time: time_to_f(item.exercise.average_working_time)} end - working_times + statistics end def average_working_time if exercises.empty? 0 else - values = exercise_working_times.values.reject { |o| o[:working_time].nil?} + values = collection_statistics.values.reject { |o| o[:working_time].nil?} sum = values.reduce(0) {|sum, item| sum + item[:working_time]} sum / values.size end diff --git a/app/views/exercise_collections/statistics.html.slim b/app/views/exercise_collections/statistics.html.slim index 486a0dbd..60c49a01 100644 --- a/app/views/exercise_collections/statistics.html.slim +++ b/app/views/exercise_collections/statistics.html.slim @@ -6,7 +6,7 @@ h1 = @exercise_collection = row(label: 'exercises.statistics.average_worktime', value: @exercise_collection.average_working_time.round(3).to_s + 's') #graph - #data.hidden(data-working-times=ActiveSupport::JSON.encode(@exercise_collection.exercise_working_times) data-average-working-time=@exercise_collection.average_working_time) + #data.hidden(data-working-times=ActiveSupport::JSON.encode(@exercise_collection.collection_statistics) data-average-working-time=@exercise_collection.average_working_time) #legend - {time: t('exercises.statistics.average_worktime'), min: 'min. anomaly threshold',