Skip to content

Honor holds_enabled in one-day holds flow and convert no-holds items to 1-day holds #2157

Description

@phinze

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

  1. Find an item with holds_enabled = false (e.g. a power washer, carpet cleaner, weed whacker)
  2. View it on the member-facing item page
  3. 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:

  1. Fix the bug so holds_enabled = false is actually honored throughout the holds flow.
  2. 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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions