Describe the bug
After the one-day holds feature (#2118) went out, items which previously had holds disabled (the "Allow holds to be placed on this item" checkbox unchecked, i.e. holds_enabled = false) are now letting members place regular 7-day holds. That's a regression. We didn't intend to touch the no-holds behavior when shipping one-day holds.
To Reproduce
- Find an item with
holds_enabled = false (e.g. a power washer, carpet cleaner, weed whacker)
- View it on the member-facing item page
- A "Place hold" button appears and will create a regular 7-day hold
Expected behavior
Items with holds_enabled = false should not accept new holds at all. We're keeping the concept around just in case, even though we don't have an active use for it right now.
Additional context
The backstory is that one-day holds were meant to be the better alternative to disabling holds entirely. Items like power washers, carpet cleaners, and weed whackers used to have holds disabled, which in practice led to members emailing and calling the library to get informal dibs. A 1-day hold window solves that same problem without the phone tag.
So alongside the bug fix, there's a one-time data update to run: find items currently set to holds_enabled = false and flip them to holds_enabled = true with hold_duration = 1, so the previous no-holds set becomes the initial 1-day-hold set.
Summary of work:
- Fix the bug so
holds_enabled = false is actually honored throughout the holds flow.
- Run a one-time data update to convert existing no-holds items to 1-day-hold items.
Conversation with Tessa in Slack on 2026-04-22 confirmed the approach.
Describe the bug
After the one-day holds feature (#2118) went out, items which previously had holds disabled (the "Allow holds to be placed on this item" checkbox unchecked, i.e.
holds_enabled = false) are now letting members place regular 7-day holds. That's a regression. We didn't intend to touch the no-holds behavior when shipping one-day holds.To Reproduce
holds_enabled = false(e.g. a power washer, carpet cleaner, weed whacker)Expected behavior
Items with
holds_enabled = falseshould not accept new holds at all. We're keeping the concept around just in case, even though we don't have an active use for it right now.Additional context
The backstory is that one-day holds were meant to be the better alternative to disabling holds entirely. Items like power washers, carpet cleaners, and weed whackers used to have holds disabled, which in practice led to members emailing and calling the library to get informal dibs. A 1-day hold window solves that same problem without the phone tag.
So alongside the bug fix, there's a one-time data update to run: find items currently set to
holds_enabled = falseand flip them toholds_enabled = truewithhold_duration = 1, so the previous no-holds set becomes the initial 1-day-hold set.Summary of work:
holds_enabled = falseis actually honored throughout the holds flow.Conversation with Tessa in Slack on 2026-04-22 confirmed the approach.