Implement Request Statuses

Description

Purpose:
To implement statuses for requests.

Scenarios:

  1. Scenario

    • Given open request X for item Y and item Y has not been checked in to fill the request

    • Then request X's request status should be "Open - Not yet filled"

  2. Scenario

    • Given open request X for item Y with:

      • Request status = "Open - Not yet filled"

      • Request Fulfillment preference = Hold shelf

    • When item Y is checked in

    • Then request X’s request status should change to “Open - Awaiting pickup”

  3. Scenario

    • Given open request X for item Y with:

      • Request status = "Open - Awaiting pickup"

    • When item Y checked out to the requester

    • Then request X’s request status should change to “Closed - Filled”

  4. Scenario

    • Given open request X for item Y with:

      • Request status = "Open - Awaiting pickup"

    • When item Y is checked out to a user who is NOT the requester

    • Then a message should appear "This item is awaiting pickup by a different user"

    • No check out will occur

    • The request status should remain "Open - Awaiting pickup"

Environment

None

Potential Workaround

None

Attachments

1

Checklist

hide

TestRail: Results

Activity

Show:

Tania Hewes March 23, 2018 at 2:30 PM

and UICHKOUT-406 created for beautifying the popup for scenario 4.

Tania Hewes March 23, 2018 at 1:08 PM
Edited

- I marked Scenario 4 as because we do get a message about "User checking out must be requester awaiting pickup" and the check out is not allowed, but it's not a user-friendly modal. I didn't specify a modal, though, so let me know if I should mark this one done and create a new issue, or if you'd rather I include it in this issue.

Marc Johnson March 7, 2018 at 4:26 PM
Edited

Hi

I thought I’d write up the expanded scenarios I’ve used for and , based upon the original ones you wrote, to see if there is anything missing.

The delivery fulfilment preference scenarios are there to demonstrate the current intended behaviour prior to implementing fulfilment for these, and to act as a structure for making those changes.

I have also looked at a scenario where the requests could be created out of order, in order to verify the ordering of the queue.

I tried writing scenarios for multiple delivery requests, however these didn’t seem to add much (in addition to the mixed fulfilment preference scenarios) until they are fulfillable (and those will look similar to the multiple hold fulfilment requests scenarios with a few extra steps)

There are also variations on these scenarios for when the request type is different (either hold or recall) to check that the correct Checked out status variation is used, I’ve omitted those as we discussed them recently and would be mostly repetitions of the above.

There are some scenarios about repeated updates to loans or unusual creation that I haven’t covered because they span broader scope than these changes.

Single Hold Shelf Fulfilment Request

Request is Awaiting Pickup Upon Check In

Given Small Angry Planet has been loaned to James
And Jessica has made a hold shelf request for it
When James returns it
Then Jessica’s request changes status to Open - Awaiting pickup
And the item status changes to Awaiting pickup

Request is Fulfilled Upon Check Out

Given Jessica has made a hold shelf request for Small Angry Planet
(omitting that it was previously loaned in order for the request to be made)
When Jessica checks it out
Then Jessica’s request changes status to Closed - Filled
And the item status changes to Checked out

Request is Fulfilled Upon Check Out

Given Jessica has made a hold shelf request for Small Angry Planet
And Jessica has the item checked out
When Jessica checks the item in
Then Jessica’s request stays Closed - Filled
And the item status changes to Available

Other Patron Attempts Check Out

Given Jessica has made a hold shelf request for Small Angry Planet
When Rebecca attempts to checks it out
Then the check out is refused
And Jessica’s request is still Open - Awaiting pickup
And the item status is still Awaiting pickup

Single Delivery Fulfilment Request

Request is Still Open Upon Check In

Given Small Angry Planet has been loaned to James
And Jessica has made a delivery request for it
When James returns it
Then Jessica’s request remains Open - Not yet filled
And the item status changes to Available

Request is Still Open Upon Check Out

Given Jessica has made a delivery request for Small Angry Planet
When Jessica checks it out
Then Jessica’s request remains Open - Not yet filled
And the item status changes to Checked out - Held
(if the request type is Hold, or Checked out - Recalled if the request type is Recall)

Other Patron Attempts Check Out

Given Jessica has made a delivery request for Small Angry Planet
When Rebecca checks it out
Then Jessica’s request remains Open - Not yet filled
And the item status changes to Checked out - Held

Multiple Hold Shelf Fulfilment Requests

