Week tab: move property between days #32

Closed
opened 2026-05-25 04:18:15 +00:00 by ldraney · 2 comments
Owner

Type

Feature

Lineage

Child of ldraney/landscaping-assistant #28 (parent). Independent of #30 — operates on existing grid cells.

Repo

ldraney/landscaping-assistant

User Story

As a landscaper
I want to move a property from one day to another on the Week tab
So that I can reschedule without removing and re-adding

Context

Properties already queued for a day need a way to be moved to a different day. Button-based interaction: tap the property's cell in the grid, see day options, pick a new day. Updates the work_queue_item's work_date. No drag-and-drop — needs to work reliably on mobile.

Note: This operates on existing grid cells (properties already scheduled). It does NOT require the unassigned section from #30 — that's a separate feature for unscheduled properties.

File Targets

Files the agent should modify or create:

  • app/views/weeks/index.html.erb — move UI on queued/completed cells
  • app/controllers/weeks_controller.rb — move action (update work_date)
  • config/routes.rb — route for move action
  • app/javascript/controllers/ — Stimulus controller for move interaction
  • app/assets/stylesheets/application.css — move UI styles

Files the agent should NOT touch:

  • app/controllers/work_queue_items_controller.rb — don't modify existing actions
  • app/models/ — no model changes

Acceptance Criteria

  • Tapping a queued cell shows day-picker options
  • Selecting a new day updates the work_queue_item's work_date
  • Grid updates to show the property in the new day (old cell cleared)
  • If property is already queued for the target day, show an error (uniqueness constraint)
  • Works via Turbo Stream or Stimulus (no full page reload)
  • Mobile-friendly tap targets

Test Expectations

  • Integration test: moving a property from Monday to Friday updates work_date
  • Integration test: moving to a day where property is already queued returns error
  • Integration test: grid reflects the change after move
  • Run command: bundle exec rspec

Constraints

  • No Tailwind
  • Button-based day picker (not drag-and-drop)
  • Follow existing Turbo Stream and Stimulus patterns
  • Mobile-friendly — 44px touch targets minimum

Checklist

  • PR opened
  • Tests pass
  • No unrelated changes
  • landscaping-assistant — project
  • #28 — parent ticket
### Type Feature ### Lineage Child of `ldraney/landscaping-assistant #28` (parent). Independent of #30 — operates on existing grid cells. ### Repo `ldraney/landscaping-assistant` ### User Story As a landscaper I want to move a property from one day to another on the Week tab So that I can reschedule without removing and re-adding ### Context Properties already queued for a day need a way to be moved to a different day. Button-based interaction: tap the property's cell in the grid, see day options, pick a new day. Updates the work_queue_item's work_date. No drag-and-drop — needs to work reliably on mobile. Note: This operates on existing grid cells (properties already scheduled). It does NOT require the unassigned section from #30 — that's a separate feature for unscheduled properties. ### File Targets Files the agent should modify or create: - `app/views/weeks/index.html.erb` — move UI on queued/completed cells - `app/controllers/weeks_controller.rb` — move action (update work_date) - `config/routes.rb` — route for move action - `app/javascript/controllers/` — Stimulus controller for move interaction - `app/assets/stylesheets/application.css` — move UI styles Files the agent should NOT touch: - `app/controllers/work_queue_items_controller.rb` — don't modify existing actions - `app/models/` — no model changes ### Acceptance Criteria - [ ] Tapping a queued cell shows day-picker options - [ ] Selecting a new day updates the work_queue_item's work_date - [ ] Grid updates to show the property in the new day (old cell cleared) - [ ] If property is already queued for the target day, show an error (uniqueness constraint) - [ ] Works via Turbo Stream or Stimulus (no full page reload) - [ ] Mobile-friendly tap targets ### Test Expectations - [ ] Integration test: moving a property from Monday to Friday updates work_date - [ ] Integration test: moving to a day where property is already queued returns error - [ ] Integration test: grid reflects the change after move - Run command: `bundle exec rspec` ### Constraints - No Tailwind - Button-based day picker (not drag-and-drop) - Follow existing Turbo Stream and Stimulus patterns - Mobile-friendly — 44px touch targets minimum ### Checklist - [ ] PR opened - [ ] Tests pass - [ ] No unrelated changes ### Related - `landscaping-assistant` — project - `#28` — parent ticket
Author
Owner

Scope Review: NEEDS_REFINEMENT

Review note: review-1266-2026-05-24
Template complete, file targets verified, story traceability confirmed. Three issues found:

  • [SCOPE] Architecture note arch-rails-app does not exist in pal-e-docs — needs creation
  • [BODY] Missing AC for uniqueness constraint edge case: WorkQueueItem validates property_id uniqueness scoped to work_date — move action must handle the case where property is already queued for the target day
  • [BODY] Dependency #30 is still open and in backlog — clarify whether move truly requires the unassigned section or just operates on already-queued cells in the existing grid
## Scope Review: NEEDS_REFINEMENT Review note: `review-1266-2026-05-24` Template complete, file targets verified, story traceability confirmed. Three issues found: - **[SCOPE]** Architecture note `arch-rails-app` does not exist in pal-e-docs — needs creation - **[BODY]** Missing AC for uniqueness constraint edge case: WorkQueueItem validates `property_id` uniqueness scoped to `work_date` — move action must handle the case where property is already queued for the target day - **[BODY]** Dependency #30 is still open and in backlog — clarify whether move truly requires the unassigned section or just operates on already-queued cells in the existing grid
Author
Owner

Scope Review: READY

Review note: review-1266-2026-05-24

Re-review after refinement passes. All three previous issues resolved: uniqueness AC added, #30 independence clarified, test command fixed to bundle exec rspec. All file targets verified, traceability complete (story note confirmed), 6 AC are agent-testable, no decomposition needed. Ready for implementation.

## Scope Review: READY Review note: `review-1266-2026-05-24` Re-review after refinement passes. All three previous issues resolved: uniqueness AC added, #30 independence clarified, test command fixed to `bundle exec rspec`. All file targets verified, traceability complete (story note confirmed), 6 AC are agent-testable, no decomposition needed. Ready for implementation.
Sign in to join this conversation.
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
ldraney/landscaping-assistant#32
No description provided.