Koha Upgrades

Koha 23.11 Release Notes

Upgrade Webinars are Coming in July 2024

Webinars will be held on Thursday, July 18th, and Tuesday, July 24th. Registration is required; the same content will be featured at both webinars. Both webinars will be recorded and available to view from our ByWater Solutions YouTube page.

What's New Webinar
Thursday, July 18, 2024
1:00 p.m. Eastern/ 12:00 p.m Central/ 11:00 a.m. Mountain/10:00 a.m. Pacific

Watch the recording here.


What's New Webinar 2
Wednesday, July 24, 2024
3:00 p.m. Eastern/2:00 p.m. Central/1:00 p.m. Mountain/ 12:00 p.m. Pacific

Register here for the What's New Webinar

After registering, you will receive a confirmation email containing information about joining the webinar.

Here is a link to the Agenda for the "What's New Webinars"!

Below is the content from the 23.11 Upgrades, visit our 24.05 blog post for more upcoming features and enhancements coming!

Koha 24.05 Release Notes

In this blog post, we break down upcoming Koha 23.11 features and enhancements.

Click for each module specific notes:


New Features in Acquisitions

  • Add vendor issues (Bug 33105 ) Sponsored by Bywater Solutions and PTFS Europe Ltd

This feature allows libraries to record service issues within Koha. This feature will be useful to libraries using the Koha ERM Module, or any library providing electronic services. If a library experiences issues with logging into an eResource, service interruptions, or patrons experience bad links, this can not be documented with the specific vendor record within Koha. This is important as evidence when submitting contract negotiations and judging vendor performance against existing contracts.

Within Authorized Values, a new category, VENDOR_ISSUE_TYPE will have two options to use within the Vendor Issue, MAINTENANCE and OUTAGE.


To utilize this option within the Vendor record, a staff member must have the new permission acquisition.issue_manage

The process to test:

1. Use a staff member with permissions that include acquisitions.issue_manage

2. Go to Acquisitions, search, and open up a vendor.

3. Issues can be found on the left-hand side menu.

4. Choose a New Issue and create a new issue.

5. Once saved, this issue will be saved within the issues tab and searched within the table.

Acquisitions Issues

For more information about this feature: Monday Minutes: Tracking Vendor Issues in Acquisitions

New Enhancements in Acquisitions

  • Allow sorting by basket creation date to the late orders table (12732)

This new enhancement will include a new option to allow staff to sort the late orders table by basket creation date.

  • Add ability to search on ‘all statuses’ to orders search (14092) Sponsored by Bibliotheksservice-Zentrum Baden-Württemberg (BSZ)

When searching in Acquisitions, this new enhancement adds an ‘all statuses’ option to the status select option in the orders search panel.

The process to test:

1. Have multiple order lines with different order status

2. Include one order with with the status of 'cancelled'

3. Within Acquisitions, open the advanced search page from the top search options:

4. Verify the status pull-down includes 'any status'

5. Try searches for different statuses, including 'Any status'

6. Ensure the search is successful in finding any status

  • Allow separate email configuration for acquisition and serials emails (20755). Sponsored by Karlsruhe Institute of Technology (KIT)

This new enhancement separates acquisitions and serials notices to allow libraries to configure which email address to default to send to, and also a reply email within each module.

This enhancement adds four new system preferences:

  • AcquisitionsDefaultEMailAddress

  • AcquisitionsDefaultReplyTo

  • SerialsDefaultEMailAddress

  • SerialsDefaultReplyTo

These are used to set specific email addresses to send and receive replies to acquisitions orders notices, late orders claims notices and late serial issues claims notices.

Process to test

1. Go to the new system preferences

2. Enter new email addresses to have each notice to be sent to and replied to

3. Trigger a late claim within the Serials Module- see where it comes from and then reply to it.

4. Trigger a late order with the acquisitions module, see where it comes from, and then reply to it.

Note: The notices that are used here are: SERCLAIM and ACQCLAIM.

  • Link from basket summary to invoice for an order line (28449) Sponsored by The Research University in the Helmholtz Association (KIT)

This new enhancement will have a link from basket summary to invoice. Within the basket view in Acquisitions, there will now be a new column called, ‘Invoice’ This will contain the invoicenumber for received order lines and is linked to the invoice.

Permissions: To view this, the staff user must have "edit_invoices" permission.

Process to test:

1. In Acquisitions, create a basket with some received and unreceived order lines

2. Close the basket and receive an item from that basket

3. Verify that there is now a column in the basket for the Invoice containing the invoice number as a link to the invoice

4. Test with a staff patron, that doesn't have edit_invoices permission, verify that staff without permission has instead of a link, the invoice number as text

Acquisitions Invoice Link

  • Optionally choose for tax-exclusive values to be used for calculating fund values (spent, ordered) (31631) Sponsored by Waikato Institute of Technology

Public and tertiary libraries in New Zealand can claim tax back on purchases.
This enhancement adds a new system preference CalculateFundValuesIncludingTax. When set to ‘Exclude’ these libraries can input order prices with tax included (so vendor invoice prices – which do contain tax – can be entered directly into Koha). However, the order prices removed from the Koha funds are tax-exclusive values (NZ libraries claim tax back so it should not be removed from their funds).

Process to test:

1. Set TaxRates system preference = 0.15

2. Create a new fund with amount = 1000

3. Add an order to a basket with the following values:

- Fund = Choose the fund from step #2

- Quantity = 1

- Vendor price = 10

- Tax rate = 15%

- Discount = 20%

- Retail price = 10.00

- Replacement cost = 10.00

- Actual cost = 10.00 - SAVE

4. Go to the Acquisitions home page

5. Confirm the 'Ordered' column for the step #2 fund contains 9.20

6. Click on the 9.20 link and confirm the ordered.pl page that loads

also contains 9.20 as the 'Subtotal'

7. Change 'CalculateFundValuesIncludingTax' = 'Exclude'

8. On the Acquisitions home page confirm the 'Ordered' column now

contains 8.00

9. Click on the 8.00 link and confirm the ordered.pl page also contains

8.00 as the 'Subtotal'

10. Close your basket and receive your order keeping all the default


11. Go to the Acquisitions home page and confirm the 'Spent' column now

contains 8.00

12. Click on the 8.00 link and confirm the spent.pl page also contains

8.00 as the 'Subtotal'

13. Change 'CalculateFundValuesIncludingTax' = 'Include'

14. Confirm the 'Spent' column on the Acquisitions home page now shows


15. Click on the 9.20 link and confirm the spent.pl page also contains

9.20 as the 'Subtotal'

New System Preference CalculateFundValuesIncludingTax.

  • The EDIFACT message that receives an item should be linked on the ‘Acquisition details’ tab on catalogue details page (32984) Sponsored by PTFS Europe Ltd

This enhancement will link the EDIFACT message on to the Acquisitions details tab within the Staff Interface.

Permission- Staff will need to have the edi_manage permission to click the link.

Process to test:

1) Find or create an item invoiced via an EDI INVOICE message

2) Ensure you have the edi_manage sub permission

3) Go to the catalog detail page, note new "(EDI invoice)" link in the column for the item

4) Verify the link does not show if you do not have the edi_manage sub permission

  • Make interface URL clickable on vendor details (33499)

Within the vendor details, a library can enter a URL within the interface section, this enhancemnet will make the URL clickable.

Process to test
1. Search for a vendor

2. If you don't have a vendor with interfaces defined, add one

- Under Interfaces -> Interface details, fill out the form, including the URI field.

3. Add more than one interface

4. Save your changes and then view the vendor details page

5. In the Interfaces section the interfaces you defined should have clickable links.

Note: The URI field must start with http:// or https://

Acquisitions Interface

  • Adds the ability to cancel order lines in closed baskets (33664) Sponsored by The Research University in the Helmholtz Association (KIT)

This new enhancement will allow libraries to cancel orders from a closed basket. The ability to do this relies on a system preference and staff would need permission to manage order lines. This eliminates the extra clicks to re-open the basket, so cancel an order.

With the new system preference CancelOrdersInClosedBaskets it’s now possible to allow for canceling order lines from closed baskets.

Staff Permissions: Manage baskets and order lines (order_manage)- a staff member would need to cancel an order regardless if closed or open. Unless there were restrictions on this basket, then they would need oder_manage_all.

Process to test

1. Switch new system preference CancelOrdersInClosedBaskets to "Allow"

2. Create a new basket in Acquisitions

3. Create a few order lines, at least 3

4. Close the basket

5. Receive shipment and receive one order line

6. Verify that you now can cancel your order lines in the closed basket

Note: The received order line should not be cancellable.

  • Add validation for monetary input fields in acquisition module (34169) Sponsored by The Research University in the Helmholtz Association (KIT)

At the moment Koha can only calculate amounts that are formatted with a decimal comma, but inputs were not always validated which could lead to errors and wrong amounts. Now with this enhancement, entered amounts are validated before saving throughout the acquisitions module.

Process to test:

1. For any field that requires a dollar amount try adding various false entries, like "abc" or "1,00".

2. Koha should only accept inputs with a decimal dot, like: "1.00"

3. This can be tested in purchase suggestions, acquisitions, receiving orders, etc.

  • Patron purchase suggestion table should include the non-public note (34501)

This enhancement adds a new coloumn to the suggestion table for the non-public note. If a suggestion has a non-public note, this will be displayed in this new column.

Process to test:

1. Create a new purchase suggestion for a patron and add a “Note” and a “Non-public Note”

2. View the purchase suggestion

3. Refresh the page, it now shows both the “Note” and “Non-public Note”

Suggestion with Non-Public Note

  • Add sort 1 and 2 fields to basket in acquisitions (34618)

The option in Koha exists to create statistical values to orders. This new enhancement will allow these values assigned to the statistical field to be visible in the basket summary view within Acquisitions. In the administration module, these are called sort fields but labeled as statistical fields within acquisitions.

Process to test:

When creating or editing a fund, statistic values can be set up. To test, a value will need to be filled out within the fund to allow for statistical values to be allocated during the ordering process and beyond.

NOTE: The new columns are hidden by default in the updated table configuration.

To view the new fields within the basket in Acquisitions, they must be set to show within the Table Settings in Koha Admin.

- Go to Administration -> Table settings.

- Under Acquisitions -> basket, try changing the settings for the Statistic 1 and Statistic 2 fields, and check that your changes are reflected in the basket view.

Process to test:

1. Go to acquisitions and create a basket if necessary:

2. Search for a vendor and click New -> Basket from the vendor toolbar on the vendor search results screen.

3. Create a basket, then click "Add to basket" from the basket details page. Here is where you will enter the statistical value information to an item.

4. Add an order to the basket.

5. View the basket once these fields are set to visible and note the new columns and values are present

Sort Fields in Acquisitions

  • Ability to modify an order line to increase quantity of ordered item (34708) Sponsored by Pymble Ladies’ College

This new enhancement allows staff to add additional items to an already saved order line when items are created on order. Prior to this, if a library wanted to increase the number of items in a basket, they would have to create a whole number order line to the basket.

Process to test:

1. Ensure you have a budget, fund, vendor etc. to use the Acquisitions module

2. Open a new basket. Make sure you do NOT check the 'orders are standing' option

3. Add an order to the basket using any method. Add an item or more to this order line and save the order to the basket

4. Click Modify to edit the order line

5. Notice the item form and Items list table are visible with your existing item(s) for this order. There should be no Action buttons as actions can't be done on an existing item order.

6. Confirm you can add more items to the Items list and the order by filling out the form and clicking 'Add item' as normal. Confirm the quantity increases accordingly.

7. Confirm the Edit and Delete buttons for newly added items work as expected

8. Save and confirm the quantity for the orderl ine has increased

9. Confirm this behavior persists with the other methods of adding new orders to a basket

