Add exercise title to statistics tooltip

This commit is contained in:
Maximilian Grundke
2018-07-20 13:28:03 +02:00
parent 7c292a0ce1
commit 6a1dbe4853
3 changed files with 8 additions and 6 deletions

View File

@ -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 + "<br>" +
"<%= I18n.t('activerecord.attributes.exercise.title') %>: " + d.exercise_title + "<br>" +
"<%= I18n.t('exercises.statistics.average_worktime') %>: " + d.working_time + "s");
})
.on("mouseout", function () {

View File

@ -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

View File

@ -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',