Highest Priority Hold Shelf Request is Awaiting Pickup Upon Check In

Given Small Angry Planet has been loaned to James
And Jessica has made a hold shelf request for it
And Steve has made a subsequent hold shelf request
When James returns it
Then Jessica’s request changes status to Open - Awaiting pickup
And Steve’s request changes status to Open - Not yet filled
And the item status changes to Awaiting pickup

Highest Priority Hold Shelf Request is Fulfilled Upon Check Out

Given Jessica has made a hold shelf request for Small Angry Planet
And Steve has made a subsequent hold shelf request for the same item
When Jessica checks out the item
Then Jessica’s request changes status to Closed - Filled
And Steve’s request remains Open - Not yet filled
And the item status changes to Checked out - Held

Highest Priority Hold Shelf Requester Checks In

Given Jessica has made a hold shelf request for Small Angry Planet
And Steve has made a subsequent hold shelf request for the same item
And Jessica has checked out the item
When Jessica checks it back in
Then Jessica’s request stays Closed - Filled
And Steve’s request changes status to Open - Awaiting pickup
And the item status changes to Awaiting pickup

Other Patron Attempts Check Out

Given Jessica has made a hold shelf request for Small Angry Planet
And Steve has made a subsequent hold shelf request
When Rebecca attempts to checks it out
Then the check out is refused
And Jessica’s request is still Open - Awaiting pickup
And Steve’s request is still Open - Not yet filled
And the item status is still Awaiting pickup

Other Requester Attempts Check Out

Given Jessica has made a hold shelf request for Small Angry Planet
And Steve has made a subsequent hold shelf request
When Steve attempts to checks it out
Then the check out is refused
And Jessica’s request is still Open - Awaiting pickup
And Steve’s request is still Open - Not yet filled
And the item status is still Awaiting pickup

Multiple Mixed Fulfilment Requests

Highest Priority Hold Shelf Request is Awaiting Pickup Upon Check In

Given Small Angry Planet has been loaned to James
And Rebecca has made a delivery shelf request for it
And Jessica has made a subsequent hold shelf request
And Steve has made a subsequent hold shelf request
When James returns it
Then Rebecca’s request stays Open - Not yet filled
And Jessica’s request changes status to Open - Awaiting pickup
And Steve’s request changes status to Open - Not yet filled
And the item status changes to Awaiting pickup

Highest Priority Hold Shelf Request is Fulfilled Upon Check Out

Given Rebecca has made a delivery shelf request for Small Angry Planet
And Jessica has made a subsequent hold shelf request for the same item
And Steve has made a subsequent hold shelf request for the same item
When Jessica checks out the item
Then Rebecca’s request stays Open - Not yet filled
And Jessica’s request changes status to Closed - Filled
And Steve’s request remains Open - Not yet filled
And the item status changes to Checked out - Held

Highest Priority Hold Shelf Requester Checks In

Given Rebecca has made a delivery shelf request for Small Angry Planet
And Jessica has made a hold shelf request for the same item
And Steve has made a subsequent hold shelf request for the same item
And Jessica has checked out Small Angry Planet
When Jessica checks it back in
Then Rebecca’s request stays Open - Not yet filled
And Jessica’s request stays Closed - Filled
And Steve’s request changes status to Open - Awaiting pickup
And the item status changes to Awaiting pickup

Other Patron Attempts Check Out

Given Rebecca has made a delivery shelf request for Small Angry Planet
And Jessica has made a hold shelf request for the same item
And Steve has made a subsequent hold shelf request
When Charlotte attempts to checks it out
Then the check out is refused
Then Rebecca’s request stays Open - Not yet filled
And Jessica’s request is still Open - Awaiting pickup
And Steve’s request is still Open - Not yet filled
And the item status is still Awaiting pickup

Delivery Requester Attempts Check Out

Given Rebecca has made a delivery shelf request for Small Angry Planet
And Jessica has made a hold shelf request for the same item
And Steve has made a subsequent hold shelf request
When Rebecca attempts to checks it out
Then the check out is refused
Then Rebecca’s request stays Open - Not yet filled
And Jessica’s request is still Open - Awaiting pickup
And Steve’s request is still Open - Not yet filled
And the item status is still Awaiting pickup

Other Hold Shelf Requester Attempts Check Out