Note: This process will duplicate the original item's information. If a library needs to add item with a different cost/fund, this would need to be done via a new order line.

  • Sort item types alphabetically by description rather than code when adding a new empty record as an order to a basket (34908) Sponsored by South Taranaki District Council

Within acquisitions, when selecting the item type when creating an item with an empty record, the item types will be sorted alphabetically by description not by the code.

Process to test:

1. Go to Koha administration -> Item types. Add a new item type "B" with the description "Test" so it will be obvious if it is sorted by the code "B" instead of the description "Test".

2. Go to Acquisitions. Add to a basket from a new empty record

3. Open the Item type dropdown again and confirm your "Test" item type is showing in the expected alphabetical order.

  • Add a link to place a hold on ordered items in baskets (34300)

With this enhancement, libraries can now easily place a hold on an item that is currently in a basket on order.

Process to test

1) Go to acquisitions

2) Go to an existing basket, or create a new one

3) Add an order to the basket

4) There is now a “place hold’ column in the Orders Table.

5) Click the link for an item that allows you to place a hold easily on the Biblio

Place hold within basket


New Enhancement in Authentication

  • TOTP expiration delay should be configurable ( 30843 )

This new enhancement will allow libraries to configure how long the delay is for the authentication to stay on the authenticator app. Currently, in Koha, this value is set at 30 seconds which is the same amount of time as the Google Authenticator app allows. This value can be increased if needed, through the configuration option in Koha.


New Cataloging Enhancements

  • “Volumes: show volumes” showing regardless of whether there are volumes linked to the record (26314)

This enhancement changes how the "Show volumes" link is displayed in both OPAC and staff interface. The main change is that the link will only be displayed when it has results. Currently, the link will always display, sometimes leading to no results.

  • Add a button to clear the cataloging authority plugin form (31132) Sponsored by Education Services Australia SCIS

    This enhancement adds a ‘Clear form’ link to empty all of the input fields on the authority finder plugin form when cataloging bibliographic records. This is similar to how the clear form option works when using the z39.50 search.

Process to test

1) Search for a bibliographic record in the staff interface

2) Edit a record

3) Go to tabs 1, 6, or 7 to find a tag linked to the authority finder plugin

4) Launch the authority finder plugin by clicking the Tag editor icon at the end of the field

5) If the fields are empty, add some text in the text fields

6) Click the 'Clear form' link at the bottom of the form

7) Confirm the text is cleared from the input fields and the form is empty

  • Allow stock rotation items to be moved several stages ahead (32335)

This enhancement will allow libraries to move their stock rotation ahead more than one spot, often after they have added items to a rotation, they would like to catch them up to the current location of the rotation they are being added to.

Process to test:

1 - Setup a rota with multiple stages

2 - Add an item

3 - Advance to the next stage

4 - Click 'Move to next stage'

5 - The note button is not disabled

6 - Hover and confirm the note about the transit

7 - Click 'Move to next stage'

8 - Checkin item at the wrong branch, confirm it is correctly directed to the correct stage

Note: This enhancement currently works in the Stock Rotation module specifically and not in the individual item rota page.

Move Items within Stock Rotation

  • Add a button to easily toggle between advanced/basic cataloging editors (34275)

When the advanced cataloging editor is activated using EnableAdvancedCatalogingEditor, there is now a nice toggle button in the upper right corner of the cataloging module when editing a record that allows you to easily switch between the basic and the advanced editor.

Permissions: Staff members must have the Advanced Cataloging permission to use this toggle. Under "Edit Catalog" - Use the advanced cataloging editor (requires edit_catalogue) (advanced_editor).

Process to test:

1. The system preference, EnableAdvancedCatalogingEditor must be enabled.

2. The person that is testing must have the advanced cataloging permission

3. Go to cataloging > 'New record'

4. In the upper left notice a new toggle switch labeled 'Editor:'.

5. Try toggling the switch back and forth to move between editors. Verify it works correctly.

6. Try editing an existing record and make sure the toggle works well when editing records.

7. Try the other method of switching editors, Settings > Switch to basic/advanced editor. Make sure it works the same as always

Toggle to change cataloging editors
  • Fields added with MARC modifications templates are not added in an ordered way (24480)

In this enhancement, when using the MARC modification template, MARC fields should be added to the record in the correct order. Before this, the MARC fields added with the template would be added at the bottom of the record.

Process to test :

  1. Create a MARC modification template that adds a new field to a record

  2. Apply that template to some records

  3. Verify the added fields are in the correct order within the already existing fields in the records

  • Add id tags to each MARC note in the display (14156)

This enhancement adds id and class tags to each MARC note in the description tab for the staff interface bibliographic detail page. It adds a unique id for each note (for unique styling of each repeated tag), and a general and unique class for each tag (for consistent styling across the same tag number).

Styles can be defined for notes and individual tags in the IntranetUserCSS system preference. This will allow libraries to add styling to a specific MARC tag.

Process to test:

  1. To change the style of these tags, CSS will need to be added to the System Preference, IntranetUserCSS preference.

  2. For testing ad this CSS to the system preference, IntranetUserCSS:

.marcnote { font-size:140%; font-family: serif; }

.marcnote-500 { background-color: #66FFCC; }

.marcnote-511 { background-color: #99FFFF; }

.marcnote-520 { background-color: #CCFF00; }

.marcnote-521 { background-color: #CCFFFF; }

.marcnote-538 { background-color: #FFCCCC; }

.marcnote-546 { background-color: #FFFFCC; }

  1. Locate a record with multiple notes fields. On the bibliographic detail page for the record, click the "Descriptions" tab.Each MARC note should be colored according to the tag it comes from.

An example of the CSS changes from the test example.

MARC Authority Data Support

MARC Authority Data Support

New Authority Enhancements

  • Optionally add MARC fields to authority search (28166) Sponsored by Steiermärkische Landesbibliothek

This new enhancement within the Authority module will allow libraries to choose additional information from the MARC record to display in a z39.50 Authority Search. This enhancement follows the same workflow as the AdditionalFieldsinZ3950ResultSearch search works. There is a new system preference, AdditionalFieldsInZ3950ResultAuthSearc, which can be customized to determine what fields to add.

Process to test:

1. Within the Global System preferences in the Admin Module, the new sys pref, "AdditionalFieldsInZ3950ResultAuthSearch" can be searched

2. Enter the additional field numbers you want to see eg '035'

5. Make an "Authority" search via Z39.50

6. The new column "Additional fields" and the MARC data from that field will be displayed in the search.

Additional Fields in Authority Search

  • Allow specifying default tab view for authorities (34075)

Libraries can customize their view within the Authority Module. This enhancement adds a new system preference, DefaultAuthorityTab, which will allow libraries to choose which tab is selected first when viewing an authority record.

1 - View an authority detail

2 - You should default to the 0XX or first tab

3- Set the system preference, DefaultAuthorityTab, to a number tab (this is a dropdown option within the system preference

4 - Reload the details and confirm the correct tab is selected

MARC Bibliographic Data Support

Enhancements for MARC Bibliographic

  • Summary etc. -MARC21: 520- doesn’t display in staff interface ( 29471)

With this enhancement, the MARC field 520 will now display in the staff interface. With the 520 MARC field, the indicator will matter on what the label will display as on the staff interface. For more information, https://www.loc.gov/marc/bibliographic/bd520.html. For example, indicator 1 in the first position will have the label display as review. No indicator will have the display of 'Summary'. The MARC field 520 previously had been displayed correctly in the OPAC, this is just adding it to the Staff Inferface.

To test:

  1. Find a record with 520 or add some 520 entries to a record

  2. View the record in the staff interface and the OPAC

  3. Verify now the staff interface displays them as well

  • Sequence of MARC 264 subfields different on XSLT result list and detail page (34020)

This enhancement improves the MARC 264 subfields. If a library catalogs multiple subfields in the 264, they should be displayed in the order they are cataloged.

Process to test:

1. Edit a record and add/update a 264 fields to have subfields a, b, a, b, c in that order

2. Search for record in staff and opac, see subfields displayed in order "aabbc" in results

3. View the details page for the record in staff and opac, note same order

4. Confirm staff and OPAC, results and details now follow the order of the subfields in the record's field.


New Features in Circulation

  • Add an option to define float groups and rules for float (9525) Sponsored by Koha-Suomi Oy

This feature makes it possible to use library groups for creating floating groups. It adds a checkbox “Is local float group” to the library groups configuration and a new return policy “Item floats by library group” to the circulation conditions.

Process to test:

  1. Create a library group and enable the feature for this group, ‘is a local hold group’

  2. Within the Circulation and Fine Rule Matrix, create a new return policy, Item Floats by Library Groups.

  3. Test with a patron registered in one of the libraries in the float group.

  4. Search for an item that lives in one of the float group libraries and check it out to patron.

  5. Be sure to be logged into a float group library - different from the item that was checked out.

  6. Check in item.

  7. See that no transfer notice appears.

  8. Go through the same test plan, however, use a book outside of the float group and check it in to a library not part of the float group, this should prompt to transfer the item.

This process is working with the understanding that the system preference, AutomaticItemReturn, is turned OFF.

For more information about this features, see our Monday Minutes tutorial video: Monday Minutes: Item Floating Groups

  • Add ability to book items ahead of time (29002) Sponsored by PTFS Europe

This new feature in Koha will allow items to be 'booked' ahead of time. This will be a help to libraries that have book clubs or book discussions. An item can be made ‘bookable’ via the item modification screens. Once at least one item is bookable, a new “Place booking” button will appear as an option on the bibliographic record detail page and a “Bookings” tab will be available from the side menu to allow management of bookings. Bookings cannot overlap, and circulation will detect when an item has a booking on it and notify the librarian appropriately.

Note: There are many further enhancements in the pipeline still to come.

Process to test

1) Use a record with at least one item attached

2) Go to the 'Items' tab for that record

3) Mark at least one item as 'Bookable' using the new select box under Priority.

4) Note that a new 'Place booking' button should appear in the menu toolbar with the items tab

5) Choose to ‘Place Booking’

6. Choose a patron, the item itself, and the time frame on which this item is ‘booked’

6) Confirm that when creating subsequent bookings the booking period selects greys out booking dates that would lead to overlapping bookings

7) Once complete, note the new 'Bookings' page available from the left menu

8) Confirm bookings appear correctly in both the table and timelines on this new page

9) Confirm canceling a booking from the table updates both the table and timeline view

13) If this booking needs to be cancelled, the grey bar in the calendar view can be clicked, it will turn yellow, and there will be a red x. Clicking the red x will confirm the cancellation.

14. To edit this booking, the grey bar can be dragged along the calendar which will prompt the ‘edit booking’ modal to appear.

15) To test this booking itself, attempt to checkout an item with a booking to a user other than the user who booked the item, if the checkout time overlaps with the booking period, Koha will prompt to staff with a warning:

16a) Blocked if you do not have permission to override

16b) Asked to confirm a shorter loan period to ensure the item is returned to fulfill the booking promptly

17) Attempt to checkout an item with a booking to the user the booking is for (but before, but close to the booking period) and

17a) Confirm that if you can override the block, you are asked if you wish to checkout early

17b) Confirm that you are blocked from checkout if you are not allowed to override

18) Attempt to checkout the item to the user owning the booking during the booking period

19) Confirm the due date matches the end of the booked period

Placing a booking on an item
Managing the Item Booking

For more information about this feature, see our Monday Minutes tutorial video: Monday Minutes: Item Bookings

New Circulation Enhancements

  • How long is a hold waiting for pickup at a more granular level (8367) Sponsored by Catalyst

This new enhancement will allow libraries to give different item types varying pick-up times. This adds a new value to the circulation rules: ‘holds pickup period’. If a rule is set with a ‘hold pickup period’, this rule will override the value set in the system preference, ReservesMaxPickUpDelay, and allows setting different delays for specific item types, patron categories, and library combinations.

Process to test:

