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.

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.

Cookies information

New system preferences and HTML customizations allow for cookies information to be added to the OPAC and staff interface.

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.

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.

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.