What’s new
This section highlights new features and enhancements in the latest Koha releases.
This section is updated as the manual is updated. Therefore, it may not contain all the new features and enhancements in the release. Please consult the release notes to find an exhaustive list of all changes in Koha for each version.
24.05
E-resource management
You can now import local title records into Koha from a KBART file, making it easier to get your eholdings records into Koha.
Record sources and locked records
This new feature allows libraries to define record sources, with the option to ‘lock’ the records from specific sources to prevent them from being edited in Koha.
This is particularly useful in instances where records are catalogued in another system and pushed to Koha. Sometimes, in those cases, it’s best to edit the records in the source system rather than in Koha.
In version 24.05, the records’ sources can only be set when adding records using the API. Eventually, it will be possible to manually set the record’s source, but it is not currently the case.
This new feature comes with new permissions as well:
manage_record_sources: staff with this permission will be able to create, edit, and delete record sources.
edit_locked_records: staff with this permission will be able to edit records whose source should protect them from modification.
Date patron attribute types
Patron attribute types can now be defined as dates. When adding a new patron attribute type, check the ‘Is a date’ checkbox. This will add a date picker to the field when filling out the patron form. You will also be able to do date calculations based on this attribute in reports.
Library opening hours
Opening hours can be defined in Libraries. These are used for hourly loans. The new ConsiderLibraryHoursInCirculation system preference determines how the due time should be calculated if it falls after the library’s opening hours.
New functionalities in catalog concerns feature
The catalog concerns feature has been developed further in this cycle.
You can now define custom statuses in the new TICKET_STATUS authorized value category and these will appear when updating catalog concerns.
You can now define custom resolutions in the new TICKET_RESOLUTION authorized value category and these will appear when marking catalog concerns as ‘Resolved’.
It is now possible to assign catalog concerns to staff members when managing catalog concerns. They will receive an email based on the TICKET_ASSIGNED template, which is customizable in the notices and slips tool.
Copying patron permissions
A ‘Copy settings’ button has been added to the patron permissions as well as a ‘Paste permissions’ button, which can be used to copy permissions from one patron to another,
Sending custom emails to a patron
The new custom email message feature adds the ability for staff with the necessary permission to send custom emails to a specific patron. Notices can be defined in advance through the notices and slips tool (see the ‘Patrons (custom message)’ module when adding a new notice), or an email can be written in an ad hoc manner.
Formatting printed notices and slips
In addition to the existing SlipCSS and NoticeCSS system preferences, which require a path to a CSS file, printed notices and slips can now be styled individually with CSS using the ‘Format’ tab in the notices and slips tool.
Elasticsearch configuration
In the search engine configuration it is now possible to add new search fields from the staff interface.
The customization of facets was also extended. It is now possible to add new facets and link facets to authorized value categories to improve the display.
New placeholders for serial numbering patterns
New placeholders can now be used in serial numbering patterns in addition to the three existing variables {X}, {Y}, and {Z}:
{Day} will be replaced by the date (two digits)
{Month} will be replaced by the month number (two digits)
{Year} will be replaced by the year (four digits)
{DayName} will be replaced by the name of the day of the week
{MonthName} will be replaced by the name of the month
New display locations for HTML customizations
There are new display locations for the HTML customization tool.
ILLModuleCopyrightClearance: content will appear when creating an interlibrary loan request on the OPAC. This display location replaces the deprecated ILLModuleCopyrightClearance system preference.
New system preferences
1PageOrderPDFText
The new 1PageOrderPDFText system preference allows libraries to customize the text above the order table in a basket group PDF. This feature is available when using the ‘English 1-Page’ option in the OrderPdfFormat system preference.
AutoClaimReturnStatusOnCheckin
The new AutoClaimReturnStatusOnCheckin can be used to automatically resolve return claims when the item is checked in.
AutoClaimReturnStatusOnCheckout
The new AutoClaimReturnStatusOnCheckout can be used to automatically resolve return claims when the item is checked out.
DefaultLongOverduePatronCategories
The new DefaultLongOverduePatronCategories
system preference can be used to limit the automatic long overdue process to
specific patron categories. It replaces the --category
parameter in the
longoverdue cron job.
DefaultLongOverdueSkipPatronCategories
The new DefaultLongOverdueSkipPatronCategories
system preference can be used to exclude specific patron categories from the
automatic long overdue process. It replaces the --skip-category
parameter in the longoverdue cron job.
EmailFieldSelection
The new EmailFieldSelection system preference, in conjunction with a new ‘selected addresses’ option in the EmailFieldPrimary system preference, can be used to send email notices to multiple email addresses. For example, a library could choose to send notices to a patron’s home and work email addresses.
ESPreventAutoTruncate
The new ESPreventAutoTruncate system preference determines which Elasticsearch indexes are not autotruncated. This is useful for indexes for identifiers such as barcode and control-number, as truncating an identifier can return many irrelevant results.
DisplayMultiItemHolds
The new DisplayMultiItemHolds system preference can be used by libraries to allow to place multiple item-level holds on a single record at the same time for the same patron. This applies to both the staff interface and the OPAC.
HoldRatioDefault
The new HoldRatioDefault system preference enables libraries to choose the default value for the hold ratios report.
OPACAuthorIdentifiersAndInformation
The OPACAuthorIdentifiersAndInformation system preference replaces the OPACAuthorIdentifiers system preference. It is now used to display more information than simply the identifiers, such as the places of birth and death, the field of activity, etc.
PurgeListShareInvitesOlderThan
The PurgeListShareInvitesOlderThan system preference is used to define a number of days after which private list shares that have not been accepted are deleted.
RedirectToSoleResult
The new RedirectToSoleResult system preference allows libraries to determine the behavior when a search returns only one result, whether or not the user is redirected to the detailed record. The default is to redirect to the detailed record, which is the historical behavior.
RESTAPIRenewalBranch
The new RESTAPIRenewalBranch system preference allows libraries to choose which branchcode is stored in the statistics table when a renewal is done through the REST API. This helps for reports. The default is the API user library, which is the historical behavior.
SCOBatchCheckoutsValidCategories
The new SCOBatchCheckoutsValidCategories system preference, used with the BatchCheckouts and WebBasedSelfCheck system preferences, lets patrons of specific categories checkout several items at once in the self checkout module rather than one by one.
SMSSendAdditionalOptions
The new SMSSendAdditionalOptions system preference can be used to specify additional parameters needed by some SMS::Send drivers (such as Twilio). Previously, it was necessary to have any additional parameters in a YAML file named after the SMS::Send driver, and the path to that file needed to be specified in the koha-conf.xml file. With the system preference, the options can be updated without the need for a system administrator to change the file.
StaffLoginLibraryBasedOnIP
The new StaffLoginLibraryBasedOnIP system preference can be used to determine which library staff log into when accessing the staff interface, based on their computer’s IP address.
StaffLoginRestrictLibraryByIP
The StaffLoginRestrictLibraryByIP system preference replaces the AutoLocation system preference. It is used to determine which libraries a staff member can choose to log into when accessing the staff interface.
WaitingNotifyAtCheckout
The new WaitingNotifyAtCheckout generates a pop-up in the circulation module alerting staff that the patron they are checking out items to also has holds waiting for them.
Deprecated system preferences
ILLModuleCopyrightClearance
The ILLModuleCopyrightClearance system preference was moved to an HTML customization location. This allows to have texts in different languages in a multilingual OPAC.
23.11
Preservation module
The brand new Preservation module is used for integrating preservation treatments into the Koha workflow and keep track of them. For every single step of the preservation workflow, data is attached to the Koha items.
The module comes with its own set of system preferences.
Protected patrons
It is now possible to protect patrons from deletion. When adding or editing a patron, a new ‘Protected’ flag can be set in the ‘Library management’ section. This will disable the ‘Delete’ option in the patron file. Furthermore, protected patrons cannot be deleted by batch deletion, cron jobs, or patron merging.
Use this for your statistical patrons, SIP2 users, self checkout users and superadmins.
Custom slips
It is now possible to create custom slips that will be available from the ‘Print’ menu in a patron’s account.
Go to Tools > Notices and slips and create a new slip with the new ‘Patrons (custom slip)’ category.
Custom report templates
It is now possible to create templates in the notices and slips tool and use those in the reports module when running SQL reports.
It is also possible to download the report results as the rendered template.
Vendor issues
It is now possible to record problems with vendors in the acquisitions module. It is a way to keep track of the various issues that might arise in the course of a contract, and it might be helpful when the time comes to renegotiate.
A new patron permission issue_manage was also added to allow libraries to choose who among the staff can manage vendor issues.
Library-level OPAC CSS and JS
It is now possible to add custom CSS and JavaScript to an OPAC for a specific library. Two new fields were added to the library form:
UserJS
UserCSS
This code will be used when a patron logs in to the OPAC, or if the system has more than one OPAC (through apache configuration files).
Deprecation of the offline circulation module
The offline circulation module has been deprecated. Only the Firefox plugin and Windows tool are now supported.
Accordingly, the AllowOfflineCirculation system preference was removed.
Template for serial publication date
It is now possible to create a template to automatically fill the ‘Published on (text)’ field when receiving a new serial. This is set at the subscription-level, therefore, you can have different templates for different subscriptions.
OPAC self checkout
The new OPAC self checkout feature allows patrons to check out items to themselves via the OPAC.
This is different from the self checkout module, which is a module onto itself, meant to be used on dedicated computers. The OPAC self checkout can be used on any computer or device that has access to the OPAC.
It is enabled with the OpacTrustedCheckout system preference.
Barcode width and height customizable on labels
In label layouts, it is now possible to customize the width and height of the barcodes.
Local float groups
A new option in library groups can be used to create ‘local float groups’ which can then be set in return policies or in hold policies in circulation rules to determine if an item ‘floats’ (stays at the check-in library) or is transferred back to its home library when checked in.
New circulation rule for holds pickup delays
A new column in the circulation and fine rules table has been added to control the hold pickup delays on a more granular level than with the ReservesMaxPickUpDelay system preference. By having it in the circulation rules matrix, it is possible to set different rules for different combinations of library, patron category, and item type.
New ‘No automatic renewal before’ circulation rule
The ‘No renewal before’ circulation rule has been separated into ‘No renewal before’ and ‘No automatic renewal before’. This way, libraries that use the automatic renewal can control this value independently of manual renewals.
ILL features
A new option ‘Can place ILL in OPAC’ in the patron categories allows libraries to choose which patron categories are allowed to place ILL requests from the OPAC.
Search patron attributes in ‘standard’ patron search
You may now define some of your patron attribute types as searchable by default, meaning that a standard patron search, without any specified search field, will also search in the values of this attribute.
Patron lists tab in patron records
There is a new patron lists tab in patron records, showing which patron lists this patron is a part of.
Batch operations from item search
When using the item search, you can now select items and send them directly to the batch item modification tool or to the batch item deletion tool.
Elasticsearch configuration
In the search engine configuration it is now possible to add a filter on specific mappings to index those fields without punctuation. This will enable searching without punctuation. For example, if there is a punctuation filter on the title, and the title is “1,000 Japanese Words”, a search for “1000 japanese words” will return the title.
Specify cost and quantity in manual invoices
When creating a manual invoice for a custom debit type, there will be a ‘Cost’ and a ‘Quantity’ field where you will be able to enter the cost of the individual item and the quantity to be charged to the patron. The total amount will automatically be calculated from these two values. This is useful mainly for physical items being sold to the patron, such as used books or reusable bags, for example.
New display locations for HTML customizations
There are several new display locations for the HTML customization tool.
StaffAcquisitionsHome: content will appear at the bottom of the Acquisitions module main page.
StaffAuthoritiesHome: content will appear at the bottom of the Authorities main page.
StaffCataloguingHome: content will appear at the bottom of the Cataloguing module main page.
StaffListsHome: content will appear at the bottom of the Lists main page.
StaffPatronsHome: content will appear at the bottom of the Patrons module main page.
StaffPOSHome: content will appear at the bottom of the Point of sale main page.
StaffSerialsHome: content will appear at the bottom of the Serials module main page.
The move of system preferences to HTML customizations continues. These were moved to the HTML customization tool in version 23.11.
OpacMaintenanceNotice
OPACResultsSidebar
OpacSuppressionMessage
PatronSelfRegistrationAdditionalInstructions
SCOMainUserBlock
SelfCheckHelpMessage
SelfCheckInMainUserBlock
New system preferences
AcquisitionsDefaultEmailAddress
The new AcquisitionsDefaultEmailAddress system preference allows you to set a specific email address that will be used to send orders and late order claims from the acquisitions module.
AcquisitionsDefaultReplyTo
The new AcquisitionsDefaultReplyTo system preference allows you to set a specific reply-to email address that will receive replies to orders and late order claims sent from the acquisitions module.
AutomaticCheckinAutoFill
The new AutomaticCheckinAutoFill system preference further automates the automatic check-in feature so that the next hold is automatically filled when an item is checked in.
AutoRemoveOverduesRestrictions
While not a new system preference, the options for AutoRemoveOverduesRestrictions were expanded to check for other checkouts in the patron’s account before lifting the restriction.
CalculateFundValuesIncludingTax
The new CalculateFundValuesIncludingTax system preference will help libraries that claim back tax on purchases. By setting the preference to ‘Exclude’, these libraries can directly input in Koha order prices with tax included (as printed by the vendor on their invoice); and the library funds will show the amounts excluding tax, which is an accurate reflection of the amounts actually available.
CancelOrdersInClosedBaskets
The new CancelOrdersInClosedBaskets system preference can be set to allow cancelling acquisitions orders in baskets that are closed. This is useful if something cannot be delivered and you don’t want to reopen the basket or go through the receive shipment process.
ChildNeedsGuarantor
The new ChildNeedsGuarantor system preference can be used to make the guarantor field mandatory. Contrary to its name and description, it is not limited to children, but to patrons whose patron category states that they ‘can be guarantee’.
DefaultAuthorityTab
The new DefaultAuthorityTab system preference allows libraries to choose which tab is selected first when viewing an authority record.
EmailPatronWhenHoldIsPlaced
The new EmailPatronWhenHoldIsPlaced system preference can be used to send emails to patrons who place holds. The notice sent is based on the HOLDPLACED_PATRON template, which can be customized in the notices and slips tool.
ForceLibrarySelection
The new ForceLibrarySelection system preference can be used to require staff to choose a library when logging into the staff interface.
ILLModuleDisclaimerByType
The new ILLModuleDisclaimerByType system preference allows libraries to have different disclaimer texts for different interlibrary loan request types. This depends on the backend used for ILL requests.
ILLPartnerCode
The new ILLPartnerCode system preference replaces an interlibrary loan setting that was only found in the koha-conf.xml file. It is now possible for libraries to choose the partner category without having to change the configuration file.
IntranetReadingHistoryHolds
The new IntranetReadingHistoryHolds system preference is an offshoot of the existing intranetreadinghistory system preference. It used to be that the intranetreadinghistory system preference controlled the display of both the Circulation history and the Holds history tabs in a patron’s account in the staff interface. Now the intranetreadinghistory system preference controls the display of the Circulation history tab and the new IntranetReadingHistoryHolds system preference controls the display of the Holds history tab.
LoadCheckoutsTableDelay
The new LoadCheckoutsTableDelay system preference can be used to delay the loading of the checkouts table in a patron’s account to prevent too many service queries when checking out a number of items in a row.
OpacTrustedCheckout
The new OpacTrustedCheckout system preference enables libraries with trusted communities to allow patrons to check out to themselves via the OPAC. This is different from the self checkout module, which is a module onto itself, meant to be used on dedicated computers. The OPAC self checkout can be used on any computer or device that has access to the OPAC.
OverdueNoticeFrom
The OverdueNoticeFrom system preference already existed, but a new option was added to it in version 23.11. The new option ‘patron home library’, allows libraries to choose that library as the source of information for overdue notices.
RedirectGuaranteeEmail
The new RedirectGuaranteeEmail system preference allows libraries to send copies of email notices to the patron and the patron’s guarantor, if any.
SCOLoadCheckoutsByDefault
The new SCOLoadCheckoutsByDefault system preference allows libraries to choose if the patron’s current checkouts are displayed automatically or if the patron must click a button to see their checkouts when using the self checkout module.
SerialsDefaultEmailAddress
The new SerialsDefaultEmailAddress system preference allows you to set a specific email address that will be used to send late serial issues claims from the serials module.
SerialsDefaultReplyTo
The new SerialsDefaultReplyTo system preference allows you to set a specific reply-to email address that will receive replies to late serial issues claims sent from the serials module.
SerialsSearchResultsLimit
The new SerialsSearchResultsLimit system preference allows you to limit the number of serial subscription search results per page, to be used in systems where there are a lot of subscriptions.
showLastPatronCount
The new showLastPatronCount system preference allows you to choose how many patrons are shown by the link created by showLastPatron.
SIP2AddOpacMessagesToScreenMessage
The new SIP2AddOpacMessagesToScreenMessage system preference determines whether or not the OPAC messages are displayed on the screen when using SIP2.
TrackLastPatronActivityTriggers
The new TrackLastPatronActivityTriggers system preference replaces the TrackLastPatronActivity system preference and allows a more granular control of which action triggers the update of the patron’s “last seen” date (borrowers.lastseen). Previously, this database column was only updated when the patron logged into the OPAC or via SIP2. But this excluded patrons who might check out a lot of items from the library, but never log into the OPAC. The library can now decide which activities to track from a list.
UpdateItemLocationOnCheckout
The new UpdateItemLocationOnCheckout system preference allows you to automatically change an item’s location when it is checked out.
UpdateItemLostStatusWhenPaid
The new UpdateItemLostStatusWhenPaid system preference allows you to set a status which will be automatically assigned to a lost item when the patron pays for it.
UpdateItemLostStatusWhenWriteoff
The new UpdateItemLostStatusWhenWriteoff system preference allows you to set a status which will be automatically assigned to a lost item when the charge is written off from the patron’s account.
UpdateNotForLoanStatusOnCheckin
While not a new system preference, UpdateNotForLoanStatusOnCheckin was expanded to add the ability to define item type-specific rules.
New patron permissions
The preservation permission has been added to allow staff members to access the new preservation module.
The issue_manage permission has also been added to allow libraries to choose who among the staff can manage vendor issues.
Patron messaging preferences
For libraries that use EnhancedMessagingPreferences, the ‘Hold filled’ message is now available as a digest. The notice template used is HOLDDGST and can be customized in the notices and slips tool. Staff can choose the ‘Digests only’ option in patron files. If the EnhancedMessagingPreferencesOPAC system preference is set to ‘show’, patrons will be able to modify their messaging preferences in their online account.
New options for command line tools
The runreport.pl script has two new parameters:
--send_empty
adds the option to send the email even if the report returns no results--quote
adds the option to specify the quote character for CSV output
The writeoff_debts.pl script has two new parameters:
--category-code
adds the option to limit writeoffs to a specific patron category--added-after
adds the option to limit writeoffs to charges added after a specific or calculated date
The borrowers-force-messaging-defaults.pl script has two new parameters:
--library
adds the option to limit updates to patrons from a specific library--message-name
adds the option to limit updates to a specific message
The membership_expiry.pl script has four new parameters:
-active
adds the option to send notices to “active” patrons only. Activity is determined by the new TrackLastPatronActivityTriggers system preference.-inactive
adds the option to send notices to “inactive” patrons only. Activity is determined by the new TrackLastPatronActivityTriggers system preference.-renew
adds the option to automatically renew patron memberships instead of simply advising them that their membership is about to expire.-letter_renew
adds the option to use a different notice than the default one, MEMBERSHIP_RENEWED.
A new command line tool, debar_patrons_with_fines.pl, was added. This tool adds manual restrictions to patron accounts who owe more than a specified amount in charges.