forked from fixin.me/fixin.me
Readouts gain a taken_at timestamp (distinct from created_at) that records
when the measurement was actually taken. Measurements are now ordered by
taken_at descending.
Quantities gain an optional default_unit association. When set, the unit
is pre-selected in the measurement form. A "Set as default" button on the
unit selector lets users update the default directly from the form.
- Migrations: add taken_at (datetime) to readouts,
add default_unit_id (fk → units) to quantities
- Readout: expose taken_at in ATTRIBUTES permit-list
- Quantity: add default_unit belongs_to, expose in ATTRIBUTES
- QuantitiesController: load @user_units for form actions
- Quantities views: add Default unit column and select to form
- Readouts form: pre-select default unit; add "Set as default" button
(readoutUnitChanged / setDefaultUnit wired up in a later commit)
- Measurements form: default taken_at input to current time
- ApplicationHelper: propagate :form option to html_options in builder
- config/environments/test.rb: allow Capybara's dynamic host
- Tests: system tests for default-unit UI on the Quantities page
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
25 lines
931 B
Plaintext
25 lines
931 B
Plaintext
<%= tabular_fields_for @quantity, form: form_tag do |form| %>
|
|
<%- tag.tr id: row, class: "form", onkeydown: "formProcessKey(event)",
|
|
data: {link: link, form: form_tag, hidden_row: hidden_row} do %>
|
|
|
|
<td style="--depth:<%= @quantity.depth %>">
|
|
<%= form.text_field :name, required: true, autofocus: true, size: 20 %>
|
|
</td>
|
|
<td>
|
|
<%= form.text_area :description, cols: 30, rows: 1, escape: false %>
|
|
</td>
|
|
<td>
|
|
<%= form.collection_select :default_unit_id, @user_units, :id,
|
|
->(u){ sanitize(' ' * (u.base_id? ? 1 : 0) + u.symbol) },
|
|
{include_blank: true}, onchange: "this.dataset.changed = ''" %>
|
|
</td>
|
|
|
|
<td class="flex">
|
|
<%= form.button %>
|
|
<%= image_link_to t(:cancel), "close-outline", quantities_path, class: 'dangerous',
|
|
name: :cancel, onclick: render_turbo_stream('form_close', {row: row}) %>
|
|
</td>
|
|
<td></td>
|
|
<% end %>
|
|
<% end %>
|