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>
26 lines
1.1 KiB
Plaintext
26 lines
1.1 KiB
Plaintext
<%= tag.tr id: dom_id(quantity),
|
|
ondragstart: "dragStart(event)", ondragend: "dragEnd(event)",
|
|
ondragover: "dragOver(event)", ondrop: "drop(event)",
|
|
ondragenter: "dragEnter(event)", ondragleave: "dragLeave(event)",
|
|
data: {drag_path: reparent_quantity_path(quantity), drop_id: dom_id(quantity),
|
|
drop_id_param: "quantity[parent_id]"} do %>
|
|
|
|
<td style="--depth:<%= quantity.depth %>">
|
|
<%= link_to quantity, edit_quantity_path(quantity), class: 'link',
|
|
onclick: 'this.blur();', data: {turbo_stream: true} %>
|
|
</td>
|
|
<td><%= quantity.description %></td>
|
|
<td><%= quantity.default_unit&.symbol %></td>
|
|
|
|
<% if current_user.at_least(:active) %>
|
|
<td class="flex">
|
|
<%= image_link_to t('.new_subquantity'), 'plus-outline', new_quantity_path(quantity),
|
|
id: dom_id(quantity, :new, :link), onclick: 'this.blur();', data: {turbo_stream: true} %>
|
|
|
|
<%= image_button_to_if quantity.destroyable?, t('.destroy'), 'delete-outline',
|
|
quantity_path(quantity), method: :delete %>
|
|
</td>
|
|
<td class="handle" draggable="true">⠿</td>
|
|
<% end %>
|
|
<% end %>
|