* Implement AddSeedsPicker component and enhance planting selection UI; update styles and serializers for better seed management
* Enhance PlantingPicker component: add hints and titles for harvest and seed actions; update test to reflect changes in seed saving behavior
* Enhance harvest recording: allow harvesting from crops without plantings; update forms and modals for better user experience
* Refactor code structure for improved readability and maintainability
* Remove AddSeedsPicker component and its associated tests
* Add planting picker functionality for harvesting and seed saving
- Introduced PlantingPickersController to handle JSON responses for member's plantings.
- Updated HomeHelper to include crop ID in planting picker properties.
- Refactored PlantPicker and PlantSomethingModal components to support multiple gardens.
- Created PlantingFlow component to manage planting actions (harvest and save seeds).
- Implemented RecordDialog component to handle server-rendered links for harvesting and seed saving.
- Updated various views to include data attributes for triggering the record dialog.
- Added routes for planting picker and corresponding request specs for testing.
- Adjusted styles in _plantings.scss for better layout and spacing.
* Add job management features including job creation and wishlist functionality
* Remove WishlistJobsController and associated views and tests
* Add suggestion links rendering and fix routes formatting
* Refactor AddJobModal and JobPicker components to simplify props and enhance user experience
* Update seed addition test to check dialog presence and current path
* Apply suggestion from @CloCkWeRX
---------
Co-authored-by: Daniel O'Connor <daniel.oconnor@gmail.com>
The garden dialog now adds a garden as well as edits one (new.json and
create.json on GardensController), and a GardenPicker button opens it from the
home page. A plant_picker helper replaces the home page's separate plant
links and the plant_button partial. The plant dialog asks when it was
planted (Today, Yesterday, Enter date), using a WhenPicker shared with the
harvest dialog. Members with no garden still get the full-page plant link.
Part of #4933
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
* Restore the Ruby 4.0.6 upgrade
PR #4831 committed a stale Gemfile.lock over the newer one, taking
.ruby-version back to 3.2.3 and rolling back active_median, dalli,
parallel, rbs and selenium-webdriver. Dockerfile and
.devcontainer/Dockerfile still build on Ruby 4, so the Gemfile's version
check fails against the image.
Restores both files to what they were before that merge.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
* Upgrade Font Awesome from 5.15.1 to 6.7.2
Font names have moved on twice since this was pinned: the codebase still
carried Font Awesome 4 names that render as an empty box, and FA6 icons
such as fa-ellipsis-vertical were unavailable.
The 6.x gem no longer ships _font-awesome-sprockets.scss, but its
@font-face rules still call fa-font-path(), so application.scss defines
that against Sprockets' font-path helper. Its fonts live under
assets/fonts/font-awesome, which is already in the precompile list.
Icon names:
- The bare "fa" prefix is not a style in 6. Every "fa fa-<name>" becomes
"fas fa-<name>" (38 call sites, all solid; the one brands icon already
used fab).
- fa-sun-o was a Font Awesome 4 name and had been rendering as a box;
now fa-sun.
- fa-pencil was likewise broken under 5, where it was fa-pencil-alt. It
exists again in 6, so the existing name now works.
- activity_icon asked for 'fa-truck-pickup' through a helper that already
adds the prefix, so it emitted "fa-fa-truck-pickup".
Verified that the solid, regular and brands fonts all resolve through
the asset pipeline.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
* couple more places to upgrade font awesome
---------
Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
The server needs a harvest to come after the planted date, so a planting
made today (or yesterday) has no Yesterday, and the date box starts the
day after it was planted.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Step 3 is when (Today, Yesterday, or Enter date), step 4 is any notes,
and that step saves. The choices so far are shown back with Change
buttons, and there is a Back button. Closing the dialog is how you cancel.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Step 1 is what part you harvested: a big text box, with the cursor in it,
that completes from the plant parts (the crop's usual one first). Step 2
is how much: quantity, weight, when and notes, with the choice shown back
and a Change button. Same look as the Add planting dialog.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Three dots > record harvest opens a quick entry form (how many, weight,
when, plant part, notes) in a modal, with the crop and today's date
filled in. It saves as JSON and swaps in the refreshed card, so the page
is never left. Ctrl/cmd-click still opens the full harvest page.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>