Given Rebecca has made a delivery shelf request for Small Angry Planet
And Jessica has made a hold shelf request for the same item
And Steve has made a subsequent hold shelf request
When Steve attempts to checks it out
Then the check out is refused
Then Rebecca’s request stays Open - Not yet filled
And Jessica’s request is still Open - Awaiting pickup
And Steve’s request is still Open - Not yet filled
And the item status is still Awaiting pickup

Closed Requests

Closed Requests Do Not Stop Check Out To Patron

Given Jessica has made a hold shelf request for Small Angry Planet that has been fulfilled
When Steve checks it out
Then Jessica’s request remains Closed - Filled
And the item status changes to Checked out

Closed Requests Do Not Stop Check Out To Previous Requester

Given Jessica has made a hold shelf request for Small Angry Planet that has
been fulfilled
And Steve has made a hold shelf request for the same item has
been fulfilled
When Steve checks it out
Then Jessica’s request remains Closed - Filled
And Steve’s request remains Closed - Filled
And the item status changes to Checked out

Tania Hewes February 14, 2018 at 10:20 PM

I am attempting to summarize my conversation with about item & request statuses in the context of and .

(I am also changing "active" to "open" in the story above because it seems to be a clearer term to use)

1. Hold and Recall requests can only be made for items which are currently checked out (i.e. has an open loan / in one of the three "Checked out" states)

2. There can be multiple open requests for an item at any given time. An open request is a request that is in one of the open states (all of which start with “Open”)

3. When we have multiple open requests, a priority queue is formed from them. The initial way of determining the priority is by age, with the oldest request being the highest priority.

4. The general flow of a request being fulfilled to the hold shelf (the scope of and ) is:

  • "Open - not yet filled", triggered when the request is first created (may change item status to "Checked out - Recalled" or "Checked out - Held" depending upon request type, existing behaviour)

  • "Open - awaiting pickup", triggered when the item requested is returned by the current loanee and the request is top of the queue (changes item status to "Awaiting pickup")

  • "Closed - filled", triggered when the item is loaned to the requesting patron (item status changes to appropriate "Checked out" status depending upon if there are other open requests)

5. The presence of one or more open requests impacts:

  • The (circulation) status of an item

  • Whether a loan can be renewed (beyond the scope of and )

  • Who a returned item can be loaned to

6. A returned item with an open request for fulfillment to the hold shelf can only be subsequently loaned to the highest priority requesting patron

A returned item that has been set to "Awaiting pickup" status can only be loaned to the requester of the associated "Open - awaiting pickup" request
This one is stated two ways because we went back and forth on the implication of wording, but the essence is (again stated two ways because they seem subtly different to me):

  • Both the determination of the status (which is what potentially blocks the check out) and who the item can be loaned to, is dependent upon the request at the top of the priority queue

  • The status is determined (at check in) by the request being at the top of the queue. Who it can be loaned to is determined by the item's "Awaiting pickup" status + the requester in the associated "Open - awaiting pickup" request.

Marc Johnson February 12, 2018 at 12:58 PM
Edited

Hi Tania,

Thank you for sharing the document, that is useful broader context for this area.

I’ve started looking at this (in conjunction with and wanted to reflect my understanding and ask a few questions.

Reflection

For the scope of this work, we want to introduce the following request states:

  • Open - Not yet filled

  • Open - Awaiting pickup

  • Closed - Filled

All requests (Hold, Recall and Page types) should be in the initial state of Open - Not yet filled

Changes to the item (circulation) status are out of scope for this change and part of

Does that fit with your understanding of this change?

Questions

What is an active request? Is it a request not in the Closed - Filled state (and later the other closed states)?

Scenario 2 describes the change in request status when the fulfilment preference is Hold shelf.
If the request has any other fulfilment preference (the only other choice at the moment is Delivery), no change in request status should occur (and hence scenario 3 and 4 only apply to Hold shelf delivery preferences)? And the behaviour for other fulfilment preferences will be covered in other issues.

In the above examples, is request X the only request for an item, or are these scenarios intended to also reflect multiple (active) requests for the same item, and request X is the oldest request (as this is the initial request queue policy)? Looking at I'm going to assume it is the latter

Done

Details

Assignee

Reporter

Priority

Fix versions

TestRail: Cases

Open TestRail: Cases

TestRail: Runs

Open TestRail: Runs
Created November 30, 2017 at 2:43 AM
Updated July 16, 2018 at 9:29 AM
Resolved March 23, 2018 at 2:33 PM
TestRail: Cases
TestRail: Runs