1. Verify there is a value in the existing system preference, ReservesMAxPickUpDelay, greater than 0.

2. Edit/ Add a few circulation rules with a different value in the column, Holds Pickup Period’ to the value in the ReservesMAxPickUpDelay,

3. Create and trigger holds to match these rules set up with the new Holds Pickup Period. Verify from the three places the expiration date displays, if the pickup period matches the circulation rule. (circ/circulation.pl, circ/waitingreserves.pl, members/moremember.pl)

4. Check both the Hold Reminder, Hold Digest, and Hold Notice- to verify the patron is getting the right expiration date for these holds.

Holds Pickup Period in Circ Rule Matrix

For more information about this feature, see this Monday Minutes blog post: Monday Minutes: Holds Awaiting Pickup

  • Update item shelving location (952$c) on checkout (21159) Sponsored by Toi Ohomai Institute of Technology

This new enhancement enables libraries to automatically update an item’s shelving location at checkout using the new system preference UpdateItemLocationOnCheckout. It accepts pairs of shelving locations. On checkout the item’s location is compared to the location on the left and, like UpdateItemLocationOnCheckin, is updated to the location on the right.

Special values for this system preference are:

  • ALL – used on the left side only to affect all items, if it matches, but this is an easier-to-read option)

  • PERM – used on the right side only to set items to their permanent location
    BLANK – used on either side to match on or set to blank (actual blanks will work)

Syntax highlighting is used in the text area to make it easier to read, as is already possible when checking in items.

Test plan:

1. Set the following system preferences:

- UpdateItemLocationOnCheckin:


- UpdateItemLocationOnCheckout:


2. Checkout an an item with items.location = 'PROC'. Observe its location is changed to 'FIC'

3. Return the item. Observe its location is changed to 'PROC'

4. Change UpdateItemLocationOnCheckout to PROC: _BLANK_

5. Issue the item with items. location = 'PROC' and confirm it's location is blanked on checkout

6 Issue and return an item with a different location e.g. 'CART'. Observe the location does not change on issue or return.

  • Create separate ‘no automatic renewal before’ rule (25393)

This new circulation rule allows libraries to control the no renewal before behavior at the auto and non-auto renewals level. Before this, all renewals worked off of one value within the circulation and fine rule matrix. With this enhancement, automatic renewals will have its value, for 'no automatic renewal before' rule. A value of '0' in this column, would mean that it can not be autorenewed before its due date. The number in the column is the number that is subtracted from the due date, if the results are before now, then the item can be renewed.


No automatic renewal should be smaller than no renewal before value.

For more information about this featues, see the Monday Minutes blog post and tutorial video:

Monday Minutes: Automatic Renewal Circulation Rule

  • Define itemtype specific rules in the UpdateNoteforLoanStatusonCheckin system preference (25560) Sponsored by Waikato Institute of Technology

With this new enhancement, the UpdateNotForLoanStatusOnCheckin system preference is now more configurable. A library can define rules to be applied to specific item types upon check-in. Add the item type code followed by a colon, and then on separate lines below define each notforloan value pair with leading space.

This enhancement respects the 'item-level_itypes' system preference, so it will look at the authoritative item type when determining to update the not for loan status.

Process to test:

1. Set -1 to 'Ordered', and 1 to 'Not for Loan' in Administration > Authorised values > NOT_LOAN

2. Make sure the 'item-level_itypes' syspref is set to 'specific item'

3. Add the following rules in UpdateNotForLoanStatusOnCheckin system


-1: 0

4. Observe the UpdateNotForLoanStatusOnCheckin syspref values have

updated to the following format:


-1: 0

5 Check in an 'Ordered' item of any item type and confirm it is changed

to 'Available for loan' (NOT_LOAN=0)

6. Reset the UpdateNotForLoanStatusOnCheckin syspref to:


-1: 0


-1: 2

2: 0

7. Check-in an 'ordered' (NOT_LOAN=-1) DVD item (item level itype='DVD') and observe the item's notforloan status updates to 'Technical Services' (NOT_LOAN=2). This is because the _ALL_ rule does not override all other rules.

8. Check-in a 'Staff collection' (NOT_LOAN=2) DVD item (item level itype='DVD') and observe the item's notforloan status updates to 'Available for loan'


10. Check-in an 'ordered' (NOT_LOAN=-1) DVD item (item level itype='DVD') and observe the items notforloan status updates to 'Available for loan' (NOT_LOAN=0)

UpdateNotForLoan sys pref

  • Add on-site option to batch checkout functionality (28805) Sponsored by Banco Central de la República Argentina

This enhancement expands the ability for batch checkout within Koha. For libraries using the batch checkout process, this will not include an on-site checkout option.

Process to test:

1) The system preferences 'OnSiteCheckouts' and 'BatchCheckout' system preferences should be set to enabled.

2) In the 'BatchCheckoutsValidCategories' preference, select a patron category or choose all categories.

3) Use a patron in the system that matches that patron category chosen in the abve system preference

4) Choose to use the Batch Checkout Option from the checkout page of the patron.

5. Batch checkout page will now include the option to batch checkout using ‘on-site' checkout.

Batch Checkout with Onsite option

  • Allow patrons to have overdue items that would not result in debarment when removing overdue debarments (29145)

This new enhancement alters the system preference which controls when a patron's restriction comes off when returning overdue items. The system preference, AutoRemoveOverdueRestrictions, has a third option which allows libraries to opt to have the restriction removed if the patron returns the items that caused the restriction to be applied to their account.

  • Add a new option patron home library to OverdueNoticeFrom (32740)

This enhancement adds a new option for libraries to determine from which library the Overdue Notice gets sent from. Previously, the options for this system preference, OverdueNoticeFrom include item home, checkout library, and command line. Now a library system can decide to choose to have the overdue notices sent from the patron’s home library.

Process to test:

We want to verify that overdue will be generated from the borrower’s library.

  1. Create a generic (default) ODUE notice.

  2. Create a specific branch ODUE notice.

  3. Make sure overdue notices are set to run on the patron category in the Overdue Notices and Slips. For testing, you can make the overdue delay 1 day- and mark that it will send a notice.

  4. Use a borrower (A) from the specific branch you used in step 2 and use a borrower (B) from another branch for testing.

  5. Check out an item to borrower A and make that item overdue by 1 day.

  6. Check out an item to Borrower B and make that item overdue by 1 day.

  7. Run the notices cron, and verify that Borrower A receives the patron’s home library-specific overdue notice the sender matches the patron’s home library and Borrower B receives the default overdue notice.

  • Show primary_contact_method when holds are triggered (33398)

This enhancement brings the data field, primary_contact_method, into the Modal window when triggering a hold. This will allow staff to see both the notification method and the main contact method within the pop-up.

Process to test:

  1. Create a patron - assign it a main contact method and also a notification preference.

  2. Place a hold and then trigger the hold for that patron.

  3. See that this information will displayed. If no main contact method is filled out, this will not display.

Note: The borrower field, primary_contact_method can also be added to a slip when it is printed out.
Primary Contact on Hold Notification

  • Add table settings to the holds table for a specific record in the staff interface (33575)

This enhancement will allow libraries to sort, search, and filter on the holds table of a single bib.

Process to test:

1. Have a record with several holds on it.

2. Go to the holds page for that record

5. Now the table should be a data table that will allow you sort.

6. Try hiding columns by clicking on the 'Columns' icon above the table, make sure columns are correctly being hidden.

7. Try to hide columns by going to Administration > Table settings ( Circulation > Holds > patron_holds_table ), make sure columns are correctly being hidden.

8. Now login with a user who has the 'place_holds' permission but does NOT have the 'modify_holds_priority' permission.

9. The table will not have the change priority columns. Make sure all columns can still be hidden/shown correctly for that use.

Search Option on Holds

  • Automatic checkin should be able to optionally fill the next hold with the returned item 33887

This enhancement adds an option for automatic checkins, so that for any holds, it automatically fills the next hold and sends a notification to the patron that a hold is waiting.

This option is set using the new system preference AutomaticCheckinAutoFill.

Process to test.

1. Go to administration -> item types and edit an item type

2. Make sure the checkbox that is labeled ‘Automatic check-in:’ is checked. At the bottom of the page click Save Changes.

3. In Administration -> system preferences, search for ‘AutomaticCheckinAutoFill’ and set it to ‘Do’.

4. Check out an item to a patron and make it overdue (.ie set the due date to yesterday). Also, make sure that the item type you are checking out matches the item type edited in step 2.

5. Place a hold on the item. Make the pickup location the same as the library it is checked out from.

6. On the item details page, notice that the item was checked in and now the hold is waiting for pickup.

7. Visit the patron’s page who placed the hold.

8. Click on the notices tab and see that there is a ‘Hold available for pickup’ notice.

9. Repeat process, but this time make the hold pickup location different than the library the item is currently checked out to.

10. Notice that this time, the item was checked in, the hold is waiting, and the item is in transit to the other library.

11. If you visit the patron’s page, this time there should be no new notice because the item is still in transit.

For more information about the Automatic Checkin Functionality:


  • Add card number to hold details page (34457)

In this enhancement, Koha will now display both the patron name and card number on the hold page. If a library is currently not displaying the patron name and only showing the card number (with the use of the system preference, HidePatronName), there will be no change.

Process to test

1. Go to place a hold on a patron

2. The hold details page (/cgi-bin/koha/reserve/request.pl) only shows the patron’s name.

3. The hold details page now shows the patron’s name and their card number.

Card Number and Patron Name on Hold Screen

  • Offline circulation should be able to accept userid as well as cardnumber (34529)

For libraries using the Offline Circulation tool plugin, this enhancement will allow libraries to use the patron’s userID or the cardnumber during circulation transitions within the offline circulation tool.

Process to test

1) Open up Koha Offline Circulation tool downloaded on the computer

2) Choose to checkout to a patron and enter their userid instead of their cardnumber.

3) Upload and import the test file into the Offline Circ

4. Verify the item was checked out to the correct patron.

  • Add transfer reason to list of checkins 34547

For multi-branch libraries that transfer items, this new enhancement will now show the transfer reason on the returns page. This will allow libraries to identify issues that need attention.

Process to test

1. Check some items out and prepare some reasons that would initiate a branch transfer. These reasons could be ‘'Manual', 'StockrotationAdvance', 'StockrotationRepatriation', 'ReturnToHome', 'ReturnToHolding', 'RotatingCollection', 'Reserve', 'LostReserve', 'CancelReserve', 'TransferCancellation', 'Recall', 'RecallCancellation.

2. Check in some of the items and notice the 'Transfer reason' column in the table. Make sure the reasons are accurate and make sense.

3. This column will appear by default. If this is a column that is not helpful, go to Table settings and find the 'checkedintable'. Make sure you can properly hide the column from the display.

Transfer reasons

  • Add waiting since date to holdswaiting patron message (34626)

This new enhancement allows for staff to see waiting holds on the patron's account with the additional detail of the ‘Waiting Since” date. So in addition to seeing the date when the hold will expire, but also when the hold was triggered:

Process to test:

  1. Place a hold for a patron

  2. Trigger that hold

  3. Go to the patron checkout page and/or detail page and see the Hold Waiting message now contains both the Waiting Here Until dates and the Waiting here since date.

For more information about this feature, see our Monday Minutes tutorial video: Monday Minutes: Holds Awaiting Pickup
Waiting Date added to Patron Detail

  • Add ability to send ‘final auto renewal notice’ (34924)

This enhancement will allow the patron to receive a notice that indicates that all the automatic renewals have been used, and won’t be renewed again.

Process to test:

1. Checkout an item to a patron who has an email defined and auto renewals selected in messaging preferences

2. Confirm patron notified and issue renewed

3. When no renewals remain, confirm patron notified of the final notice


Due to the change in this process, the auto-renewal notice will need to be updated. More information to come in what will need to be changed!

  • Add collection column to holds ratio report (circ/reservations.pl) (34938)

