Koha Upgrades

Patrons and Circulation Updates for Fall 2021

Below you will find a breakdown of the features and enhancements coming in Koha 20.11 and Koha 21.05.

New Features


[21946] Group circulation by item type

This feature adds the ability to define some itemtypes as ‘parent’ to other item types for defining circulation limits. This allows to create ‘groups’ of related items types. E.g. – a library has both Blu-ray and DVD itemtypes – these can be grouped under the ‘Media’ itemtype. The checkout limit for Media will then apply to both Blu-ray and DVD. So if a library says a patron can have 4 dvds – 4 blu-ray – and sets Media to have a limit of 4 then patrons can have up to 4 items of either type (e.g. 1 DVD, 3 blu-rays) but will be prevented from checking out more of either type by the limit on the parent. Parent rules only apply to checkout limits.

Circulation Rules: Grouping Item Types

[25534] Add ability to specifying and store a reason when cancelling a hold

This new feature adds an option to allow staff to add a reason for cancellation when cancelling a hold. The new ‘CANCELLATION_REASON’ authorized value is used to provide a configurable pick list of reasons. Optionally, the library may choose to define a ‘HOLD_CANCELLATION’ notice which will be sent whenever a cancellation reason is assigned.

Hold Cancellation: Reasons and Notices

[12656] Allow a CANCELLATION_REASON to be specified on the cancel_expired_holds.pl job

These patches add a –reason flag to the cancel expired reserves cronjob.
If a reason is provided the cronjob will trigger a HOLD_CANCELLATION notice for the patron if one is configured. The reason will be available in the notice template to allow custom messages to be sent.

Hold Cancellation: Reasons and Notices


[24151] Add a pseudonymization process for patrons and transactions
Sponsored by Association KohaLa

