Adding Meals, WIP
This commit is contained in:
parent
ced06a25bc
commit
c3010a70e8
21
app/controllers/meals_controller.rb
Normal file
21
app/controllers/meals_controller.rb
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
class MealsController < ApplicationController
|
||||||
|
layout 'body_tracking'
|
||||||
|
menu_item :body_trackers
|
||||||
|
helper :body_trackers
|
||||||
|
|
||||||
|
include Concerns::Finders
|
||||||
|
|
||||||
|
before_action :find_project_by_project_id, only: [:index, :new, :create]
|
||||||
|
before_action :find_meal, only: [:edit, :update, :destroy]
|
||||||
|
before_action :authorize
|
||||||
|
|
||||||
|
def index
|
||||||
|
prepare_meals
|
||||||
|
end
|
||||||
|
|
||||||
|
private
|
||||||
|
|
||||||
|
def prepare_meals
|
||||||
|
@meals = @project.meals.includes(:ingredients)
|
||||||
|
end
|
||||||
|
end
|
0
app/models/meal.rb
Normal file
0
app/models/meal.rb
Normal file
@ -4,7 +4,7 @@ class MeasurementRoutine < ActiveRecord::Base
|
|||||||
foreign_key: 'routine_id', dependent: :restrict_with_error,
|
foreign_key: 'routine_id', dependent: :restrict_with_error,
|
||||||
extend: BodyTracking::ItemsWithQuantities
|
extend: BodyTracking::ItemsWithQuantities
|
||||||
has_many :readout_columns, as: :column_view, dependent: :destroy,
|
has_many :readout_columns, as: :column_view, dependent: :destroy,
|
||||||
class: 'QuantityColumn', extend: BodyTracking::TogglableColumns
|
class_name: 'QuantityColumn', extend: BodyTracking::TogglableColumns
|
||||||
has_many :quantities, -> { order "lft" }, through: :readout_columns
|
has_many :quantities, -> { order "lft" }, through: :readout_columns
|
||||||
|
|
||||||
validates :name, presence: true, uniqueness: {scope: :project_id}
|
validates :name, presence: true, uniqueness: {scope: :project_id}
|
||||||
|
@ -10,6 +10,7 @@
|
|||||||
|
|
||||||
<h3><%= t ".heading_diet" %></h3>
|
<h3><%= t ".heading_diet" %></h3>
|
||||||
<ul>
|
<ul>
|
||||||
|
<li><%= link_to t(".link_meals"), project_meals_path(@project) %></li>
|
||||||
<li>
|
<li>
|
||||||
<%= link_to t(".link_ingredients"), project_ingredients_path(@project) %>
|
<%= link_to t(".link_ingredients"), project_ingredients_path(@project) %>
|
||||||
/
|
/
|
||||||
|
@ -55,6 +55,7 @@ en:
|
|||||||
heading_diet: 'Diet'
|
heading_diet: 'Diet'
|
||||||
heading_common: 'Common'
|
heading_common: 'Common'
|
||||||
link_summary: 'Summary'
|
link_summary: 'Summary'
|
||||||
|
link_meals: 'Meals'
|
||||||
link_measurements: 'Measurements'
|
link_measurements: 'Measurements'
|
||||||
link_ingredients: 'Ingredients'
|
link_ingredients: 'Ingredients'
|
||||||
link_nutrients: 'Nutrients'
|
link_nutrients: 'Nutrients'
|
||||||
|
@ -7,6 +7,7 @@ resources :projects, shallow: true do
|
|||||||
post 'defaults'
|
post 'defaults'
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
resources :meals, only: [:index, :new, :create, :edit, :update, :destroy]
|
||||||
resources :measurement_routines, only: [:show, :edit] do
|
resources :measurement_routines, only: [:show, :edit] do
|
||||||
member do
|
member do
|
||||||
get 'readouts', to: 'measurements#readouts'
|
get 'readouts', to: 'measurements#readouts'
|
||||||
|
2
init.rb
2
init.rb
@ -13,6 +13,7 @@ Redmine::Plugin.register :body_tracking do
|
|||||||
project_module :body_tracking do
|
project_module :body_tracking do
|
||||||
permission :view_body_trackers, {
|
permission :view_body_trackers, {
|
||||||
body_trackers: [:index],
|
body_trackers: [:index],
|
||||||
|
meals: [:index],
|
||||||
measurement_routines: [:show],
|
measurement_routines: [:show],
|
||||||
measurements: [:index, :readouts, :filter],
|
measurements: [:index, :readouts, :filter],
|
||||||
ingredients: [:index, :nutrients, :filter],
|
ingredients: [:index, :nutrients, :filter],
|
||||||
@ -22,6 +23,7 @@ Redmine::Plugin.register :body_tracking do
|
|||||||
}, read: true
|
}, read: true
|
||||||
permission :manage_common, {
|
permission :manage_common, {
|
||||||
body_trackers: [:defaults],
|
body_trackers: [:defaults],
|
||||||
|
meals: [:new, :create, :edit, :update, :destroy],
|
||||||
measurement_routines: [:edit],
|
measurement_routines: [:edit],
|
||||||
measurements: [:new, :create, :edit, :update, :destroy, :retake, :toggle_column],
|
measurements: [:new, :create, :edit, :update, :destroy, :retake, :toggle_column],
|
||||||
ingredients: [:new, :create, :edit, :update, :destroy, :toggle, :toggle_column,
|
ingredients: [:new, :create, :edit, :update, :destroy, :toggle, :toggle_column,
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
module BodyTracking::ProjectPatch
|
module BodyTracking::ProjectPatch
|
||||||
Project.class_eval do
|
Project.class_eval do
|
||||||
|
has_many :meals, -> { order "eaten_at DESC" }, dependent: :destroy
|
||||||
|
|
||||||
has_many :measurement_routines, dependent: :destroy
|
has_many :measurement_routines, dependent: :destroy
|
||||||
has_many :measurements, -> { order "taken_at DESC" }, dependent: :destroy,
|
has_many :measurements, -> { order "taken_at DESC" }, dependent: :destroy,
|
||||||
extend: BodyTracking::ItemsWithQuantities, through: :measurement_routines
|
extend: BodyTracking::ItemsWithQuantities, through: :measurement_routines
|
||||||
|
Reference in New Issue
Block a user