In this new enhancement, the collection code has been added to the Holds Ratio Report. The Holds Ratio report can be found in the circulation module. As with the majority of the columns in Koha, this can be hidden or displayed using the Table Settings within the Administration Module.

Process to test

1. Create enough holds on items so that they will appear on the holds ratio report.

2. Visit Circulation > Holds ratios

3. Collection Code should now be seen.

6. Ensure that the data in the column looks correct.

7. Go to Administration > Table settings to ensure you can hide that column, and other columns in the table.

Collection Code in Holds Ratio Report

  • Split ‘Renew or check in selected items’ button in the issues table into separate buttons (35068)

This enhancement will change how the renew and check in buttons appear on the patron's checkout screen. Before this, there was one button to do both renew/check in marked items. This enhancement has created separate buttons for these actions.

Process to test:

1. Have more than 1 checkout issued to a borrower.

2. View the checkouts, note that there is now 'Renew selected items' and 'Checkin selected items' button.

3. Play around with each making sure that they work as expected when checkouts are checked in either the 'Check in' or 'Renew' columns.

4. Uncheck everything in the 'Renew column', the 'Renew selected items' button should be disabled.

5. Uncheck everything in the 'Checkin column', the 'Check in selected items' button should be disabled.

6. Try unchecking some of these to make sure the Renew/Checkin button is properly disabled when no related checkboxes are checked.

7. Try using the select all/none options at the top of both the 'Renew' and 'Check in' columns. Make sure the 'Renew selected items' and 'Check in selected items' become properly disabled/enabled.

8. Make sure the 'Renew all' button still works properly.

New buttons to separate check in and renew

  • Make materials specified note easier to customize 35253

This enhancement adds classes to the materials specified messages that are displayed when checking out and checking in an item, when there is a value for an item in 952$3. The new classes available for customizing IntranetUserCSS are mats_spec_label and mats_spec_message.

Example CSS customization:

> .mats_spec_label { color: white; background: purple; }
> .mats_spec_message { color: white; background: green; }

Process to test:

1. Add this example CSS customization to the system preference, itranetusercss.

2. Add a 'material specificed' message on an item in the system.

3 Check in this item and see the 'label' test is purple, and the actual message in the 952$3 is green.

Fines and Fees

New Enhancements in Fines and Fees

Fines & Fee Enhancements

  • Accounting transactions should show managing librarian info for credits/debits (34377)

This enhancement will now display the librarian who created the transaction for credits and debits from the detail tab in Accounting.

Process to test:

1. From the patron Accounting tab > "Create manual credit".

2. From the patron Accounting tab > "Create manual debit”

3. Go to the Transaction tab (members/boraccount.pl) and click the 'Details' button.

4. Do this for both a debit and a credit.

5. Notice the table now shows which librarian administered the credit/debit.

NOTE: This will not work if the library has the system preference, HidePatronName set to Don’t Show.

Link to staff member in details

  • Add a quantity field to the manual invoice form (34985)

This new enhancement will allow libraries to include a quantity to the manual invoice. For libraries charging for copies. If each copy is .25 cents, a staff member can now put a number of copies to charge the patron for and Koha will do the math.

Process to test:

1. Go to Administraion -> Debit types

2. Create a new debit type. Create multiple charge types some with default amount and some without default amount.

3. Fill out the form and check the "Can be manually invoiced?" field- Save

4. On a patron account, create a manual invoice under the Accounting Tab.

5. Select from the dropdown the type of manual invoice that had a default amount included in the debit type.

->Notice- Cost field and Quantity field should be added to the form

6. Edit the Cost field or Quantity field

->The amount will be automatically calculated

7) Select a debit type with no default amount set

->Cost field and Quantity field should not be added to the form

Note: A manual invoice can have a default amount assigned to it. So if each replacement library card is $1.00 that can be set up in the Debit Types within the Administration.

Add quantity to Manual invoice


New Hold Enhancements

  • Add the ability of sending a confirmation e-mail to patron when hold is placed 17617 Sponsored by Fire and Emergency New Zealand

This new hold enhancement will generate and send a notice to the patron to confirm their hold was placed. There is a new system preference EmailPatronWhenHoldIsPlaced that will need to be turned on. Once turned on a notice will be sent to the patron to confirm their hold has been placed.

The notice template used is HOLDPLACED_PATRON. This is a new notice in the Notices and Slips directory. The notice does have a default text that will be sent, and libraries can adjust this information at any time.

Process to test:

1) There is a new system preference, EmailPatronWhenHoldIsPlaced. This will be disabled by default.

2. Turn this system preference to Enable

3) Search for a record and go to the Holds tab. Place a hold for your patron.

4) Confirm the HOLDPLACED_PATRON notice was generated and queued.

This is not part of the messaging preferences, so will be sent regardless of the patron’s notices. If they have an email address, they will receive this email.

  • Hold notes should show when viewing a patron’s hold list 33845

This hold enhancement will display hold notes when viewing a patron's holds. Hold notes can be created by both staff when placing a hold or a patron. A library can allow patrons to add hold notes when placing a hold, if the system preference, OPACholdnotes is turned on. By default, this note column will be hidden, libraries can display this column containing the Hold Notes under the Administration module, Table Settings. The table in Table Settings is under Circulation-Holds Table. This is a whole new table that can be configured on what to display in the Holds Table within the Patron account.

Process to test for OPAC notes:

1. Enable system preference 'OpacHoldNotes'

2. Place a hold on the OPAC and enter a note

3. Confirm it shows on the patron's page

4. View the patron in staff client

5. Ensure the holds note does not display on Holds tab in Checkout or Details view

6. Go to Admin->Table settings->Circulation

7. Under holds_table confirm 'notes' is hidden by default

8. Uncheck the box

9. Refresh patron pages and confirm hold note shows

Notes: At this time, Hold Notes can not be added to holds placed in Aspen Discovery.

Process to test for Notes written in the Staff Interface:

1. Place a hold on the OPAC and enter a note

2. Confirm it shows on the patron's page

3. Ensure the holds note does not display on Holds tab in Checkout or Details view

6. Go to Admin->Table settings->Circulation

7. Under holds_table confirm 'notes' is hidden by default

8. Uncheck the box

9. Refresh patron pages and confirm hold note shows

  • Link item barcode to the item more details page from the holds queue viewer (34160)

With this enhancement, an item barcode will be a linked on the Holds Queue report for easy access for staff to click the barcode and go directly to this item.

1. View the holds queue,

2. Note the item barcode is a hyperlink to the more details page for that item!

Clickable barcode on Holds Queue report


New Patron Features

  • Copy guarantee email to the guarantor (or redirect if the guarantee has no email set) (12532)

This new feature within the Patrons module will allow libraries to set email notices to be copied from guarantors to guarantees. A new system preference, RedirectGuaranteeEmail, can be enabled, so if the guarantee does not have an email listed on their account, then, Koha will redirect the email directed to the guarantee to the guarantor.

Process to test

1) Enable 'RedirectGuaranteeEmail'

2) Search, or create, a patron with a guarantor.

3) For both guarantors and guarantees:

- Add an email address

- Update the 'Patron messaging preferences' section so that an email is sent for item checkouts

4) Check notices on guarantee and guarantor, they should both have the same notice

For more information about this enhancement, see our Monday Minutes tutorial video: Updates to Guarantor and Guarantees in Koha

New Patron Enhancements

  • Guarantor requirements when registering a patron (12133) Sponsored by Koha-Suomi Oy

This new patron enhancement will allow for libraries to ensure each guarantee has a guarantor in Koha. For libraries that use the guarantor/guarantee relationship within Koha, there is a new system preference, ChildNeedsGuarantor, which will require that when registering a child patron category, they must have a guarantor linked to their account. This system preference will be disabled by default.

Process to test:

1. Set system preference ChildNeedsGuarantor to 'Must Have'

2. Try to add a new child patron without a guarantor. It should fail with an error message.

3. Add a new non-child patron. It will be successful without a guarantor.

For more information about this enhancement, see our Monday Minutes tutorial video: Updates to Guarantor and Guarantees in Koha

  • Cronjob to automatically restrict patrons with pending/unpaid charges (15157) Sponsored by Koha-Suomi Oy

This feature adds to the ability to restrict patrons with fines with a cron job. If a library would like to automatically restrict patrons due to fines, this is now possible. This enhancement would be good for schools, as they get close to the end of the school year, to ensure payment before they leave.

To test:

1. Have patron(s) with unpaid fines

2. Run /debar_patrons_with_fines.pl --confirm -m "This is a description of you bad deeds"

3. If an amount is needed within the cronjob, that is also possible. The amount entered will be the dollar amount greater than :

cronjobs/debar_patrons_with_fines.pl --confirm -a 26 -v -m "This is a description of you bad deeds"

3. Confirm patron(s) with fines has been debarred with the explanation

Note: If this is run multiple times, each patron that still has a fine will receive another restriction.

  • Track Patron’s Last Activity 15504

This enhancement changes how tracking patron activities (and updating the borrowers.lastseen field) works. A library can now select what patron activities to track.
Previously, with the system preference, TrackLastPatronActivity, enabled, the borrowers.lastseen field was updated when one of the “hard-coded” activities occurred.
Now this enhancement, a library can now individually select the patron activities to track. The current trackable activities are:
– All activities
– Checking in an item
– Checking out an item
– Connecting to Koha using SIP and ILS-DI
– Logging in (for both the OPAC and the staff interface)
– Placing a hold on an item (added by bug 35027)
– Placing an article request (added by bug 35030)
– Renewing an item

– If no activities are selected, then patron activity is not tracked, and the borrowers. lastseen field is not updated.
– The system preference TrackLastPatronActivity was renamed to TrackLastPatronActivityTriggers.

-this value will only update 1x a day

Process to test

1. Navigate to Administration and search for “TrackLastPatronActivity”

2. Observe that there are two system preferences - “TrackLastPatronActivity” and “TrackLastPatronActivityTriggers”

3. Change TrackLastPatronActivity to “Do” and save

4. In TrackLastPatronActivityTriggers, select “Login to OPAC” and save

5 Log into the OPAC with test patron

6. In the database, observe that the “lastseen” property for that patron has been updated

7. In TrackLastPatronActivityTriggers, unselect “Login to OPAC” and instead select “Checking out an item” and save

8. Check out an item to a different patron.

9. In the database, observe that the “lastseen” property for that patron has been updated

10. In TrackLastPatronActivityTriggers, select “Renewing an item” and save

11. In either the OPAC or the staff client - renew the item that you have just checked out to that patron

12. In the database, observe that the “lastseen” property for that patron has been updated

13. In TrackLastPatronActivityTriggers, select “Returning an item” and save

14. Return the item that you have checked out to the patron

15. In the database, observe that the “lastseen” property for that patron has been updated

In the real environment, we would only see the date/time of this patron's activity update only once per day.

  • Add protected status for patrons (26170)

This enhancement makes it possible to protect patrons from being accidentally deleted or merged with other patrons, from the UI and from (well behaved) cron jobs. It adds a ‘Protected’ field (with Yes and No options) in the library use section for a patron’s record. This will be super helpful to add this protected status on SIP patrons, the annoynmous patron, and other library-specific patrons.


- This does not intend to protect patrons from being edited, only from being deleted

Process to test:

1. Add a new user, note the presence of the "Protected" field under "Library management", change to Yes.

2. Note that "Protected" is displayed in the "Library use" section of the patron details.

3. Attempt to delete this patron, and note that More > Delete is disabled with a note that the patron is protected.

  • Differentiate password change and password reset in action logs (21431)

This enhancement allows staff to know what specifically happened with the patron password. Now staff will be able to identify when a password was changed and when a password was reset in the action logs.

