Support large-scale bulk renewals

Description

Purpose: Renewals for hundreds of items, or changing the due date for hundreds of items, are failing after 99 items. Back end work is needed to support bulk actions for hundreds of loans at a time.

from :
There are 2 individual requests (1 OPTIONS, 1 PUT) to renew every loan, so there are too many requests to renew the list of loans. In the case of snapshot or test env, it's really challenging to do it without errors and not to drop down the service (because it takes a lot of resources to handle them). So it seems, the special endpoint on the backend should be created to renew (and change due date) the bunch of loans.

CSP Request Details

None

CSP Rejection Details

None

Potential Workaround

None

Checklist

hide

TestRail: Results

Activity

Show:

Emma BoettcherJuly 9, 2020 at 4:53 PM

addressed the issue via a front end fix

Cate BoeremaJanuary 30, 2020 at 2:32 PM

Per meeting yesterday with , and , we have a plan for this problem. First step will be to make sure the UI is sending the update requests sequentially as we think that may prevent the process from keeling over (or at least extend the number of requests that can be made before it keels over). Then we'll test whether that seems to be working and, if so, we'll provide some user feedback so users aren't confused by the delay (it is expected that processing large number of renewals may take a little while). Loading ellipses can be used for this purpose.

I think we should probably write up a UIU bug for the work we now plan to do and link it to this one. You can mark this one Draft so it doesn't display in our backlog anymore. We can close it as Wont do if our front end change works.

Hopefully I captured our decision properly. Jump in if I got it wrong, guys.

Marc JohnsonJanuary 17, 2020 at 3:57 PM

Do you think there might be a potential ui solution to this problem?

See this comment and below on for a partial conversation on what Concorde tried and folks thoughts on resolving this in the UI.

Maybe the popup says "you have selected more than 99 records" and there is a button that says "update first batch of records (1 of 3)" and then when it is completed, another button says "update second batch of records (2 or 3)" or something.

I don't know what the significance of 99 is, I'm guessing it coincidentally failed at that point during manual testing?

Do we know how many loans would typically have their due date changed at the same time?

It's a bit kludgy, but might get the job done with a lot less effort than fixing the back end. I get the impression from Marc Johnson's comments that fixing the backend would be expensive. How big of a project are we talking about?

I don't know how big this would be without further investigation. As far as I'm aware, we don't have many business logic bulk operations in the system at the moment, the closest being the data import process (which is modelled very differently).

It likely depends upon a few factors, for example:

  • how many loans we want to change at the same time

  • how long we expect that process to take (relative to the number of loans being changed)

  • what feedback the UI wants to provide whilst the loans are being changed

Cate BoeremaJanuary 17, 2020 at 10:22 AM

Do you think there might be a potential ui solution to this problem? Maybe the popup says "you have selected more than 99 records" and there is a button that says "update first batch of records (1 of 3)" and then when it is completed, another button says "update second batch of records (2 or 3)" or something. It's a bit kludgy, but might get the job done with a lot less effort than fixing the back end. I get the impression from 's comments that fixing the backend would be expensive. How big of a project are we talking about?

Dmytro PopovNovember 14, 2019 at 1:42 PM

I believe, bulk renewal and change due date are two different pieces of funcaitonlity. It is best to create separate tickets to handle those.

Won't Do

Details

Assignee

Reporter

Labels

Priority

Development Team

Prokopovych

TestRail: Cases

Open TestRail: Cases

TestRail: Runs

Open TestRail: Runs

Created November 8, 2019 at 4:48 PM
Updated July 9, 2020 at 4:53 PM
Resolved July 9, 2020 at 4:53 PM
TestRail: Cases
TestRail: Runs