Added quantity filtering by domain
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
class IngredientsController < ApplicationController
|
||||
require 'csv'
|
||||
|
||||
before_action :init_session_filters
|
||||
before_action :find_project_by_project_id,
|
||||
only: [:index, :nutrients, :create, :import, :filter, :filter_nutrients]
|
||||
before_action :find_quantity, only: [:toggle_nutrient_column]
|
||||
@@ -54,13 +55,13 @@ class IngredientsController < ApplicationController
|
||||
end
|
||||
|
||||
def filter
|
||||
session[:filters] = params[:filters]
|
||||
session[:i_filters] = params[:filters]
|
||||
prepare_ingredients
|
||||
render :toggle
|
||||
end
|
||||
|
||||
def filter_nutrients
|
||||
session[:filters] = params[:filters]
|
||||
session[:i_filters] = params[:filters]
|
||||
prepare_nutrients
|
||||
render :toggle_nutrient_column
|
||||
end
|
||||
@@ -167,6 +168,10 @@ class IngredientsController < ApplicationController
|
||||
|
||||
private
|
||||
|
||||
def init_session_filters
|
||||
session[:i_filters] ||= {}
|
||||
end
|
||||
|
||||
def ingredient_params
|
||||
params.require(:ingredient).permit(
|
||||
:name,
|
||||
@@ -197,13 +202,13 @@ class IngredientsController < ApplicationController
|
||||
|
||||
def prepare_ingredients
|
||||
@ingredients, @formula_q = @project.ingredients.includes(:ref_unit, :source)
|
||||
.filter(@project, session[:filters])
|
||||
.filter(@project, session[:i_filters])
|
||||
end
|
||||
|
||||
def prepare_nutrients
|
||||
@quantities = @project.quantities.where(primary: true)
|
||||
ingredients, requested_n, extra_n, @formula_q = @project.ingredients
|
||||
.filter(@project, session[:filters], @quantities)
|
||||
.filter(@project, session[:i_filters], @quantities)
|
||||
|
||||
@nutrients = {}
|
||||
@extra_nutrients = {}
|
||||
|
||||
@@ -1,11 +1,12 @@
|
||||
class QuantitiesController < ApplicationController
|
||||
before_action :find_project_by_project_id, only: [:index, :create]
|
||||
before_action :init_session_filters
|
||||
before_action :find_project_by_project_id, only: [:index, :create, :filter]
|
||||
before_action :find_quantity, only: [:destroy, :toggle, :up, :down, :left, :right]
|
||||
before_action :authorize
|
||||
|
||||
def index
|
||||
@quantity = @project.quantities.new
|
||||
@quantities = @project.quantities
|
||||
prepare_quantities
|
||||
end
|
||||
|
||||
def create
|
||||
@@ -14,7 +15,7 @@ class QuantitiesController < ApplicationController
|
||||
flash[:notice] = 'Created new quantity'
|
||||
redirect_to project_quantities_url(@project)
|
||||
else
|
||||
@quantities = @project.quantities
|
||||
prepare_quantities
|
||||
render :index
|
||||
end
|
||||
end
|
||||
@@ -23,41 +24,51 @@ class QuantitiesController < ApplicationController
|
||||
if @quantity.destroy
|
||||
flash[:notice] = 'Deleted quantity'
|
||||
end
|
||||
@quantities = @project.quantities
|
||||
prepare_quantities
|
||||
render :toggle
|
||||
end
|
||||
|
||||
def toggle
|
||||
@quantity.toggle_primary!
|
||||
@quantities = @project.quantities
|
||||
prepare_quantities
|
||||
end
|
||||
|
||||
def filter
|
||||
session[:q_filters] = params[:filters]
|
||||
prepare_quantities
|
||||
render :toggle
|
||||
end
|
||||
|
||||
def up
|
||||
@quantity.move_left if @quantity.left_sibling.present?
|
||||
@quantities = @project.quantities
|
||||
prepare_quantities
|
||||
render :toggle
|
||||
end
|
||||
|
||||
def down
|
||||
@quantity.move_right if @quantity.right_sibling.present?
|
||||
@quantities = @project.quantities
|
||||
prepare_quantities
|
||||
render :toggle
|
||||
end
|
||||
|
||||
def left
|
||||
@quantity.move_to_right_of(@quantity.parent) if @quantity.parent.present?
|
||||
@quantities = @project.quantities
|
||||
prepare_quantities
|
||||
render :toggle
|
||||
end
|
||||
|
||||
def right
|
||||
@quantity.move_to_child_of(@quantity.left_sibling) if @quantity.left_sibling.present?
|
||||
@quantities = @project.quantities
|
||||
prepare_quantities
|
||||
render :toggle
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def init_session_filters
|
||||
session[:q_filters] ||= {}
|
||||
end
|
||||
|
||||
def quantity_params
|
||||
params[:quantity].delete(:formula) if params[:quantity][:formula].blank?
|
||||
params.require(:quantity).permit(
|
||||
@@ -69,4 +80,8 @@ class QuantitiesController < ApplicationController
|
||||
:primary
|
||||
)
|
||||
end
|
||||
|
||||
def prepare_quantities
|
||||
@quantities = @project.quantities.filter(@project, session[:q_filters])
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user