Process to test

  1. Enable BorrowersLog.

  2. Do a password recovery on OPAC.

  3. Check with log viewer for 'RESET PASS' action.

  4. Do a password change on the OPAC

  5. Check the log viewer for 'CHANGE password'

  • Guarantor information is lost when an error occurs during new account creation (26558) Sponsored by Koha-Suomi Oy

This enhancement ensures that the guarantor information is saved even if an error occurred when creating the patron.

Process to test

To test:

1. Create a new account but cause a duplicate patron error.

2. Search for and select a guarantor.

3. Try to save the account.

=> Guarantor information should persist

  • Automatically renew patron membership (28688)

With this enhancement, libraries can automatically renew patrons with the membership expiration cron. This cron by default will send a message to inform patrons of their card expiration date and also send a expiration notice. Now in addition to this, this cron can be set up to

  • Renew patrons
  • Send a specific "MEMBERSHIP_RENEWED" notice to those patrons
  • Will allow libraries to choose what patrons to auto-renew, by looking at their active date. This active date is stored by the system preference, TrackLastPatronActivityTriggers, system preference.

For example, this cron:

membership_expiry.pl -c -renew -active 3

It will tell Koha to renew all patrons that have been active in the last 3 months and send them the MEMBERSHIP_RENEWED notice.

  • Optionally skip (in)active patrons when sending membership expiry notices (33522)

This enhancement works with the Membership Expiry cron found above. This allows for libraries to utlize the membership expiry cron to focus on the active date from with the borrower's data. To use this portion of the cron, with the membership expiry cron, the library will need to enable the system preference, TrackLastPatronActivityTriggers, so the last date that the borrower interacted with the system is stored. If a library would like to use this cron to skip expired patrons, they can also use this cron to send a separate notice, "INACTIVE_PATRON".

More about the Membership Expiry Cron and its functions can be found here.

  • Separate holds history from intranetreadinghistory (31357)

This enhancement will allow for holds history to be separate from intranetreading history.
Libraries will have the option of being able to view the holds history in a patron record without having to enable viewing of the circulation history (intranetreadinghistory system preference). This enhancement introduces a new system preference, intranetreadinghistoryholds.

Process to test:

1. Turn the system preference, intranetreadinghistory, to 'Don't Allow. This will not allow staff to have access to a patron's checkouts.

2. Turn the system preference, IntranetReadingHistoryHolds, to Allow. This will allow staff to view the patron's holds history

3. Verify in a patron's account, that a logged in staff member can't see the past checkouts of the patron, but can see the holds history.

  • Add patron lists tab to patron details and circulation pages (32730)

This enhancement allows staff to easily see if a patron is part of a patron list within Koha. This adds a tab to the Patron detail and circulation page. In addition to show the list the patron is included on, the ability to add this patron to another list also is included on this page.

Process to test:

1. Create a patron list if there aren't any patron lists

2. Add a patron to the list

3. Go to that patrons account and see that there is a new Tab called Patron Lists.

4. Click on this tab, and verify you see the list they are connected to.

5. Use the 'Add to List' function from this tab, and add this patron to another existing list.

Patron List tab from patron account

  • Show charges_guarantors_guarantees on patron details page (33271)

This enhnacement will not show the amount a guarantee/guarantor owes on the checkout screen and the patron detail page. This does require the system prererence, NoIssuesChargeGuarantorsWithGurantees, is enabled.

Process to test:

1. Turn on the system preference, NoIssuesChargeGuarantorsWithGuarantees and set the amount to 5.

2. Create a guarantor/guarantee relationship.

3. Add a manual invoice to the guarantor that is larger than 5.00.

4. Notice the message on that circulation ( check out tab ) page. " Charges: Patron's guarantors and their other guarantees collectively owe X. Checkouts are BLOCKED because fine balance is OVER THE LIMIT. "

5. Look at the more member ( details ) page. The same message will appear.

Guarantee/Guarantor Fines Displayed

  • Don’t show patron-privacyguarantor/patron-privacy_guarantor_fines if borrowerRelationship is empty (33620)

For libraries that do not use the guarantor/guarantee relationship within Koha, this enhancement will now hide the fields: -Show checkouts to guarantor and -Show charges to guarantor from the patron detail page.

Process to test:

1. Have some values, such as guardian, parent, etc in the system preference, borrowerRelationship.

2. Go to a patron details page and see both 'Show checkouts to guarantor:' and 'Show charges to guarantor:'

3. Now remove the values in the system preference, borrowerRelationship.

4. Visit the patron detail page again and you should no longer see either of those fields.

  • Add option to search patron attribute in standard search (34517)

This enhancement allows staff to choose what searchable attribute to search within the patron search. If the patron attribute has been marked 'search by default', Koha will still search this value automatically. For all other patron attributes, staff can use the search field dropdown and pick which attribute to choose from to search.

Process to test:

1 - Go to admin -> Patron Attributes -> Add patron attribute type and mark it searchable by default.

2 - Add some values to patrons with this specific patron attribute

3 - Search for those values in a 'standard' patron search.

5 - Go to admin - >patron attribute types

6 - Note new 'Searching' column' in the table of patron attributes

7 - Edit the attribute type and uncheck 'searched_by_default'

8 - Save

9 - Confirm attribute not searched in 'Standard' search

10 - Now select the attribute in patron search dropdowns and confirm it is correctly searched.

  • Add holds to patron activity triggers (35027)

This enhancement will add “placing a hold” as a point at which the patron can be tracked for activity. Before this, if a patron placed a hold, it did not update in the borrower.lastseen database column. Now ‘placing a hold' is added to the list of triggers available for tracking and can update the lastseen field.

Process to test:

1) Select 'Placing a hold on an item' in the TrackPatronLastActivityTriggers system preference

2) As a staff member, place a hold on any item for a test user

3) Confirm that the borrowers.lastseen field is updated for that test borrower

(See:Track Patron’s Last Activity 15504 above)

  • Extend TrackLastPatronActivity with placing article request 35030

This enhancement adds “placing an article request” to the list of available for tracking patron activity. See previous enhancement above.

Test plan

1) Select 'Placing an article request TrackPatronLastActivityTriggers system preference

2) As a staff member, place an article request for a test user

3) Confirm that the borrowers.lastseen field is updated for that test borrower

  • Add styling to show expired patron restrictions as inactive (26053)

In this enhancement, the restrictions on the patron detail page will show with text and a grey color line when the restriction has expired.

Process to test :

1. Go to a patron details page

2. Create 2 restrictions for tomorrow's expiration date.

3. Also create a restriction without a date

4. Once that patron's restriction has expired, check you see on expired line text : (expired) and the line is grey.

Expired Patron Restriction


New Label Enhancements

  • Make it possible to adjust the barcode height and width on labels (10762)

With this new label enhancement within the Label Creator, the width and the height of printed barcodes can be defined within the Label Layout. This will allow libraries to further customize the look of the barcodes. The width and height values are not required and will default to width=.8 and height=.01.

Process to test

1. Home > Cataloguing > Tools: Label creator > Manage Layout or New Layout

2. Make a new layout or edit an existing one

3. Notice the 2 new fields "Barcode width/Barcode height"

4. Enter some values (Barcode width: 1.6 / Barcode height: 0.02), save

5. Take back your batch of barcode and export it in PDF

6. The barcode should be 2x bigger than the standard barcode

New options in Label Layout

  • Add sort1 and sort2 to patron card creator patron search (28726)

This enhancement will improve the Patron Card Creator search function. For libraries using the patron card creator, this new enhancement allows for the Sort1 and Sort2 values to be searched during this process of adding patrons to a batch.

Process to test:

1. Start a new batch in the patron card creator (Tools -> Patron card creator -> New -> card batch)

2. Click the Add patron(s) button. There is now a search for patrons by their sort1 and sort2 values.

3. Perform a search and observe the 'Select all | Clear all | Add selected patrons' links and button.

4. Use the 'Select All' link to select all the patrons found by the search.

5. Use the Add selected patrons button to add the selected patrons to the card batch's Add by borrower number (s) text input field.

6. Close the search for patron window.

Sort Values within the Search


New OPAC Features

  • Enable compliance with EU Cookie Legislation via cookie consent (27378)

This new features adds proper handling of tracking cookies into Koha. The library can now enable the option for end users to accept or deny non-essential cookies being stored in their browser using the new system preference CookieConsent. If needed, the library should add its non-essential cookie code into CookieConsentedJS as opposed to OPACUserJS and IntranetUserJS. This will enable a cookie banner to appear at the bottom of the screen with options to allow all, allow essential, and view more information. For patrons to view more information, libraries can add text about the cookies with the new option under HTML customizations, using the option, CookieConsentbar and CookieConsentPopup

Process to test:

  1. In the Global System preferences within the Administration Module, there are two new system preferences, CookieConsentedJS and CookieConsent

  2. Change the value for the "CookieConsent" syspref to "Require" and save

  3. Refresh the staff intranet page. On the staff page view, observe that a cookie consent bar appears at the bottom of the page with just a single "Accept all cookies" button

  4. Test this same thing on the OPAC page

  5. Navigate to Tools > HTML customizations

  6. Click New entry

  7. In Display location, select CookieConsentBar

  8. Set the Publication Date for today’s date

  9. Add some text to the text editor and click save.

  10. Refresh the staff intranet page

  11. In the intranet view, observe that the cookie consent bar appears at the bottom of the page containing the text you specified

  12. Refresh the OPAC page

  13. In the OPAC view, observe that the cookie consent bar appears at the bottom of the page containing the text you specified

  14. In the HTML customizations, repeat steps 7-10 but this time select CookieConsentPopup

  • Add ability for OPAC users to checkout to themselves (30979) Sponsored by European Southern Observatory

This new feature will allow patrons to check items out to themselves directly from the OPAC. This feature adds a new system preference, OpacTrustedSelfCheckout which will turned off by default. When enabled, OPAC patrons will see a new checkout option in the header of the page when logged in. This option displays a modal where they can scan barcodes to perform a self-checkout.

Process to test:

1. Turn on system preference: OpacTrustedCheckout

2. Go to the OPAC home page.

3. Login as a patron and note that in the OPAC header there is now a Self checkout option after Cart and Lists.

4. Click on Self checkout ==> window pops up asking you to enter a barcode.

5. Enter a barcode for an item that is available, for example: 39999000006094

==> Message should say: "Item '39999000006094' was checked out", and an option to enter another barcode, as well as Submit and Close buttons.

6. Click close and check your account > your summary: item checked out should be listed.

7. Repeat step 5 with the same barcode, this time the result should be:

==> Message says: "Item will be renewed"

8. There is also an input box to enter another item barcode, and there may also be a list of barcodes checked out and the due date.

9. Test, if an item is attempted to be checked out to a patron through this self checkout but it is already checked out to another patron,

==> Message says: "This item appears to be checked out to another patron, please return it to the desk"

10. Use the self-checkout to try and checkout an item on hold:

==> Message says: "This item appears to be reserved for another patron, please return it to the desk"

11. Use the self checkout to try and checkout an item on hold that is waiting for pickup for the patron:

==> Item should be successfully checked out with message "Item '39999000008036' was checked out", with options to enter another barcode, Submit and Close buttons

==> Click close and check your account > your summary: item checked out should be listed

12. Repeat step 11, but use the self checkout to try and checkout an item that is on hold and waiting for pickup by another patron

==> Message says: "Message code 'RESERVE_WAITING' with data '1' Message code 'reswaitingdate' with data '2023-01-13'"

13. Try and checkout and item not for loan:
==> message says: "This item is not normally for loan, please select another or ask at the desk"

==> Item does not check out, as expected.

14. Try and checkout an item recorded as Withdrawn:

. Try and checkout using the self-checkout

==> message says: "This item is marked withdrawn, please select another or ask at the desk"

15. Add a manual charge for the koha patron then try and check out an item. Add a manual invoice for the koha patron of $20.

==> message says: "Your account is currently in debt by '20'"

