diff --git a/app/controllers/measurements_controller.rb b/app/controllers/measurements_controller.rb index 56da5f0..4c021e8 100644 --- a/app/controllers/measurements_controller.rb +++ b/app/controllers/measurements_controller.rb @@ -7,13 +7,9 @@ class MeasurementsController < ApplicationController before_action :init_session_filters before_action :find_project_by_project_id, only: [:index, :new, :create, :filter] - before_action :find_quantity_by_quantity_id, only: [:toggle_exposure] before_action :find_measurement, only: [:edit, :update, :destroy, :retake] - # @routine is set for :readouts view ONLY - before_action :find_measurement_routine, only: [:readouts, :toggle_exposure] before_action :find_measurement_routine_by_measurement_routine_id, - only: [:new, :create, :edit, :update, :retake, :filter], - if: -> { params[:view] == 'readouts' } + only: [:new, :create, :edit, :update, :retake, :filter] before_action :authorize before_action :set_view_params @@ -84,15 +80,6 @@ class MeasurementsController < ApplicationController render :new end - def readouts - prepare_readouts - end - - def toggle_exposure - @routine.readout_exposures.toggle!(@quantity) - prepare_readouts - end - def filter session[:m_filters] = params.permit(:name, formula: [:code, :zero_nil]) prepare_items @@ -141,12 +128,6 @@ class MeasurementsController < ApplicationController .filter(session[:m_filters]) end - def prepare_readouts - @quantities = @routine.quantities.includes(:formula) - @measurements, @filter_q = @routine.measurements.includes(:routine, :source) - .filter(session[:m_filters], @quantities) - end - def set_view_params @view_params = if @routine diff --git a/app/controllers/readouts_controller.rb b/app/controllers/readouts_controller.rb new file mode 100644 index 0000000..ce193f3 --- /dev/null +++ b/app/controllers/readouts_controller.rb @@ -0,0 +1,31 @@ +class ReadoutsController < ApplicationController + layout 'body_tracking' + menu_item :body_trackers + helper :body_trackers + helper :measurements + + include Concerns::Finders + + before_action :find_measurement_routine_by_measurement_routine_id, + only: [:index, :toggle_exposure] + before_action :find_quantity_by_quantity_id, only: [:toggle_exposure] + before_action :authorize + + def index + prepare_readouts + end + + def toggle_exposure + @routine.readout_exposures.toggle!(@quantity) + prepare_readouts + end + + private + + def prepare_readouts + @quantities = @routine.quantities.includes(:formula) + + @measurements, @filter_q = @routine.measurements.includes(:routine, :source) + .filter(session[:m_filters], @quantities) + end +end diff --git a/app/helpers/body_trackers_helper.rb b/app/helpers/body_trackers_helper.rb index edb2b7b..16125b7 100644 --- a/app/helpers/body_trackers_helper.rb +++ b/app/helpers/body_trackers_helper.rb @@ -22,6 +22,10 @@ module BodyTrackersHelper t&.strftime("%R") end + def format_datetime(dt) + dt.strftime("%F %R (~#{time_ago_in_words(dt)} ago)").html_safe + end + def toggle_exposure_options(enabled, domain = :all) enabled = enabled.map { |q| [q.name, q.id] } enabled_ids = enabled.map(&:last) diff --git a/app/helpers/measurements_helper.rb b/app/helpers/measurements_helper.rb index 56bde80..021774d 100644 --- a/app/helpers/measurements_helper.rb +++ b/app/helpers/measurements_helper.rb @@ -1,10 +1,4 @@ module MeasurementsHelper - def format_datetime(m) - m.taken_at - .strftime("%F %R (~#{time_ago_in_words(m.taken_at)} ago)") - .html_safe - end - def action_links(m) link_to(l(:button_retake), retake_measurement_path(m, @view_params), {remote: true, class: "icon icon-reload"}) + diff --git a/app/views/measurements/_index.html.erb b/app/views/measurements/_index.html.erb index bcbcdee..fe8069d 100644 --- a/app/views/measurements/_index.html.erb +++ b/app/views/measurements/_index.html.erb @@ -18,10 +18,10 @@ <% @measurements.each do |m| %> <% next if m.new_record? %>
<%= link_to '',
- toggle_exposure_measurement_routine_path(@routine, quantity_id: q.id),
+ measurement_routine_toggle_exposure_path(@routine, quantity_id: q.id),
{class: "icon icon-close", method: :post, remote: true} %>
<%= q.name %>
@@ -34,7 +34,9 @@
| |||
---|---|---|---|
- <%= format_datetime(measurement) %> + + <%= format_datetime(measurement.taken_at) %> + | <% @quantities.each do |q| %><%= format_value(readouts[q]) %> | @@ -50,7 +52,9 @@ end %>- <%= format_datetime(measurement) %> + + <%= format_datetime(measurement.taken_at) %> + | <% @quantities.each do |q| %>diff --git a/app/views/measurements/_options.html.erb b/app/views/readouts/_options.html.erb similarity index 89% rename from app/views/measurements/_options.html.erb rename to app/views/readouts/_options.html.erb index c933efc..2a546b1 100644 --- a/app/views/measurements/_options.html.erb +++ b/app/views/readouts/_options.html.erb @@ -1,7 +1,7 @@ |