From b6dbf369d14500283839a6daa1e0fc6a398822e7 Mon Sep 17 00:00:00 2001 From: cryptogopher Date: Sat, 21 Dec 2019 18:01:46 +0100 Subject: [PATCH] Measurement index improvements --- app/helpers/measurements_helper.rb | 3 ++- app/models/column_view.rb | 7 ++++--- app/models/measurement.rb | 3 ++- app/views/measurements/_readouts.html.erb | 8 ++++++-- assets/stylesheets/body_tracking.css | 5 ++--- 5 files changed, 16 insertions(+), 10 deletions(-) diff --git a/app/helpers/measurements_helper.rb b/app/helpers/measurements_helper.rb index 10536df..33cc015 100644 --- a/app/helpers/measurements_helper.rb +++ b/app/helpers/measurements_helper.rb @@ -1,6 +1,7 @@ module MeasurementsHelper def format_datetime(m) - m.taken_at.getlocal.strftime("%F %R").html_safe + m.taken_at.getlocal + .strftime("%F %R (#{time_ago_in_words(m.taken_at)} ago)").html_safe end def format_time(m) diff --git a/app/models/column_view.rb b/app/models/column_view.rb index 5cf2b0f..7a1f175 100644 --- a/app/models/column_view.rb +++ b/app/models/column_view.rb @@ -2,7 +2,7 @@ class ColumnView < ActiveRecord::Base enum domain: Quantity.domains belongs_to :project, required: true - has_and_belongs_to_many :quantities + has_and_belongs_to_many :quantities, -> { order "lft" } validates :name, presence: true, uniqueness: {scope: :domain} validates :domain, inclusion: {in: domains.keys} @@ -10,9 +10,10 @@ class ColumnView < ActiveRecord::Base # TODO: enforce column_view - quantity 'domain' identity def toggle_column!(q) column = self.quantities.find(q.id) - self.quantites.destroy(column) + self.quantities.destroy(column) rescue ActiveRecord::RecordNotFound # Cannot 'create' association, as ColumnView (parent) may not be saved yet - self.quantities.append(q).save! + self.quantities.append(q) + self.save! end end diff --git a/app/models/measurement.rb b/app/models/measurement.rb index 4a1126f..64d6e3f 100644 --- a/app/models/measurement.rb +++ b/app/models/measurement.rb @@ -69,7 +69,8 @@ class Measurement < ActiveRecord::Base return unless old_column_view if self.project.measurements.exists?(name: self.name_was) - self.column_view.quantities.append(old_column_view.quantities).save! + self.column_view.quantities.append(old_column_view.quantities) + self.save! else old_column_view.update!(name: self.name) end diff --git a/app/views/measurements/_readouts.html.erb b/app/views/measurements/_readouts.html.erb index 0185ae8..fa92dab 100644 --- a/app/views/measurements/_readouts.html.erb +++ b/app/views/measurements/_readouts.html.erb @@ -24,7 +24,12 @@ - + <% if @quantities.length > 0 + rows = (@extra_r[index].length - 1) / @quantities.length + 2 + else + rows = 1 + end %> + <%= format_datetime(m) %> <% @requested_r[index].each do |q_name, value| %> @@ -38,7 +43,6 @@ <% next unless @quantities.length > 0 %> <% @extra_r[index].each_slice(@quantities.length).with_index do |values| %> - <% values.each do |q_name, value| %>

<%= q_name %>

diff --git a/assets/stylesheets/body_tracking.css b/assets/stylesheets/body_tracking.css index 3388168..06b976c 100644 --- a/assets/stylesheets/body_tracking.css +++ b/assets/stylesheets/body_tracking.css @@ -9,11 +9,10 @@ table.list .quantity {text-align: left;} table.list .action, table.list .value {text-align: right;} -table.list .space {border-top: none; border-bottom: none;} +table.list td.action, +table.list td.date {white-space: nowrap;} table.list th, -table.list td.action, -table.list td.date, table.list td.name, table.list td.quantity, table.list td.value {