This new feature adds a way to pseudonymize patron data, in a way that it will not be able to identify the person (https://en.wikipedia.org/wiki/Pseudonymization).There are different existing ways to anonymize patron information in Koha, but by removing information we loose the ability to make useful reports.

Pseudonymization in 21.05: The new feature you'll want to learn to spell and pronounce



[14866] Make high holds work with different item types and number of open days
Sponsored by Catalyst

This patch adds a new circulation rule – decreaseloanholds – which will override the value set in the decreaseLoanHighHoldsDuration system preference for specific item types, or patron categories, or branches.

[24159] Allow daysMode for calculating due and renewal dates to be set at the circulation rules level
Sponsored by Institute of Technology Carlow

This new enhancement is adding the ability to make hourly loan returned on a closed day, if checked out on the same close day. The useDaysMode system preference has been moved to a circulation rule to add more flexibility in the calculation of the due date.

Circulation Rules: decreaseLoanHighHolds and useDaysMode

[19382] Add ability to block guarantees based on fees owed by guarantor and other guarantees.

[23916] Issuer should be recorded and visible in patron circulation history
This new enhancement enables the recording, and subsequent display, of who checked out an item. When viewing a checkout in a patron’s circulation history and an item’s checkout history, details of who carried out the checkout is displayed. The recording of this information is controlled by the new system preference “RecordStaffUserOnCheckout”.

[24201] Attach desk to intranet session
When UseCirculationDesks is enabled and desks are defined and attached to a library, this feature makes it possible to chose your current desk on login or when changing library from the intranet. The desk is then attached to the session.
Future developments are planned to allow associating hold pickup locations with desks and other features.

[25261] Multiple parts handling – confirmation alert
Sponsored by PTFS Europe and Royal College of Music

This enhancement adds the option to require staff members to confirm that an item contains all its listed parts at check-in/check-out time. New system preference: CircConfirmItemParts.

[26643] Staff should be notified that a transfer has been completed on checkin
This patch introduces a notification message on the check-in screen to highlight when the check-in has resulted in the completion of a transfer.

[12224] Allow easy printing of patron check-in slip
Sponsored by Bibliotheksservice-Zentrum Baden-Württemberg (BSZ)

This allows to print a checkin slip with information about all of the items a patron has checked in that day from the checkin page in the staff client. It uses a new notice template with the letter code CHECKINSLIP.

[18532] Messaging preferences for auto renewals
This patchset adds messaging preferences for controlling auto renewal notifications. This allows more fine-grained control on auto renewal notifications.
A new letter is added to the existing AUTO_RENEWALS one, for digest notifications (AUTO_RENEWALS_DIGEST).

[23207] Allow automatic checkin/return at end of circulation period
This adds a new configuration option to the itemtype administration page: Automatic checkin. With automatic checkin enabled the item will be automatically checked in at its due date. In order for this feature to work correctly, the automatic_checkin.pl cronjob needs to be set up on your installation.

Monday Minutes: Automatic Checkin by Item Type

[26937] Add an optional delay to the CheckPrevCheckout system preference
This adds a new system preference CheckPrevCheckoutDelay that allows to specify a number of days that is used with the CheckPrevCheckout feature to determine, if a warning should be shown or not. If the checkin date of the item that is about to be checked out is longer ago than CheckPrefCheckoutDelay days, no warning will be displayed.

Fines and Fees

[23091] Add options to charge new or restore forgiven overdues when a lost item is returned
This new feature allows libraries using the existing WhenLostForgiveFine functionality to reinstate forgiven overdue fines if a lost item is found and the lost item fee is refunded. Specifically, this adds two new options to the lost item fee refund on return policy dropdown in circulation rules. When a lost item is found and the fee refunded, a forgiven overdue fine can be restored in its original accountlines entry or re-created as a new accountlines entry.

Overdue and Lost Items in Koha 21.05: Restore Overdue Fines on Found Items

[23215] Remove PayPal logic from Koha
A while ago, a new payment plugin for PayPal was introduced, with more features like per-branch configurations. This patch removes the PayPal payment feature from the codebase in favor of that plugin. https://gitlab.com/thekesolutions/plugins/koha-plugin-pay-via-paypal

[26272] Allow cashup summaries to be displayed from the library summary page
This enhancement utilises the recently introduced API routes for cashup summaries to allow the display of the cashup summary for the most recent cashup performed on each cash register visible on the cash management library summary page.

[26273] Expose cashup summary history for a cash register
This enhancement adds a cashup history table at the bottom of the register details page. You can then use this table to display the full summary for any cashup that has taken place at this cash register.

[28127] POS register details tables should have a transaction date
This patch adds the accountline timestamp to transactions on the register detail page.

Hold requests

[22789] Establish non-priority holds

This new feature allows libraries to designate a hold as "non-priority" so that it will remain last in priority and will not block renewals.

[23820] Club hold pickup locations should be able to default to patron’s home library.

Sponsored by South East Kansas Library System

[24412] Attach waiting hold to desk
When UseCirculationDesks is enabled and desks are defined and attached to a library, this feature makes it possible to attach a waiting reserve to a desk: when an item is checked in and marked as a waiting reserve, it is also attached to the current desk. The desk is then displayed in the intranet document request page, the intranet borrower holds tab, the item list of the document bibliographic details and the borrower’s OPAC holds tab. You can move waiting reserve from desk to desk by checking in again the item at a different desk.

[24359] Remove items from Holds Queue when checked in
This development makes Koha trigger an update on the holds queue when items are checked in. This way, the holds queue will be updated faster than the default 1 hour frequency (cronjob).
Note: this doesn’t trigger the more expensive task of recalculating the whole queue, which remains a cronjob-based task.

[26498] Add option to set a default expire date for holds at reservation time
Sponsored by Koha-Suomi Oy

This enhancement adds the option to set a default elapsed expiry date for holds at placement and when reservedate is updated.

[15986] Add a script for sending hold waiting reminder notices
This patch adds a new script (holds_reminder.pl) for sending holds reminder notices to patrons. The script is intended to be run as a cronjob and takes several parameters: days – after how many days waiting to send the notice, lettercode – to specify which notice is used, library – (repeatable) to specify which branches to send notices from, holidays – to specify that holidays should not be counted as waiting days, mtt – (message transport type) to specify which notice format to use,
date – to run the script as it would have been on a specific date, n – no emails, test mode – report only, do not send notices.


[24197] Custom destination for failed overdue notices
Sponsored by Catalyst

This adds a new system preference AddressForFailedEmailNotices that allows to control where the summarized overdue email for patrons without email addresses is sent to.

[25097] Add option to message_queue to allow for only specific sending notices
This adds a new command line option -c|–code to the process_message_queue.pl cron job allowing to pick which letter codes will be processed and send when the job runs. This will allow to send different notices at different times depending on your cron job setup.

[14233] Add logging support to notices and slips management
This enhancement adds support for logging changes to notices and slips. Features include a system preference (NoticesLog) which allows you to enable logging changes for notices and slips.

[21886] Add option to send notices from owning library instead of issuing library
Sponsored by Gothenburg University Library

Option added to advance_notice.pl and overdue_notice.pl for sending notices from owning or issuing library.


[6725] Make patron duplicate matching flexible
The new system preference ‘PatronDuplicateMatchingAddFields’ adds more flexibility in the de-duplication of patrons. Prior to this change only surname, firstname and dateofbirth where used. Now the list of fields is configurable.

[20057] Auto-approve option for borrower modifications
Adds a new system preference AutoApprovePatronProfileSettings that allows to automatically approve any requests for patron detail modifications made by patrons from the OPAC.

[23816] Allow to have different password strength and length settings for different patron categories
Sponsored by Northeast Kansas Library System

[26534] Add a Font Awesome icon to help identify staff patrons
This adds a small shield icon to help identify staff members (having catalogue permission) in the staff interface. The icon displays next to the name on top of the brief patron information that is shown on all patron account pages.

[26687] Add a Font Awesome icon for superlibrarian patrons
This adds a bolt icon next to the shield icon introduced by bug 26534, if the user is not only a staff member but also holds the superlibrarian permission.

[21549] Lock expired patron accounts after x days
This report adds pref LockExpiredDelay. When you enter a value there, the cleanup_database.pl cron job will lock the accounts of patrons that expired at least the specified number of days.
This follows the same pattern as existing code that already allows you to anonymize or delete locked patrons.

More Resources For Upcoming Upgrade

Koha Upgrade for Fall 2021