==> Does not checkout item.

For more information about this featues, see our Monday Minutes tutorial video: Monday Minutes: OPAC Self Checkout

  • Add biblio details to trusted self-checkout modal (32711)

This enhancement works with the new feature, self-checkout from the OPAC. When checking out an item through the checkout option, the information about the title will display, such as barcode, title, call number, and due date.

Process to test:

1. Enable OpacTrustedCheckout system preference.

2. Go to the OPAC home page.

3. Login as a patron

4. Click the "Self checkout" option after Cart and Lists.

5. A window pops up asking you to enter a barcode.

6. Enter a barcode for an item that is available, for example: 39999000006094

==> Message should say: "Item '39999000006094' was checked out".

==> Next is an input box to enter another barcode.

==> The table listing items checked has columns for Barcode and Due date.

==> The table listing items checked out now has two additional columns - Title and Call number.

==> And then there are the Submit and Close buttons at the bottom

For more information about this featues, see our Monday Minutes tutorial video: Monday Minutes: OPAC Self Checkout


Accessibility Enhancements to the OPAC

The following enhancements will bring additional accessibility features to the OPAC for patrons

  • Accessibility: Non-descriptive links (33808)

With this enhancement, when hovering over links, a more descriptive link should appear to let the patron know that it is okay to click the link and what site it is going to

  • Accessibility: OPAC results page needs more descriptive links (33809)

This enhancement will include more description to the ‘show more’ options to allow screen readers to understand what this means.

  • Accessibility: OPAC messaging preferences is missing form labels (33812)

This enhancement adds Aria-labels to checkboxes in the OPAC messaging preferences table to assist with screen reading. The relevant preference has been mentioned in each label to identify what the checkbox is for.

  • Accessibility: Non-descriptive title on ISBD detail (33818)

This enhancement adds the biblio.title to the breadcrumb for the ISBD viewer. This now matches the normal and MARC views and is much clearer for screen readers.

  • Accessibility: More description required in OPAC search breadcrumbs (33819)

This enhancement adds the page number to the breadcrumb in the OPAC search results to ensure that it is unique to the content on the page. Currently, it is not compliant with Accessibility guidelines as the breadcrumb is identical on every page despite the content being different.

  • OPAC self-registration form does not include the 'preferred language for notices' field (34438)

This enhancement will add the option for ‘preferred language for notices’ within the Self Registration form. This will be on by default for libraries that have enabled the ‘translate notices’ system preference. The option for the language of preferred notices shows up on the patron account on the staff interface. The field can be hidden using the PatronSelfRegistrationBorrowerUnwantedField and PatronSelfRegistrationBorrowerMandatoryField system preferences if not needed.

Process to test

1. Install a language pack (this needs to be done on the backend of Koha, not through the administration section. Contact ByWater if you are a partner to have a specific language pack installed on your Koha system.

2. Turn on the system preference TranslateNotices

3. Go to the OPAC self-registration form and see the option for 'Preferred language for notices'

4. Use the PatronSelfRegistrationBorrowerUnwantedField and PatronSelfRegistrationBorrowerMandatoryField to make sure you can make the field required/hidden.

5. Login to the OPAC and go to patron details, make sure you can modify the Preferred language for notices field successfully.

  • Add classes to Shibboleth text on OPAC login page (35147) Sponsored by New Zealand Council for Educational Research

For libraries using Shibboleth to log into the OPAC, this enhancement allows libraries to change the message on the OPAC login page.

Process to test

To test:

1. Disable the OpacPublic system preference. Ensure you are logged out of the OPAC.

2. In the staff interface, search for the OPACUserJS system preference under Koha Administration. Add the following JS and Save:

$(".shib_invalid").text("Test changing the invalid Shibboleth login message.");

$(".shib_title").text("Test changing the Shibboleth login heading.");

$(".shib_url").text("Test changing the Shibboleth account link text.");

$(".shib_local_title").text("Test changing the local login heading.");

$(".shib_local_text").text("Test changing the message that shows if you do not have a Shibboleth account.");

3. Refresh the OPAC and confirm the text changes to reflect your JS. Note: The invalid Shibboleth login will be a bit harder to test, so if you can't test, confirm the HTML in the patch looks correct.

  • Update links for self-registration avoiding “here” (35261)

This enhancement adjusts the language for self-registration pages. Due to accessibility reasons, Koha is removing the “Register Here” with the text “Create an Account”.

Process to test

1. Enable the PatronSelfRegistration system preference
2. Go to the OPAC and check the login form in the right-hand sidebar.

3. Notice the text says "Create an Account"

  • OPACHoldsIfAvailableAtPickup considers On order as available 33087

This is an enhancement that will assist libraries that are not allowing holds on available items but would like holds to be able to be placed on “Not for Loan Items” such as ordered.

Process to test:

1. Set OPACHoldsIfAvailableAtPickup to "Don't allow"

2. Go to Administration > Global system preference

3. Search for OPACHoldsIfAvailableAtPickup

4.Change the value to "Don't allow"

5.Click "Save all Circulation preferences"

6. Have an Not For Loan status of negative value, maybe the “Ordered” one.

7. Make an item "On order" at the patron's library

8. Try to place a hold on the item through the OPAC

9. In the OPAC, log in as the patron

10. Search for the item

11. Click "Place hold"

  • Use the confirmation modal when removing titles from a list in the OPAC (26824)

With this new enhancement, there will now be a confirmation modal instead of a JavaScript alert.

Process to test

1. View the contents of a list in the OPAC.

2. Click the "Remove from this list" link under one of the titles.

- You should see a modal confirmation message, "Are you sure you want to remove this item from the list?" It should show the title of the item on the list.

3. Test both the "Yes" and "No" choices.

  • 34889 Convert PatronSelfRegistrationAdditionalInstructions system preference to HTML customization

This enhancement allows libraries to customize their instructions to the Tool- HTML Customizations. This change will allow for alternate language as well as library-specific content to be utilized.

Process to test:

  1. In the staff client, go to Tools -> HTML customizations and verify that the content previously in the PatronSelfRegistrationAdditionalInstructions preference is now stored there. (if your library had content there before the upgrade)

  2. The HTML customization entry form should offer PatronSelfRegistrationAdditionalInstructions as a choice under "Display location."

  3. Edit the PatronSelfRegistrationAdditionalInstructions HTML to include text to test

  4. Go to the OPAC and click "Register here."

  5. Submit a new registration and confirm that the content that was previously stored and new content is shown correctly on the registration confirmation page.

  6. Go to Administration -> System preferences and confirm that the PatronSelfRegistrationAdditionalInstructions preference has been removed.

  • Convert OpacSuppressionMessage system preference to HTML customization (34894)

This enhancement moves the OpacSuppressionMessage system preference into HTML customizations, making it possible to have language- and library-specific content.

Process to test:

1. In the staff client, go to Tools -> HTML customizations and verify that the content from OpacSuppressionMessage is now stored there.

2. The HTML customization entry form should offer OpacSuppressionMessage as a choice under "Display location."

3. Add a new text to the HTML customization for OpacSuppressionMessage

4. In the staff interface, locate a bibliographic record and open it for Editing.

5. Under tab 9, tag 942, change subfield n, "Suppress in OPAC", to "Yes" and save the record.

3. Go to the OPAC and try to navigate directly to the bibliographic record, altering the URL to include that specific bibliographic record number.

4. Go to Administration -> System preferences and search for "OpacSuppression." The description of these preferences should show an updated message about using HTML customizations to create OpacSuppressionMessage content.

  • Convert OpacMaintenanceNotice system preference to additional contents (23798)

This enhancement moves the OpacMaintenanceNotice system preference into HTML customizations, making it possible to have language-specific content

Process to test:

  1. To test you should have some content in the OpacMaintenanceNotice system preference or add some with the test plan.

  2. In the staff client, go to Tools -> HTML customizations and verify that the content from OpacMaintenanceNotice is now stored there.

  3. The HTML customization entry form should offer OpacMaintenanceNoticeas a choice under "Display location."- create some text for this maintenance notice.

  4. Enable the "OpacMaintenance" system preference.

  5. Try to view any page in the OPAC. You should see the content you added to the OpacMaintenanceNotice HTML customization.

  6. Go to Administration -> System preferences and search for "OpacMaintenanceNotice." The search should return no results.


New Reports Enhancements

  • Simplify reserve status handling (23059)

This enhancement improves the Koha Reports Wizard by keeping the language consistent throughout Koha specifically to Holds. When running the report wizard, the options for finding holds will be designated by statuses familiar to libraries, cancelled, filled, placed, and waiting.


New Notice Enhancements

  • Add ability to generate custom slips for patrons (32986)

This feature makes it possible to create custom slips that will appear in the ‘Print’ menu in the patron’s user account in staff. For this purpose a new module was added to the pull-down in the notices and slips tool: ‘Patrons (custom slip)’.

Process to test:

1 - Go to Tools->Notices and slips

2 - Define a new notice choosing the 'Patron toolbar (slip)' module

3 - Enter content like below in the 'Print' transport:


Patron has [% borrower.holds.count %] holds

List of holds:

[% FOREACH hold IN borrower.holds %]


Reserve id: [% hold.reserve_id %]

Title [% hold.biblio.title %]

[% END %]

4- Go to patron screen

5 - Note new option under 'Print'

6 - Print the new slip and confirm it works (try with and without placing holds for patron

New Slip in Tools
Patron Slip


New Staff Interface Enhancements

  • Add customizable areas to intranet home pages (6419)

This enhancement adds several new locations to HTML customizations to add content to various staff interface pages. This supports multilingual content, as with any HTML customization.
New locations are:

  • StaffAcquisitionsHome: adds content at the bottom of the acquisitions module home page

  • StaffAuthoritiesHome: adds content at the bottom of the authorities module home page

  • StaffCataloguingHome: adds content at the bottom of the cataloguing module home page

  • StaffListsHome: adds content at the bottom of the lists module home page

  • StaffPatronsHome: adds content at the bottom of the patrons module home page

  • StaffPOSHome: adds content at the bottom of the point of sale module home page

  • StaffSerialsHome: adds content at the bottom of the serials module home page

Process to test:

1. Go to Tools Module- HTML Customization

2. Choose to create a new Entry and choose the location where the message will appear.

3. The choices will include, StaffAcquisitionsHome, StaffAuthoritiesHome, StaffCataloguingHome, StaffListsHome, StaffPatronsHome, StaffPOSHome, StaffSerialsHome

4. Fill out the form with the publication date, expiration date, and title. The WYSIWIG can be used to create content or a text editor.

5. Go to that page where the content was created, you should see the content at the bottom of the main page of that module.

Staff customizations on specific module page

  • Extend the ‘Last patron’ navigation feature to ‘Last X patrons’ Sponsored by ByWater Solutions

This enhancement will allow for libraries to show more than the one last patron visited on the staff interface. A library can customize the number of last patrons that this will show, up to 10 patrons. The new system preference, ShowLastPatronCount, will allow libraries to indicate how many patrons to show in this dropdown.

Process to test

  1. Enable the system preference, showLastPatron

  2. Include a number in the system preference, ShowLastPatronCount.

  3. Visit the patron details page for a few patrons

  4. Note the "Last patron" link behaves as it did previously

  5. Note the split button has a pulldown with the other previous patrons

  6. Verify that if you visit a patron who is already on the list they get moved to the top of the list

Dropdown option in Show Last Patron

  • Show searchable patron attributes in the patron search dropdown ( 26916)

This enhancement adds patron attributes that have been marked searchable to the patron search drop downs.

Process to test:

1. Define some new patron attribute types and mark then staff_searchable when adding the patron attribute.

2. Add some values to patrons

3. Confirm the fields now show in patron search drop-downs

4. Search using 'standard' and confirm the search works

5. Search specific attributes and confirm the search works

  • Require library selection when logging in (34188)

This new enhancement adds a new system preference ForceLibrarySelection. A library can enable this system preference, and the result will be staff will have to choose a library when logging into the staff interface. If this system preference is not enabled, staff will log in by default to the branch they are linked to in their account.

  • Display item’s shelving location on the items tab (35059)

This enhancement updates the item details template so that item location is displayed along with information like collection and call number.

Process to test

  1. View the bibliographic details page of the record.

  2. Click the "Items" tab in the left-hand sidebar menu.

  3. Under the "Item information" subheading you should see a line for "Shelving location" just after the "Item call number" line.

  4. Confirm that the correct item location description is shown.


New List Enhancements

  • Add to cart option/other list options missing from OPAC lists display (15222)

This enhancement adds options to the OPAC for adding titles to the cart or another list, from an existing list. (These options already exist in the staff interface.)

Process to tes

1. On the OPAC, if a public list does not already exist, create one within the staff interface

2. Go to the OPAC and view the public list.

3. In the toolbar at the top of the table of titles you should see an "Add to List" / "Add to Card" option

4. Check checkboxes for one or more titles on the list. The "Add to List" option should now be enabled.

5. If you are not logged into the OPAC, clicking the "Add to list" button should trigger an alert, "You must be logged in..."

6. Check checkboxes for one or more titles, Choose the "Add to Cart" option. Verify that the titles move to the cart.

7. Log in to the OPAC and view the list again.

8. Confirm that the "Add to list" control should trigger a popup allowing you to add your selected titles to an existing or a new list.


New Searching Enhancements

  • Item Search should include a way to limit by damaged items. (26468).

This enhancement now includes the ability to limit damaged items and also by the statuses within the damaged value.

Process to test:

1. Go to Item Search

2. See the option to limit by damaged. If a library has more than one damaged value, there should be a dropdown to allow for clicking one or multiple damaged statuses.

  • Add persistent selections and batch operations to item search (34227)

These new item search enhancements allow users to keep their selections within the item search when paging through results and also conducting a new search. In addition, now users can take the results of the item search and bring those items directly into the batch item modification and batch item deletion tool. To use the batch item modification and batch deletion tool from the item search, staff will need to have these permissions

Process to test:

  1. Go to item search and perform a search which will return at least two pages of results.

  2. On the search results page you should see a new search header toolbar with some controls: "Select visible rows," "Clear selection," "Export all results to" and "Batch operations" (disabled).

  3. Confirm that the "Select visible rows" control works as expected, selecting all checkboxes on the current page (and on no other pages)

  4. After selecting all checkboxes the search header controls should be updated:

- The "Export all..." button should now show the number of selections: "Export selected results (X) to..."

- The batch operations button should be enabled.

- There should be a new element labeled "Items selected: X" with a "Clear" link.

5. Test the batch operations menu, both menu options should take you to the correct page and the list of submitted items should match your selections.

6. Test that your search selections are really persistent:

- Navigate away from the page, return to item search, and perform another search.

- The "Item selected" box should still show your previous selections.

- Any items you previously selected which are also in this result set should have a checked checkbox.

- Click the "Edit search" button from the item search results page and new search with different parameters.

- The "Items selected" should still show your previous selections.

7. Log out of Koha and back in. When you perform an item search now there should be no "Item selected"

  • Add Scottish Gaelic to the advanced search options (34328)

    In this enhancement, Scottish Gaelic was added to the advanced search.

Damaged included in Item Search

  • Allow different default sorting when click author links (33217)

In this enhancement, now a library can determine how an author limited search can be different than the standard default relevancy, Authors and contributors in the detail pages are linked to a search for more materials of the same persons or institutions. The new system preferences AuthorLinkSortBy and AuthorLinkSortOrder now allow to change the sort order for these links specifically.. When using the facets for author, i.e. limiting a search, it makes sense to preserve the default sort order for the results (relevance, etc)

When clicking on an author to search the catalog for all works by an author, it would be nice to be able to optionally specify sorting for the listing - i.e. publication date, or title

This patch adds two new system preferences:



Process to test:

1 - Do a search in intranet and staff for 'Austen' or an author you have multiple titles from

2 - Click the linked name

3 - Note a new search is performed, sorted by field from defaultSortField preference

4 - Set the system preference, AuthorLinkSortBy, to 'date of publication' and the system preference, AuthorLinkSortORder, to ascending.

7 - Search again, confirm links obey sorting specific above

8 - Test other values - confirm links are updated in both staff/OPAC and results/details

  • ElasticSearch should search keywords apostrophe blind (27153)

This enhancement will allow libraries to re-index their Elastic Search configuration to ignore the apostrophes in the title, making searching easier for everyone.

For ByWater Partner libraries, they will need to submit a ticket to have their site reindexed for this change to be updated.

  • Add compatibility with Elasticsearch 8 and OpenSearch 2 (33353)

These changes to support ElasticSearch 8.x and OpenSearch 2.x come with a loss of support for ElasticSearch 6.x. Existing instances will have to upgrade to either ElasticSearch 7.x or 8.x or OpenSearch 1.x or 2.x Upgrade from ES 7.x or OS 1.X to ES 8.x or OS 2.x require a reindex.


New Features in Self Check Out

  • Convert SCOMainUserBlock system preference to HTML customization (35048)

For libraries using Koha’s Self Checkout Module, this enhancement moves the SCOMainUserBlock system preference into HTML customizations, making it possible to have language- and library-specific content.

Process to test:

  1. In the staff client, go to Tools -> HTML customizations and verify that the content from SCOMainUserBlock is now stored there.

  2. The HTML customization entry form should offer SCOMainUserBlock as a choice under "Display location."

  3. Log into the self checkout system and confirm that the SCOMainUserBlock content is shown there.

  4. Go to Administration -> System preferences and search for "SCOMainUserBlock." It should return no results.

  • Convert SelfCheckInMainUserBlock system preference to HTML customization (35063)

For libraries using the SelfCheckInModule within Koha, this enhancement moves the SelfCheckInMainUserBlock system preference into HTML customizations, making it possible to have language- and library-specific content.

Process to test

  1. In the staff client, go to Tools -> HTML customizations and verify that the content from SelfCheckInMainUserBlock is now stored there.

  1. The HTML customization entry form should offer SelfCheckInMainUserBlock as a choice under "Display location."

  2. Log into the self-check-in system and confirm that the SelfCheckInMainUserBlock content is shown there.

  3. Go to Administration -> System preferences and search for "SelfCheckInMainUserBlock." It should return no results.

  • Convert SelfCheckHelpMessage system preference to HTML customization (35065)

For libraries using the self checkout module, this enhancements moves the SelfCheckHelpMessage system preference into HTML customizations, making it possible to have language- and library-specific content.

Process to test

  1. In the staff client, go to Tools -> HTML customizations and verify that the content from SelfCheckHelpMessage is now stored there.

  2. The HTML customization entry form should offer SelfCheckHelpMessage as a choice under "Display location."

  3. Log into the self checkout system and click the "Help" link at the top.

4. On the help page, confirm that the SelfCheckHelpMessage content is shown there.

5. Go to Administration -> System preferences and search for "SelfCheckHelpMessage." It should return no results.


New Electronic Resource Management Module Features

  • Add a Usage Statistics module to ERM (34587) Sponsored by ByWater Solutions and PTFS Europe

This feature adds the ability to create Data Providers and harvest usage data in COUNTER format. Data Providers (or Data Platforms) are the organizations that provide usage statistics for your electronic resources. This could be a vendor or a platform provider. The data provider record contains information about SUSHI credentials and any COUNTER data that has been harvested from the provider. There is also the ability to create custom reports using this COUNTER data.

Process to test:

1.) Make sure the ERMModule system preference is set to Enable

2.) Navigate to E-resource management --> eUsage --> Data providers

