Review: Property active/inactive status
Verdict: READY
Template Completeness
- [x] Type — Feature
- [x] Lineage — Child of #8, Phase 1
- [x] Repo — ldraney/landscaping-assistant
- [x] User Story — As a landscaper, mark properties active/inactive
- [x] Context — Foundation for weekly tracking
- [x] File Targets — 4 files to modify/create, 2 exclusions listed
- [x] Acceptance Criteria — 4 criteria
- [x] Test Expectations — 2 test cases + run command
- [x] Constraints — 3 constraints listed
- [x] Checklist — present
- [x] Related — present
Traceability
- [x] story:weekly-tracking label — "Track weekly completion across all active properties"
- [x] story note verified — found in project-landscaping-assistant user-stories section (key: weekly-tracking, success metric: "Week view shows completed/total, inactive properties excluded")
- [x] arch:rails-app label — Rails app architecture component
- [x] arch note verified — arch-rails-app note exists in pal-e-docs (has data-model, controllers, views sections)
- [x] Forgejo issue — ldraney/landscaping-assistant#9, state: open
File Targets
- [x]
db/migrate/xxx_add_active_to_properties.rb— new file (migration dir exists, no active column yet in schema) - [x]
app/models/property.rb— verified: exists, currently has associations and validations, no scope yet. Addingscope :activeis straightforward. - [x]
app/controllers/work_queue_items_controller.rb— verified: line 5 has@properties = Property.includes(:services, :work_queue_items).order(updated_at: :desc). Adding.activescope here is the correct change. - [x]
app/controllers/properties_controller.rb— verified: exists. Thefind_or_create_by!inresolvewould use DB default (true), which is correct. No explicit code change strictly needed here — the migration default handles it.
Repo Placement
OK. Issue filed on ldraney/landscaping-assistant, all file targets are in the same repo. Single-repo change.
Dependencies
- Parent ticket #8 (board item #1250) is in backlog — no blocker since this is a decomposed phase.
- Board item #1248 (nav + work queue, issue #5) is in done — the work_queue_items_controller already exists, no conflict.
- No blocking dependencies. This can proceed independently.
Acceptance Criteria
All 4 criteria are testable by an agent:
- "active column exists" — verifiable via schema check or
rails db:migrate+ column inspection - "Property.active scope" — verifiable via model spec
- "Today queue only shows active" — verifiable via request spec on /today endpoint
- "Existing properties default to active" — verifiable via migration (default: true)
Test run command (
bundle exec rspec) is valid.Blast Radius
Low. The
active scope only filters in the work queue index. The properties index view (properties/index.html.erb) is not affected (it lists all properties for CRUD). No downstream consumers beyond this single app. No sibling services.Decomposition Assessment
No decomposition needed. 4 file targets in 1 repo, 4 acceptance criteria, estimated agent work well under 5 minutes. This is a focused schema + scope + filter change.
Recommendation
No action needed.