1
0

Added MealsController#toggle_exposure

This commit is contained in:
cryptogopher 2020-04-25 15:52:35 +02:00
parent a4781b4fcd
commit ab8ed92929
5 changed files with 24 additions and 10 deletions

View File

@ -6,6 +6,7 @@ class MealsController < ApplicationController
include Concerns::Finders
before_action :find_project_by_project_id, only: [:index, :new, :create]
before_action :find_quantity_by_quantity_id, only: [:toggle_exposure]
before_action :find_meal, only: [:edit, :update, :destroy, :edit_notes, :update_notes,
:toggle_eaten]
before_action :authorize
@ -59,6 +60,11 @@ class MealsController < ApplicationController
prepare_meals
end
def toggle_exposure
@project.meal_exposures.toggle!(@quantity)
prepare_meals
end
private
def meal_params

View File

@ -8,7 +8,8 @@
<table>
<tr>
<td style="width:100%"></td>
<td><%= select_tag 'quantity_id', toggle_column_options %></td>
<td><%= select_tag 'quantity_id',
toggle_exposure_options(@project.meal_exposures, :diet) %></td>
<td><%= submit_tag l(:button_add) %></td>
</tr>
</table>

View File

@ -16,6 +16,9 @@ resources :projects, shallow: true do
patch 'update_notes'
post 'toggle_eaten'
end
collection do
post 'toggle_exposure'
end
end
resources :measurement_routines, only: [:show, :edit] do
member do

View File

@ -25,7 +25,7 @@ Redmine::Plugin.register :body_tracking do
body_trackers: [:defaults],
ingredients: [:adjust],
meals: [:new, :create, :edit, :update, :destroy, :edit_notes, :update_notes,
:toggle_eaten],
:toggle_eaten, :toggle_exposure],
measurement_routines: [:edit],
measurements: [:new, :create, :edit, :update, :destroy, :retake, :toggle_exposure],
foods: [:new, :create, :edit, :update, :destroy, :toggle, :toggle_exposure,

View File

@ -1,20 +1,24 @@
module BodyTracking::ProjectPatch
Project.class_eval do
has_many :meals, -> { order "eaten_at DESC" }, dependent: :destroy
has_many :measurement_routines, dependent: :destroy
has_many :measurements, -> { order "taken_at DESC" }, dependent: :destroy,
extend: BodyTracking::ItemsWithQuantities, through: :measurement_routines
has_many :foods, -> { order "name" }, dependent: :destroy,
extend: BodyTracking::ItemsWithQuantities
has_many :sources, dependent: :destroy
has_many :quantities, -> { order "lft" }, dependent: :destroy
has_many :units, dependent: :destroy
has_many :foods, -> { order "name" }, dependent: :destroy,
extend: BodyTracking::ItemsWithQuantities
has_many :nutrient_exposures, as: :view, dependent: :destroy,
class_name: 'Exposure', extend: BodyTracking::TogglableExposures
has_many :nutrient_quantities, -> { order "lft" }, through: :nutrient_exposures,
source: 'quantity'
has_many :measurement_routines, dependent: :destroy
has_many :measurements, -> { order "taken_at DESC" }, dependent: :destroy,
extend: BodyTracking::ItemsWithQuantities, through: :measurement_routines
has_many :meals, -> { order "eaten_at DESC" }, dependent: :destroy
has_many :meal_exposures, as: :view, dependent: :destroy,
class_name: 'Exposure', extend: BodyTracking::TogglableExposures
has_many :meal_quantities, -> { order "lft" }, through: :meal_exposures,
source: 'quantity'
end
end