3.) Click + New data provider

4.) Begin typing the data provider name (vendor) that you wish to set up. If a match is found, select the data provider. If it is not found, select the Create manually button to the right.

5.) Enter any additional information about the data provider in the description. (Not a mandatory field)

6.) Select the Harvester status to Active or Inactive. (Not a mandatory field)

7.) Select the report type from the drop-down menu.

8.) Under SUSHI credentials, you will see the Service URL. If the data provider was created from the registry, this field will be filled in. If you entered the data provider manually you will need to enter the Service URL.

9.) If you are connecting via SUSHI you will need to enter the Report Release (this is the counter type). You can find more information at https://www.projectcounter.org/code-of-practice-five-sections/5-delivery-counter-reports/. 5 is the standard.

10.) Enter the customer id and requestor id for the sushi reports

11.) Click submit.

12.) Under the Actions column click test (if you entered SUSHI credentials). Confirm Harvester connection was successful for the usage data provider

13.) Click Run now. Enter a beginning date and end date. Click Yes, Run.

14.) You will see a Job for report type (of the report) at the top of the page. Make sure the job has been queued, click the 'click here' to check its progress.

15.) Confirm the report has run.

16.) Click on the Name of the data provider in the table, if you manually created the data provider start at this step. You will see 7 tabs across the top (detail, titles, platforms, items, databases, manual upload, import logs.

17.) If you manually created a data provider, select the manual upload tab. Upload a counter 5 report. Confirm the titles load.

18.) On the right-hand side click on Reports under eUsage.

19.) Click on Create Report.

20.) Select the required fields and data needed for the report. Select report columns. Enter the name of your report at the bottom of the page and click save report. Click submit.

21.) Confirm report runs

22.) Click on Saved Reports and confirm your report saved.

PTFS Europe created tutorial videos to illustrate this process:




  • Create one standard Toolbar component (33417)

This enhancements introduces a standard Toolbar component that can be used throughout ERM

Process to test:

1. Navigate to Agreements and click the "Add agreement" button - this should work as normal

2. Navigate to Licenses and repeat

3. Navigate to Local packages and repeat

4. Navigate to local titles - there should be two buttons, one to add and one to import. These should work as normal

  • Improve display of the vendor aliases in the ERM module (33480)

This enhancement allows staff to search for the vendor aliases in a way that is consistent throughout Koha. These aliases will be searchable through the dropdown list within the ERM module.

Process to test

1. Create several vendors, and add some aliases to them (keep one vendorwithout alias)

2. Go to the ERM module go to the following page, search for vendors by aliases, save the form, and confirm that everything is nice and works correctly:

* Add/edit an agreement

* Add/edit a license

* Add/edit a local package

* Add a new package to a title (edit a title)


New Tool Enhancements

  • Batch patron modification does not allow to modification of repeatable patron attributes (21083)

This enhancement adds the ability to set patron attributes marked as repeatable in the batch patron modification tool.

Process to test

  1. Have multiple patron attributes and try with several combinations and set patron attributes using the batch patron modification tool.

  2. Make sure there is no data loss and that the result is what you expect

  • Show club enrollment question answers in staff interface (25079)

Process to test:

1. Create a club template

1.1. Go to Tools > Patron clubs

1.2. Click on 'New Club Template'

1.3. on the 'Club fields' section, Click on Add new field

1.4. on the 'Enrollment fields' section, Click on Add new field

2. Creation of the club

2.1 Go to Tools > Patron clubs > 'Clubs' section (bottom)

2.2 Click on the 'New Club' button and select the club template create on step 1

3. Club enrollment On the intranet (or the OPAC if permitted)

3.1. Search for a patron and open the patron folder

3.2. Click on the 'Clubs' tab

3.3. Find the name of the club and click on 'Enroll'

3.4. Fill the questionnaire

3.5. Confirm registration

4. Check registrations on the intranet

4.1. Go to Tools > Patron clubs

4.2. In the bottom 'Clubs' section, find the name of the club

4.3. check the 'Enrolled patrons' column

---> should not be equal to zero.

4.4 Click on 'Action' and choose the option “Enrollments”

---> The Enrollment fields were created on step 1.4. are viewable in the table with their values

