Cleaned up nutrients index table
This commit is contained in:
parent
ba634eb516
commit
356e264c51
@ -216,5 +216,15 @@ class FoodsController < ApplicationController
|
|||||||
def prepare_nutrients
|
def prepare_nutrients
|
||||||
@quantities = @project.nutrient_quantities.includes(:formula)
|
@quantities = @project.nutrient_quantities.includes(:formula)
|
||||||
@foods, @filter_q = @project.foods.filter(session[:f_filters], @quantities)
|
@foods, @filter_q = @project.foods.filter(session[:f_filters], @quantities)
|
||||||
|
|
||||||
|
@food_summary = Hash.new { |h,k| h[k] = Hash.new(BigDecimal(0)) }
|
||||||
|
@quantities.each do |q|
|
||||||
|
@food_summary[:mfu_unit][q] = @foods
|
||||||
|
.each_with_object(Hash.new(0)) { |(i, qv), h| h[qv[q].last] += 1 if qv[q] }
|
||||||
|
.max_by(&:last).try(&:first)
|
||||||
|
|
||||||
|
max_value = @foods.map { |i, qv| qv[q].try(&:first) || BigDecimal(0) }.max
|
||||||
|
@food_summary[:precision][q] = [4 - max_value.exponent, 0].max
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -9,12 +9,13 @@
|
|||||||
<%= error_messages_for *formulas %>
|
<%= error_messages_for *formulas %>
|
||||||
|
|
||||||
<table class="nutrients list odd-even">
|
<table class="nutrients list odd-even">
|
||||||
|
<% total_width = 4 + @quantities.length %>
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<% total_width = 4 + @quantities.length %>
|
<th rowspan="2" style="width:<%= 3 * 100/total_width %>%"><%= l(:field_name) %></th>
|
||||||
<th style="width:<%= 3 * 100/total_width %>%"><%= l(:field_name) %></th>
|
|
||||||
<% @quantities.each do |q| %>
|
<% @quantities.each do |q| %>
|
||||||
<th style="width:<%= 100/total_width %>%" class="closable ellipsible">
|
<th class="closable ellipsible"
|
||||||
|
style="width:<%= 100/total_width %>%; border-bottom:none;">
|
||||||
<div style="float:right;position:relative;">
|
<div style="float:right;position:relative;">
|
||||||
<%= link_to '',
|
<%= link_to '',
|
||||||
toggle_exposure_project_foods_path(@project, quantity_id: q.id),
|
toggle_exposure_project_foods_path(@project, quantity_id: q.id),
|
||||||
@ -23,8 +24,11 @@
|
|||||||
<%= q.name %>
|
<%= q.name %>
|
||||||
</th>
|
</th>
|
||||||
<% end %>
|
<% end %>
|
||||||
<th style="width:<%= 100/total_width %>%"><%= l(:field_action) %></th>
|
<th rowspan="2" style="width:<%= 100/total_width %>%"><%= l(:field_action) %></th>
|
||||||
</tr>
|
</tr>
|
||||||
|
<% @quantities.each do |q| %>
|
||||||
|
<th><%= "[#{@food_summary[:mfu_unit][q].try(&:shortname) || '-'}]" %></th>
|
||||||
|
<% end %>
|
||||||
</thead>
|
</thead>
|
||||||
|
|
||||||
<tbody>
|
<tbody>
|
||||||
@ -37,7 +41,10 @@
|
|||||||
<span class="icon icon-bullet-closed"><%= food.name %></span>
|
<span class="icon icon-bullet-closed"><%= food.name %></span>
|
||||||
</td>
|
</td>
|
||||||
<% @quantities.each do |q| %>
|
<% @quantities.each do |q| %>
|
||||||
<td class="primary value ellipsible"><%= format_value(nutrients[q]) %></td>
|
<td class="primary value ellipsible">
|
||||||
|
<%= format_value(nutrients[q], @food_summary[:precision][q],
|
||||||
|
@food_summary[:mfu_unit][q]) %>
|
||||||
|
</td>
|
||||||
<% end %>
|
<% end %>
|
||||||
<td class="action unwrappable"><%= action_links(food, :nutrients) %></td>
|
<td class="action unwrappable"><%= action_links(food, :nutrients) %></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
@ -39,8 +39,9 @@
|
|||||||
<tr class="header">
|
<tr class="header">
|
||||||
<td class="quantityhead"><%= "[#{@amount_mfu_unit.shortname}]" %></td>
|
<td class="quantityhead"><%= "[#{@amount_mfu_unit.shortname}]" %></td>
|
||||||
<% @quantities.each do |q| %>
|
<% @quantities.each do |q| %>
|
||||||
<% mfu_unit = @ingredient_summary[:mfu_unit][q] %>
|
<td class="quantityhead">
|
||||||
<td class="quantityhead"><%= "[#{mfu_unit ? mfu_unit.shortname : '-'}]" %></td>
|
<%= "[#{@ingredient_summary[:mfu_unit][q].try(&:shortname) || '-'}]" %>
|
||||||
|
</td>
|
||||||
<% end %>
|
<% end %>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user