1
0

Displaying Measurement readouts, WIP

This commit is contained in:
cryptogopher
2019-12-10 20:37:36 +01:00
parent 40e9c6f8ae
commit 98564be4b5
7 changed files with 200 additions and 11 deletions

View File

@@ -71,7 +71,7 @@ class IngredientsController < ApplicationController
warnings = []
if params.has_key?(:file)
quantities = @project.quantities.map { |q| [q.name, q] }.to_h
quantities = @project.quantities.diet.map { |q| [q.name, q] }.to_h
units = @project.units.map { |u| [u.shortname, u] }.to_h
sources = @project.sources.map { |s| [s.name, s] }.to_h
ingredients_params = []
@@ -207,7 +207,7 @@ class IngredientsController < ApplicationController
end
def prepare_nutrients
@quantities = @project.quantities.where(primary: true)
@quantities = @project.quantities.diet.where(primary: true)
ingredients, requested_n, extra_n, @formula_q = @project.ingredients
.filter(@project, session[:i_filters], @quantities)

View File

@@ -1,12 +1,13 @@
class MeasurementsController < ApplicationController
menu_item :body_trackers
before_action :init_session_filters
before_action :find_project_by_project_id, only: [:index, :new, :create]
before_action :find_measurement, only: [:edit, :update, :destroy, :retake, :readouts]
before_action :authorize
def index
session[:m_scope] = {}
session[:m_filters][:scope] = {}
prepare_measurements
end
@@ -55,12 +56,16 @@ class MeasurementsController < ApplicationController
end
def readouts
session[:m_scope] = {name: @measurement.name}
prepare_measurements
session[:m_filters][:scope] = {name: @measurement.name}
prepare_readouts
end
private
def init_session_filters
session[:m_filters] ||= {}
end
def measurement_params
params.require(:measurement).permit(
:name,
@@ -87,6 +92,28 @@ class MeasurementsController < ApplicationController
def prepare_measurements
@measurements = @project.measurements.includes(:source, :readouts)
.where(session[:m_scope])
.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
end
end