diff --git a/app/controllers/ingredients_controller.rb b/app/controllers/ingredients_controller.rb
index a5068f0..ab5f9dc 100644
--- a/app/controllers/ingredients_controller.rb
+++ b/app/controllers/ingredients_controller.rb
@@ -196,13 +196,13 @@ class IngredientsController < ApplicationController
end
def prepare_ingredients
- @ingredients = @project.ingredients.includes(:ref_unit, :source)
+ @ingredients, @formula_q = @project.ingredients.includes(:ref_unit, :source)
.filter(@project, session[:filters])
end
def prepare_nutrients
@quantities = @project.quantities.where(primary: true)
- ingredients, requested_n, extra_n = @project.ingredients
+ ingredients, requested_n, extra_n, @formula_q = @project.ingredients
.filter(@project, session[:filters], @quantities)
@nutrients = {}
diff --git a/app/models/ingredient.rb b/app/models/ingredient.rb
index bbe66a8..1a9d8d4 100644
--- a/app/models/ingredient.rb
+++ b/app/models/ingredient.rb
@@ -49,18 +49,20 @@ class Ingredient < ActiveRecord::Base
end
formula_q = if filters[:nutrients].present?
- formula = Formula.new(project, filters[:nutrients])
- if formula.valid?
- project.quantities.new(name: '__internal_q', formula: filters[:nutrients])
- end
- end
+ project.quantities.new(name: '__internal_q',
+ formula: filters[:nutrients],
+ domain: :diet)
+ end
+ apply_formula = formula_q.present? && formula_q.valid?
- if !requested_q.empty? || formula_q.present?
- result = self.compute_nutrients(requested_q, formula_q)
- requested_q.present? ? result : result[0]
- else
- ingredients
- end
+ result =
+ if !requested_q.empty? || apply_formula
+ computed = ingredients.compute_nutrients(requested_q, apply_formula && formula_q)
+ requested_q.present? ? computed : [computed[0]]
+ else
+ [ingredients]
+ end
+ result.push(formula_q)
end
def self.compute_nutrients(requested_q, filter_q = nil)
diff --git a/app/views/ingredients/_filters.html.erb b/app/views/ingredients/_filters.html.erb
index 1bfea56..2189dc9 100644
--- a/app/views/ingredients/_filters.html.erb
+++ b/app/views/ingredients/_filters.html.erb
@@ -1,5 +1,7 @@