diff --git a/app/controllers/measurements_controller.rb b/app/controllers/measurements_controller.rb
index 27c9bc8..56c4e00 100644
--- a/app/controllers/measurements_controller.rb
+++ b/app/controllers/measurements_controller.rb
@@ -3,6 +3,7 @@ class MeasurementsController < ApplicationController
before_action :init_session_filters
before_action :find_project_by_project_id, only: [:index, :new, :create]
+ before_action :find_quantity, only: [:toggle_quantity]
before_action :find_measurement, only: [:edit, :update, :destroy, :retake, :readouts]
before_action :authorize
@@ -60,6 +61,11 @@ class MeasurementsController < ApplicationController
prepare_readouts
end
+ def toggle_quantity
+ @quantity.toggle_primary!
+ prepare_readouts
+ end
+
private
def init_session_filters
@@ -91,29 +97,15 @@ class MeasurementsController < ApplicationController
end
def prepare_measurements
- @measurements = @project.measurements.includes(:source, :readouts)
+ @measurements, @formula_q = @project.measurements
+ .includes(:source, :readouts)
.filter(session[:m_filters])
end
def prepare_readouts
@quantities = @project.quantities.measurement.where(primary: true)
- measurements, requested_r, extra_r, @formula_q = @project.measurements.includes(:source)
- .filter(@project, session[:i_filters], @quantities)
-
- @nutrients = {}
- @extra_nutrients = {}
- ingredients.each_with_index do |i, index|
- @nutrients[i] = []
- requested_n[index].each do |q_name, value|
- amount, unitname = value
- @nutrients[i] << [q_name, amount.nil? ? '-' : "#{amount} [#{unitname || '-'}]"]
- end
-
- @extra_nutrients[i] = []
- extra_n[index].each do |q_name, value|
- amount, unitname = value
- @extra_nutrients[i] << [q_name, amount.nil? ? '-' : "#{amount} [#{unitname || '-'}]"]
- end
- end
+ @measurements, @requested_r, @extra_r, @formula_q = @project.measurements
+ .includes(:source)
+ .filter(session[:m_filters], @quantities)
end
end
diff --git a/app/helpers/measurements_helper.rb b/app/helpers/measurements_helper.rb
index 7498437..a3bfda6 100644
--- a/app/helpers/measurements_helper.rb
+++ b/app/helpers/measurements_helper.rb
@@ -7,6 +7,20 @@ module MeasurementsHelper
m.taken_at.getlocal.strftime("%R")
end
+ def format_value(value)
+ amount, unitname = value
+ amount.nil? ? '-' : "#{amount} [#{unitname || '-'}]"
+ end
+
+ def quantity_toggle_options
+ disabled = []
+ options = nested_set_options(@project.quantities.measurement) do |q|
+ disabled << q.id if q.primary
+ raw("#{' ' * q.level}#{q.name}")
+ end
+ options_for_select(options, disabled: disabled)
+ end
+
def quantity_options
nested_set_options(@project.quantities.measurement) do |q|
raw("#{' ' * q.level}#{q.name}")
diff --git a/app/views/measurements/_options.html.erb b/app/views/measurements/_options.html.erb
new file mode 100644
index 0000000..37fbbb8
--- /dev/null
+++ b/app/views/measurements/_options.html.erb
@@ -0,0 +1,35 @@
+
+
+
+
+ <% total_width = 3 + @quantities.length %>
+ |
+ <% @quantities.each do |q| %>
+
+ <%= link_to l(:button_hide),
+ toggle_quantity_project_measurements_path(@project, id: q.id),
+ {class: "icon icon-close", method: :post, remote: true} %>
+ |
+ <% end %>
+
+
diff --git a/app/views/measurements/_readouts.html.erb b/app/views/measurements/_readouts.html.erb
index fc2ce48..561351e 100644
--- a/app/views/measurements/_readouts.html.erb
+++ b/app/views/measurements/_readouts.html.erb
@@ -1,25 +1,25 @@
-<% if @readouts.any? %>
+<% if @measurements.any? %>
<%= render partial: 'measurements/options' %>
<% total_width = 3 + @quantities.length %>
- <%= l(:field_name) %> |
+ <%= l(:field_taken_at_date) %> |
<% @quantities.each do |q| %>
<%= q.name %> |
<% end %>
- <% @readouts.each do |m, values| %>
+ <% @measurements.each_with_index do |m, index| %>
<% row_class = "measurement #{cycle('odd', 'even')}" %>
<%= format_datetime(m) %>
|
- <% values.each do |*, value| %>
- <%= value %> |
+ <% @requested_r[index].each do |*, value| %>
+ <%= format_value(value) %> |
<% end %>
@@ -27,19 +27,19 @@
<%= format_datetime(m) %>
|
- <% values.each do |q_name, *| %>
+ <% @requested_r[index].each do |q_name, *| %>
<%= q_name %> |
<% end %>
|
- <% values.each do |*, value| %>
- <%= value %> |
+ <% @requested_r[index].each do |*, value| %>
+ <%= format_value(value) %> |
<% end %>
- <% extras = @extra_readouts[i] %>
- <% extras.each_slice(@quantities.length).with_index do |values, index| %>
+ <% next unless @quantities.length > 0 %>
+ <% @extra_r[index].each_slice(@quantities.length).with_index do |values| %>