Implement measurements create/destroy and display existing readouts

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-04-02 16:20:59 +00:00
parent d893e59293
commit 5206323d06
6 changed files with 75 additions and 3 deletions

View File

@@ -0,0 +1,12 @@
<%= tag.tr id: dom_id(readout) do %>
<td><%= readout.quantity %></td>
<td class="ralign"><%= readout.value %></td>
<td><%= readout.unit %></td>
<td><%= l(readout.created_at) %></td>
<% if current_user.at_least(:active) %>
<td class="flex">
<%= image_button_to t('.destroy'), 'delete-outline', measurement_path(readout),
method: :delete, data: {turbo_stream: true} %>
</td>
<% end %>
<% end %>

View File

@@ -0,0 +1,11 @@
<% if @readouts.all?(&:persisted?) %>
<%= turbo_stream.update :flashes %>
<%= turbo_stream.remove :measurement_form %>
<%= turbo_stream.enable :new_measurement_link %>
<%= turbo_stream.remove :no_items %>
<% @readouts.each do |readout| %>
<%= turbo_stream.prepend :measurements, readout %>
<% end %>
<% else %>
<%= turbo_stream.update :flashes %>
<% end %>

View File

@@ -0,0 +1,3 @@
<%= turbo_stream.update :flashes %>
<%= turbo_stream.remove @readout %>
<%= turbo_stream.append(:measurements, render_no_items) if current_user.readouts.empty? %>

View File

@@ -7,7 +7,18 @@
<% end %>
</div>
<table class="main-area">
<table class="main-area items-table">
<thead>
<tr>
<th><%= Quantity.model_name.human %></th>
<th><%= Readout.human_attribute_name(:value) %></th>
<th><%= Unit.model_name.human %></th>
<th><%= Readout.human_attribute_name(:created_at) %></th>
<% if current_user.at_least(:active) %>
<th></th>
<% end %>
</tr>
</thead>
<tbody id="measurements">
<%= render(@measurements) || render_no_items %>
</tbody>