1
0

Displaying quantities in MEals index, WIP

This commit is contained in:
cryptogopher 2020-04-27 18:15:40 +02:00
parent 4230d72206
commit dfa20a55d1
3 changed files with 19 additions and 10 deletions

View File

@ -82,6 +82,18 @@ class MealsController < ApplicationController
def prepare_meals
@quantities = @project.meal_quantities.includes(:formula)
@foods = @project.meal_foods.compute_quantities(@quantities)
foods = @project.meal_foods.compute_quantities(@quantities)
ingredients = @project.meal_ingredients
@nutrients = {}
ingredients.each do |i|
@nutrients[i] = foods[i.food].map do |q, v|
[q, v && [v[0]*i.amount/i.food.ref_amount, v[1]]]
end.to_h
end
@meals_by_date = ingredients.group_by { |i| i.composition }.reject { |m,*| m.new_record? }
.sort_by { |m,*| m.eaten_at || m.created_at }
.group_by { |m,*| m.eaten_at ? m.eaten_at.to_date : Date.current }
end
end

View File

@ -1,21 +1,16 @@
<% if @meals.any? { |m| m.persisted? } %>
<% if @meals_by_date.any? %>
<%= render partial: 'meals/options' %>
<table id="meals" class="odd-even list">
<tbody>
<% @meals.group_by { |m| m.eaten_at ? m.eaten_at.to_date : Date.current }
.sort_by {|k,v| k }.reverse.each do |date, meals| %>
<tr id="day-<%= date.strftime('%Y%m%d') %>" class="date">
<% @meals_by_date.reverse_each do |date, meals| %>
<tr id="date-<%= date.strftime('%Y%m%d') %>" class="date">
<td class="date" colspan="4">
<h3><%= date == Date.current ? 'Today' : date.strftime('%F') %></h3>
</td>
</tr>
<% eaten, not_eaten = meals.partition { |m| m.eaten_at }
eaten.sort_by! { |m| m.eaten_at }
not_eaten.sort_by! { |m| m.created_at }
(eaten + not_eaten).each_with_index do |m, index| %>
<% next if m.new_record? %>
<% meals.each_with_index do |m, index| %>
<%= render partial: 'meals/show', locals: {m: m, index: index} %>
<% end %>
<% end %>

View File

@ -10,6 +10,7 @@
{remote: true, method: :post, class: "icon icon-time"} %>
<% end %>
</td>
<td id="notes-links-<%= m.id %>" class="unwrappable"
style="text-align: left; border-right: none; width: 1%;">
<%= link_to l(:button_cancel), '', class: 'icon icon-cancel', style: 'display: none;',
@ -24,6 +25,7 @@
<%= link_to l(:button_notes), edit_notes_meal_path(m), remote: true,
class: "icon icon-wiki-page" %>
</td>
<td id="notes-<%= m.id %>" class="notes unwrappable"
style="text-align: left; border-left: none;">
<%= notes(m) %>