https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=26355

Matt Blenkinsop <[email protected]> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
 Attachment #193526|0                           |1
        is obsolete|                            |

--- Comment #74 from Matt Blenkinsop <[email protected]> ---
Created attachment 193761
  -->
https://bugs.koha-community.org/bugzilla3/attachment.cgi?id=193761&action=edit
Bug 26355: Add the class methods and endpoint to handle renewal

This is part of a sponsored piece of development from one of our customers.
There was a specification of requirements but I was conscious of the ideas
already discussed on this bug and wanted to try and develop a solution that
would balance both sets of requirements. The concept works as follows:
- Self-renewal can be enabled and controlled at a category level
    - The window within which it is available is customisable (both pre and
post-expiry)
        - Defaults to the NotifyBorrowerDeparture syspref
    - The amount in fines that block self-renewal is customisable
        - Defaults to the category level charges and then the noissescharge
preference
    - The message to display if renewal fails is customisable
- Libraries can also add information to display to the patron at the start of
the process.
- The self-renewal process will also respect the OPACPatronDetails and
AutoApprovePatronProfileSettings sysprefs. If OPACPatronDetails is enabled, the
renewal will redirect the patron to the OPAC details form and ask them to
confirm their details are still correct. Any changes will be logged as patron
modifications and approved in line with the auto approval syspref
- Renewal happens regardless of whether OPACPatronDetails is enabled, only the
details changes are logged as modification requests
- Notifications are sent to the patron in line with their messaging preferences

Test plan:
1. Apply all patches and reset_all
2. In the intranet, navigate to patron categories and edit the ‘Patron’
category
3. Scroll to the bottom, there should be a section called ‘Account expiry and
self-renewal’
4. Set ‘Allow self-renewal’ to Yes
5. Set Self-renewal availability period to be 10 days
6. Set Self-renewal availability post-expiry’ to also be 10 days and save
7. In system preferences, set the OPACPatronDetails preference to ‘Don’t allow’
8. Choose a patron that has the ‘Patron’ type category
9. Edit that patron so that you can log into the OPAC and set their expiry date
to be yesterday’s date
10. Log into the OPAC as that patron (it may be easiest to do this in incognito
as we will be swapping between the intranet and OPAC throughout the test plan
and it will remove the need to keep logging out and in)
11. You should see a message that says “You are eligible for self-renewal.
Please click here to renew your account.”
12. Click that link - you will be presented with a modal that says “Are you
sure you want to renew your account?”
13. Click “Close” - we don’t want to complete renewal yet as there is more
functionality available to test
14. Navigate to the patron category again, set ‘Self-renewal availability
post-expiry’ to be 0
15. Refresh the OPAC, the self-renewal link should not be there as we are now
outside the patron self-renewal window
16. Undo that change in the patron category, the link should reappear when
refreshing the OPAC
17. Now set the patron’s expiry date to be tomorrow
18. In the category, set ‘Self-renewal availability period’ to be blank
19. Refresh the OPAC, it should still show the link as it is defaulting to
NotifyBorrowerDeparture
20. Set NotifyBorrowerDeparture to 0
21. Refresh the OPAC, the link should vanish
22. In the category, restore ‘Self-renewal availability period’ to 10 days
23. Refresh the OPAC, the link should reappear
24. In the intranet, set the patron to be debarred using a manual restriction
25. In the OPAC refresh the page - self-renewal should no longer be available
26. Remove the restriction - the renewal link will be visible again
27. Set a fine on the patron record of 6 USD
28. Refresh the OPAC, the self-renewal link will be gone because we are over
the global ‘noissuescharge’ preference value of 5
29. In the category, set ‘Checkout charge limit’ to 7
30. Refresh the OPAC, the link will be visible because we are now under the
category charge
31. Add an additional fine of 2 to the patron account
32. Refresh the OPAC, the self-renewal link is gone
33. In the category, set ‘Self-renewal charge limit’ to be 10
34. Refresh the OPAC, the link will be visible again
35. In the category, set ‘Self-renewal failure message’ to be whatever you want
36. In the OPAC, refresh the page and then click into the self-renewal process
37. This time, click “No” - you should see the failure message you have just
set
38. Click “Close” and refresh the page to reset this message
39. In the category, set a message in the “Self-renewal information message”
40. In the OPAC, refresh the page and then click the renewal link again
41. You should be met with the modal, this time displaying the information
message we just set up in the patron attributes
42. Click “Yes” - you should see the “Are you sure you want to renew your
account?” message again
43. This time when prompted with the “Are you sure” message, click “Yes”
44. The page should refresh and display a confirmation with the new expiry
date.
45. In the intranet, view the patron’s record - the date should have been
updated
46. In the Modification log tab, there should be a log entry for “Membership
renewed”
47. Change the patron’s expiry date again, this time to be yesterday’s date
48. In the OPAC, click on “Personal detail”, the new expiry date should show
there
49. Now set the OPACPatronDetails syspref to be “Allow”
50. Click on “Summary” again, the self-renewal link should be there again
51. Click into the self-renewal process and click “Yes” on your verification
step
52. This time you should be met with a message that says “Confirm your account
details”
53. Click “Continue” - you will be redirected to the OPAC details form
54. There should be a message at the top that says “Please verify your details
to proceed with your self-renewal.”
55. Update a field somewhere on the patron form
56. Scroll to the bottom - the button should say “Submit renewal request”
57. Click this button
58. You will be shown the renewal confirmation message
59. In the intranet, on the homepage you should now see a modification request
60. Check the request, it should match the fields you changed - don’t approve
or deny for now
61. Set ‘AutoApprovePatronProfileSettings’ in sysprefs to “Enable”
62. Reset your patron’s expiry date to today’s date
63. In the OPAC, click into Personal details and then back into Summary again
(we need to do this to remove the success parameter from the URL)
64. The renewal link will be visible again - go through the process again
65. On the form, you should see an alert that you have already sent a
modification request
66. This time, change a different field to the previous attempt
67. Submit the form
68. In the intranet there should be no modification this time and the change
should be visible in the patron record as it has been automatically approved
and handled as per the syspref
69. prove t/db_dependent/Koha/Patron.t
70. prove t/db_dependent/api/v1/patrons_self_renewal.t
71. yarn cypress run --spec t/cypress/integration/Islands/SelfRenewal.ts
72. Sign off!

-- 
You are receiving this mail because:
You are watching all bug changes.
_______________________________________________
Koha-bugs mailing list
[email protected]
https://lists.koha-community.org/cgi-bin/mailman/listinfo/koha-bugs
website : http://www.koha-community.org/
git : http://git.koha-community.org/
bugs : http://bugs.koha-community.org/

Reply via email to