Club Enrollement questions

  • Add item type criteria to batch extend due date tool (26978)

This enhancement add an option to change due date by item type from the batch extend due date tool.

Process to test

1. Checkout multiple items for any patron

1.1. Checkout items for different types

2. Go to : More > Tools > Batch extends due date

3. There is a new option to choose Item Type

4. Choose the dates that correspond with your checkouts

5. Click on "Continue"

6. There is the list of items whose types has been specified.

Item Types included in Batch Extend Due date tool
  • Allow patron card creator to use a report to get list of borrowers (29181)

This enhancement adds the option of taking the results of a report that returns borrower numbers and creating a new patron card creator batch with those results.

The logic of the dropdown menu has been modified in order to ensure that duplicate patron modification options aren't shown in the menu when a report returns both borrowernumber and cardnumber.

Process to test

1. Create this test report in the Koha Report Module

SELECT borrowernumber, cardnumber, surname, firstname FROM borrowers order by RAND() LIMIT 20

2. Run your report

3. Click the "Batch operations with..." button at the top of the result

4. Click "Patron card creator"

5. A new tab should open with a new patron card creator batch with the patrons from your report.

Patron Card creator choice in Reports
  • Improve inventory tool message for items with non-matching notforloan values (34820)

This enhancements clarify the message for items with non-matching not for loan values in the inventory results ‘Problems’ column.

– Adds a hint on the inventory tool page under ‘Optional filters for inventory list or comparing barcodes’ section.
– Clarifies the message in the ‘Problems’ column: from ‘Unknown not-for-loan status’ to ‘Items has no not for loan status’. If one or more not for loan values (Optional filters for inventory list or comparing barcodes > items.notforloan) are selected, and an item is scanned that has no NFL status or an unselected NFL status, the error message was “Unknown not-for-loan status”. This could be interpreted as the item having an NFL status value that is not defined in the system, but that is not accurate. This is now clarified and the error message is now “Items has no not for loan status”.

Process to test

1. Create two items, one of which has the NFL status of "Ordered", the other having no NFL status

2. Enter those two barcodes in the inventory tool barcodes list

3. Check only "Ordered" in items.notforloan

4. Note the new clarified messages!

  • Allow to delete multiple patron lists at once (34977)

This enhancement enables selecting and deleting multiple patron lists at once, instead of having to delete patron lists one at a time.

Process to test:

1. Create at least 2 patron lists (Navigate to Tools > Patron lists > New patron list).

2. Select the lists you want to delete.

3. Click the "Delete selected lists" button.

4. Confirm that the selected lists have been deleted.

5. Ensure that the button cannot be used if no list is selected.

  • Use template plugins to display OPAC news on home page (29691)

This feature will change the way Koha is grabbing the news. The news will now be moved to a template and will allow displaying branch news by default on the home page.


New Serials Enhancements

Show list of serial email alerts a patron subscribed to in patron account in OPAC (28130) Sponsored by Bibliotheksservice-Zentrum Baden-Württemberg (BSZ)

For libraries using the Serials Module, and specifically for Patron Notifications within the Serials Module, this is a new enhancement that adds an ‘Alert subscriptions’ page to a patron account to easily view or cancel email alerts the patron has enabled for subscriptions. This new page is available on both the staff interface and the OPAC.

This enhancement adds an 'Alert subscriptions' page to a patron account to easily view or cancel email alerts the patron has subscribed to.

Process to test:

1. From an existing subscription, choose your notice under Patron notification. Fill out the remaining details and save your subscription.

2. Go to Tools -> Notices & slips. Create a notice under the "Serials (new issue)" module, if you don't already have one.

3. Open this record in the OPAC. Under the Subscriptions tab, click the button to "Subscribe to email notification on new issues"

4. Go back to the staff interface. Go to your patron account.

5. Notice there is a new "Alert subscriptions" tab in the left sidebar menu. The number in brackets should say 1, for the subscription you just enabled email alerts.

6. Click into the page. Confirm your subscription shows in the table.

7. Click the button to unsubscribe. A confirmation should pop up. Confirm you can cancel the unsubscribe action. Then confirm you can unsubscribe using this button.

Patron Option Subscribe to Subscription
When new issue arrives, patron alert on OPAC


New Features in ILL

  • ILL should provide the ability to create batch requests (30719) Sponsored by UKHSA – UK Health Security Agency and PTFS Europe Ltd

This brings a new ILL request batches feature to the staff interface, allowing staff members to create groups of requests in batches using DOIs or PubmedIDs.
The feature requires at least one compatible ILL backend and at least one metadata enrichment plugin (DOI or PubmedID, or both) to be used.
Current backends that support batches available:

Current metadata enrichment plugins available:

  • ILL – Allow for a disclaimer stage per request type (33716)Sponsored by NHS England

This introduces a new YAML system preference ILLModuleDisclaimerByType allowing for different text and dropdown options to be displayed to the user (Staff+OPAC) depending on the request type introduced. The new type disclaimer screen is presented after the create request form has been submitted, but before the request is saved. Thus, only allowing for a request to be placed if the user accepts the disclaimer. The accepted disclaimer option is saved in the database to allow it to be viewed afterward, as well as the timestamp it was accepted.

New Enhancements in ILL

  • Add per-borrower category restrictions on placing ILL requests in OPAC (18203) Sponsored by PTFS Europe Ltd

When the ILL module is activated, the patron category administration page will include a setting “Can patron place ILL requests in OPAC”. For existing installations, the flag will be set for all patron categories on update.

Process to test:

1. Enable ILLModule sys pref and install any backend

2. Verify you can place new ILL requests in OPAC and Intranet

3. In borrower categories, set 'Can place ILL' to yes for one patron category.

4. Verify you can place new ILL requests in OPAC and Intranet with a patron within that patron category.

  • It should be possible to cancel an ILL request sent to a partner (27542)

Process to test:

  1. Create a ILL request

  2. Place the request with partners

  3. Modify the request

  4. Observe that the "Revert request" button is displayed

  • Remove ILL partner_code config from koha-conf.xml and turn it into a system preference (32911) Sponsored by PTFS Europe Ltd

The partner_code element in the koha-conf.xml was replaced by a new system preference ILLPartnerCode.


New API Enhancements

  • Add an API endpoint for checking an item out to a patron (23336)

This enhancement adds API for the Trusted Self Checkout released in this Koha Version https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=30979

  • REST API: Extend endpoint /auth/password/validation for card number (32739)

This development adds a new attribute for identifying the patron for password validation: identifier. It expects to be passed a userid or a cardnumber in it. It the identifier doesn’t match a userid, then Koha will try matching a cardnumber.

  • Add ability to send welcome notice when creating patrons using the REST API (33690)

This would be beneficial for an outside service such as Aspen Discovery to utilize this enhancement.

  • Add ability to search biblios endpoint using any biblioitem attribute (33974)

This enhancement allows for an outside service to search Biblio item attributes such as ISBN.

  • REST API: Add a list (GET) endpoint for itemtypes (34008)

This is an enhancement that would allow an outside service to get an endpoint for item types.

  • Allow to embed biblio on GET /items (34054) Sponsored by Bibliothèque Universitaire des Langues et Civilisations (BULAC)

  • Make password validation endpoint return patron IDs (34313)

Verify patron via API, will now give the patron ID (will have all this information)

  • Add cancellation request information embed option to the holds endpoint (34333)

Outside services can see that the patron has requested to cancel a hold- this works with the feature, allow patrons to cancel waiting holds.


SIP Enhancements

  • Add a message on successful check-in (25814)

This enhancement will return a message on a successful SIP check-in. This requires libraries to enable this message in the SIP configuration. There is a new system preference, UseLocationAsAQinSIP that will allow libraries to determine what location to show, homebranch or permanent location.

Process to test:

  1. Enable this message in the SIP configuration

  2. Update the system preference, UseLocationAsAQinSIP to location

  3. Perform a successful check-in using SIP

  4. Check that the message is in the check-in response (AF field)

  5. - prove t/db_dependent/SIP/Transaction.t

  • Add OPAC messages in SIP display (25816)

This new enhancement will allow libraries to include OPAC messages in a SIP display to the patrons. The new system preference, SIP2AddOpacMessagesToScreenMessage can be set to ‘do’ to allow OPAC messages to display to patrons through a SIP connection. The OPAC message will include “Starting with “Messages for you: “.OPAC Message.

Process to test

  1. Set this new system preference, SIP2AddOpacMessagesToScreenMessage, to 'do'.

  2. Create an OPAC message to a patron through the staff interface

  3. Using a SIP device, connect for this patron and see the OPAC message.

  • Add the ability to specify fields allowed in a response (33926) Sponsored by ByWater Solutions

This enhancement will allow libraries to determine which fields will be allowed in a SIP response. Previously, a library could only specify which fields to hide in a response.

  • Enable fulfillment of recalled items through SIP2 (34016 ) Sponsored by Auckland University of Technology

This enhancement allows SIP (using self-check machines) to better handle recalled items – preventing the check-out of recalled items if they have been allocated to another patron, or fulfilling recalls if the item was recalled and allocated to this patron.

  • Add ability for SIP2 to distinguish missing items from other lost types (34868) Sponsored by ByWater Solutions

The SIP circulation status specifies that a 12 means an item is lost, and a 13 means an item is missing. In Koha, missing items are simply a type of lost item so we never send a 13. This is an important distinction for some SIP-based inventory tools. It would be good to be able to specify when lost status means "missing" at the SIP login level.

  • Enhance SIP2SortBinMapping to support additional match conditions (34737) Sponsored by PTFS Europe Ltd

This enhancement will expand the system preference, SIP2SortBinMapping to allow for additional item field conditions when sorting.

  • Limit items types that can be checked out via SIP2 (34101)


Documentation Enhancement

  • One Koha manual (34955)
    From 23.11, there is one Koha manual for all Koha versions.
    Notes are used in the manual to indicate in which Koha version a feature has appeared or changed. Previous manual versions (23.05 and older) are not affected.

New System Preferences

New system preferences

  • AcquisitionsDefaultEMailAddress

  • AcquisitionsDefaultReplyTo

  • AdditionalFieldsInZ3950ResultAuthSearch

  • AuthorLinkSortBy

  • AuthorLinkSortOrder

  • AutomaticCheckinAutoFill

  • CalculateFundValuesIncludingTax

  • CancelOrdersInClosedBaskets

  • ChildNeedsGuarantor

  • CookieConsent

  • CookieConsentedJS

  • DefaultAuthorityTab

  • DefaultPatronSearchMethod

  • EmailPatronWhenHoldIsPlaced

  • ForceLibrarySelection

  • ILLModuleDisclaimerByType

  • ILLPartnerCode

  • LoadCheckoutsTableDelay

  • OpacTrustedCheckout

  • PreservationModule

  • PreservationNotForLoanDefaultTrainIn

  • PreservationNotForLoanWaitingListIn

  • RedirectGuaranteeEmail

  • SCOLoadCheckoutsByDefault

  • SIP2AddOpacMessagesToScreenMessage

  • SerialsDefaultEMailAddress

  • SerialsDefaultReplyTo

  • SerialsSearchResultsLimit

  • TrackLastPatronActivityTriggers

  • UpdateItemLocationOnCheckout

  • showLastPatronCount

Deleted System Preferences

Deleted system preferences

  • AllowOfflineCirculation

  • OPACResultsSidebar

  • OpacMaintenanceNotice

  • OpacSuppressionMessage

  • PatronSelfRegistrationAdditionalInstructions

  • RecordedBooksClientSecret

  • RecordedBooksDomain

  • RecordedBooksLibraryID

  • SCOMainUserBlock

  • SelfCheckHelpMessage

  • SelfCheckInMainUserBlock

  • TrackLastPatronActivity

New Authorized Values







New Letter Codes





More Documentation for Koha 23.11

23.11 Koha Manual

23.11 Koha Community Release Notes