25 nov 2022
Koha is the first free and open source software library automation package (ILS). Development is sponsored by libraries of varying types and sizes, volunteers, and support companies from around the world. The website for the Koha project is:
Koha 22.11.00 can be downloaded from:
Installation instructions can be found at:
Koha 22.11.00 is a major release, that comes with many new features.
It includes 13 new features, 351 enhancements, 3 security fixes, 551 bugfixes.
The Koha Community would like to dedicate the release of Koha 22.11 to Rosalie Blake.
Rosalie was the Head Librarian at Horowhenua Library Trust when Koha was started and without her Koha would not exist. She was an inspiring leader and innovator and took the risk of her career entrusting Chris, Joanne, Rachel and Simon to deliver the original project that became the international sensation we all know and love.
She was also a practicing Justice of the Peace, a stalwart of the Levin Pottery Club and much loved mother of Simon and Jeremy, and grandmother of Ben, Toby, Anna, Charlotte and Billy.
You can learn about the system components (like OS and database) needed for running Koha here.
[30588] Add the option to require 2FA setup on first staff login
Sponsored by Rijksmuseum, Netherlands
This adds a third option 'enforce' to the TwoFactorAuthentication system preference. If chosen, staff will no longer be able to log into the staff client without setting up and using 2-factor authentication.
[31378] Add a generic OAuth2/OIDC client implementation
Sponsored by a ByWater Solutions partner
This feature introduces a way to integrate Koha with any OAuth2/OIDC identity provider.
It also prepares the ground for later adding more protocols and prioritizing authentication methods/identity providers.
[24606] Allow storing item values as a template for creating new items
This new feature allows librarians to create and share "item templates" where one or more item field values can be set for a template. Templates can be applied on a one by one basis, or set for the remainder of the logged in session. Each template may be optionally shared ( read only ) to other catalogers. Librarians with the manage_item_editor_templates permission may edit any template regardless of who created it.
[24857] Add ability to group items for records
This feature allows for libraries to group items within a record. A new system preference has been added for this feature, EnableItemGroups. This system preference, once enabled, will allow the library to group specific items on a record to each other. A library can name the group and add items from the same record to this group. From the record, a new tab will appear and display on that item if it is part of a group.
[24860] Add ability to place item group level holds
With this feature you can now place holds on groups of items. A group consists of multiple items of the same record, representing for example, all items of a specific volume. When a hold for an item group is placed, only items of the requested group will be able to fill the hold. The feature is enabled using the new EnableItemGroupHolds system preference. It also requires EnableItemGroups for managing item groups.
[28854] Add ability to create bundles of items for circulation
This new feature adds the ability to create item bundles for loans.
One can create a new collection level biblio record and add items to it as normal. Those items can then be converted to bundles by adding existing items to them using their barcodes. The items will be marked as 'not for loan' in their original parent records.
Bundle items follow normal circulation rules for checkout. Upon check-in a new verification step is added where by the librarian is expected to scan each constituent item to varify it's presence in the bundle. If an item is missing from the bundle it is marked as lost with a new lost - Missing from bundle value. If an item is found that is not expected to be in the bundle it it highlighted to the librarian after check-in so it can be placed to one side.
Sponsored by PTFS Europe
[30650] Add a curbside pickup module
Sponsored by Association KohaLa
With this module staff and patrons will be available to manage curbside pickups from the OPAC and staff interface. It adds a new configuration page to the administration module which allows each library in an installation to set their own rules and time slots for scheduling pickups. If a library chooses to activate curbside pickups, they will be able to manage all stages to the process from within Koha: scheduling a pickup time, preparing items for pickup and completing pickups. Patrons can indicate that they have arrived at the library for their pickup through the OPAC. Use the CurbsidePickup system preference to enable this module.
[32030] Electronic resource management (ERM)
Sponsored by BibLibre, ByWater Solutions and PTFS Europe
This new module adds a mechanism to track the selection, acquisition, licensing, access, maintenance, usage, evaluation, retention, and de-selection of a library’s electronic information resources. These resources include, but are not limited to, electronic journals, electronic books, streaming media, databases, datasets, CD-ROMs, and computer software.
[12446] Enable an adult to have a guarantor
Before only categories of a certain type can be guarantees for other patron categories of certain types (Adult to child, organisation to professional). With this new feature it's possible to define which patron categories can be guarantees independent of the category type. This enables relationships like adult to adult or organisation to adult.
[23681] Make patron restrictions user definable
Sponsored by Koha-Suomi Oy and Loughborough University
This adds a new configuration page for managing user defined and Koha internal patron restrictions to the administration module.
If the new system preference PatronRestrictionTypes is enabled, you will also be able to choose the restriction type when manually restricting a patron.
[17170] Add the ability to create 'saved searches' for use as filters when searching the catalog
Sponsored by Round Rock Public Library
This patchset adds a new feature, the ability to save searches on the staff client and display them in the results page alongside facets (staff client and/or OPAC) as a search filter that can be applied to search result set.
The feature is enabled/disabled by new system preference: SavedSearchFilters
New filters can be added from the results page after a search, and there is an admin page for updating deleting and renaming filters.
There is a new permission, manage_search_filters, to control management of these filters.
New filters can be added that are not displayed along with facets, this allows for building custom links using these filters to keep URLs shorter
[15326] Add CMS feature
Sponsored by Chartered Accountants Australia and New Zealand and Horowhenua Libraries Trust
This enhancement utilises the additional contents feature to add custom pages to the staff interface and the OPAC in the user's desired language.
[30952] New design for staff interface
This is the result of a wide scale review of the staff interface user experience.
A team of librarians, designers and developers has worked hard to refresh, modernize and increase consistency in the staff interface.
We hope you like the fresh new look and feel.
[10086] No way to go back to the basket on uncertain prices page
Sponsored by Catalyst
This updates the display of the uncertain prices page (Acquisitions > Uncertain prices):
- The basket name is now linked to the basket in the list of orders with uncertain prices, making it easier to quickly view the basket.
- The edit link is now formatted as a button and moved into a column (similar to other areas), instead of being a text link in the order column.
[15348] Change/Edit estimated delivery date per order line
Sponsored by Bibliotheksservice-Zentrum Baden-Württemberg (BSZ)
This enhancement allows you to specify an estimated delivery date per order line. The specified estimated delivery date is also considered (alongside the calculated estimated delivery date, if no date has been specified) when searching for late orders and exporting late orders. You can also edit the estimated delivery date from the late orders page.
[27817] Enhance display of title information throughout acquisitions
This adds remainder of title/subtitle, medium, part name, and part number to several pages in the acquisitions module.
[28269] Order search should be possible with ISSN too
This adds ISSN as a new search option to the acquisitions advanced search form. If SearchWithISSNVariations is enabled, you'll be able to search for the ISSN with and without the hyphen.
[29983] Display the return claims column in the circulation overdues page (overdue.tt)
This enhancement adds the "Return claims" column to the circulation overdues page, like it is on a patron's check out and details pages. Display or hide the column using the column settings options. It can also be configured using the table settings options in the administration area - it is hidden by default.
[31017] Add type field for vendors
This enhancement adds a new field to record the vendor type when creating or editing vendors. This field can be used as a free text field, or a drop-down menu if there are authorized values in the VENDOR_TYPE authorized value category.
[31115] Additional fields for invoices
Sponsored by The Research University in the Helmholtz Association (KIT)
This new feature adds the ability to define additional fields to store information about vendor invoices. There is a new 'Manage invoice fields' page in the acquisitions administration to configure the fields. Users can name additional fields, tie them to authorised values, and specify whether the fields can be searched in the acquisitions module. This also adds a new entry to the admin page for additional fields.
[31257] Add a new English 1 page layout to export a basket as PDF
Sponsored by Pymble Ladies' College
This patch adds a new English 1 page layout to be used when exporting a basket group as PDF. It can be selected as a new option from the OrderPdfFormat system preference.
[31333] Add the ability to limit purchase suggestions by patron category
Sponsored by Catalyst
Exclude patron categories from submitting OPAC purchase suggestions by selecting them in the new suggestionPatronCategoryExceptions system preference.
[31374] Add a non-public note column to the suggestions table
This enhancement adds a non-public notes field to the suggestions tables in the staff interface. It is displayed by default in the suggestion management tables, and is configurable using the table settings.
[27272] Move C4::Items::GetItemsInfo to Koha namespace
Another step on the old code refactoring. At this time, related to item information display.
There are several DB queries that get avoided with this change as well, leading to more performant processing of requests.
[30275] Checkout renewals should be stored in their own table
Sponsored by Loughborough University
This enhancement adds a renewals table to store details of a checkouts renewals.
[30420] Rename Koha::Patron->get_overdues with ->overdues
This enhancement makes the method naming more consistent.
[30901] Add template method to be able to look up renewal data in Koha slips and notices
This adds a way to print information about renewals to notices with Template Toolkit. This includes the numbers for used renewals, allowed renewals and remaining renewals and more. Documentation: https://wiki.koha-community.org/wiki/Notices_with_Template_Toolkit#Example:_CirculationRules.Renewals
[31001] "CGI::param called in list context" warning in basket.pl flooding error log
This fixes the cause of a warning message that appears in the system logs when emailing an order to a vendor (Acquisitions > [select a vendor] > [select a basket] > E-mal order). The warning message was "[WARN] CGI::param called in list context from /kohadevbox/koha/acqui/basket.pl line 175, this can lead to vulnerabilities. See the warning in "Fetching the value or values of a single named parameter" at /usr/share/perl5/CGI.pm line 414.".
[25936] Notify users if their password has changed
When the system preference NotifyPasswordChange is set to 'Notify' a notification will be sent to the user when their password is changed. The new notification uses the letter code PASSCHANGE.
Sponsored by PTFS Europe
[28787] Send a notice with the TOTP token
Sponsored by Rijksmuseum, Netherlands
Add the ability to send an email containing the token to the patron once it's authenticated
The new notice template is '2FA_OTP_TOKEN'.
[23063] Item table in cataloguing doesn't respect CurrencyFormat
This makes sure that the price and replacement price of an item is displayed according to the CurrencyFormat setting in the items table above the add/edit item form.
[27981] Add option to automatically set the 001 control number to the biblionumber
This patch adds a new system preference: autoControlNumber
The systempreference has two options, Control Number (001) is:
- generated as biblionumber: will set field 001 to the biblionumber when you create a new record or edit an existing record and clear the 001 field. If a value is present in 001 when saving the record it will be preserved.When duplicating a record the pre-existing 001 will be removed.
- not generated automatically: the 001 field will not be touched
[30504] Value builder for UNIMARC field 181
This enhancement for UNIMARC field 181 adds value builders for subfields $a, $b, $c, and $2. These are based on the official UNIMARC codes.
[30506] Value builder for UNIMARC field 182
This enhancement for UNIMARC field 182 adds value builders for subfields $a, $c, and $2. These are based on the official UNIMARC codes.
[30507] Value builder for UNIMARC field 183
This enhancement for UNIMARC field 183 adds value builders for subfields $a and $2. These are based on the official UNIMARC codes.
[30775] 952w should have datepicker plugin enabled for it by default
This enhancement adds the date picker to 952$w (price effective from).
This improves usability (952$d (date acquired) has the date picker enabled) and also adds date field validation (the date is added to the database as YYYY-MM-DD and when entered incorrectly it can lead to crashes in other areas).
[30871] Make it clear that 008 Type of Material is controlled by Leader 6th position in MARC21
This enhancement adds title elements or clarifies existing title elements to indicate how default values are chosen (for both the default and advanced editor).
[30941] Add value builders for UNIMARC 146 ($b, $c, $d, $e and $f)
This enhancement adds value builders for UNIMARC 146$b, $c, $d, $e, and $f.
[30997] "CGI::param called in list context" warning in detail.pl flooding error log
This fixes the cause of "CGI::param called in list context from" warning messages that appear in the log files when viewing record detail pages in the staff interface.
[31536] Add UNIMARC framework plugin to fetch PPN from sudoc.fr
This enhancement adds a UNIMARC plugin (unimarc_field_009_ppn.pl) that uses sudoc.fr web services (isbn2ppn, issn2ppn, ean2ppn) to search for the Sudoc record identifier (PPN) using the ISBN, ISSN, or EAN identifiers as the search criteria. The plugin expects the ISBN in 010$a, ISSN in 011$a, and EAN in 073$a.
[7021] Add patron category to the statistics table
Sponsored by Koha-Suomi Oy
[23012] Possibility to mark processing fee by default refund when item is found
Sponsored by Auckland University of Technology
This enhancement gives the ability to set a policy for the lost item processing fee that may get charged additional to the lost item replacement cost. The processing fee can be:
- refunded
- refunded if unpaid
- kept
[23838] Add ability to view item renew history
Sponsored by Loughborough University
This enhancement adds a modal to display checkout renewal history details where appropriate. This includes the circulation history and the items tab of the staff detail page.
[29129] The clear screen and print icons in circulation should be configuarable to print either ISSUESLIP or ISSUEQSLIP
This enhancement expands upon the 'DisplayClearScreenButton' allowing the choice of printing either the ISSUESLIP or the ISSUEQSLIP when using the printclearscreen icon.
[30407] Add ability to syspref UpdateNotForLoanStatusOnCheckin to show only the notforloan values description
Sponsored by Koha-Suomi Oy
[30905] Show waiting recalls in patron account on checkouts tab
Sponsored by Catalyst
This enhancement shows recalls ready for pick-up on the patron's account so they can't be missed.
[30964] Add information about overdues and restrictions on the curbside pickup list
Sponsored by Association KohaLa
[30965] Add patron autocomplete search to curbside pickups
Sponsored by Association KohaLa
[31157] overdue_notices.pl --frombranch option should be available as a system preference
This patch adds a new system preference "OverdueNoticeFrom" that overrides the --frombranch parameter of the overdue_notices.pl cronjob.
This allows systems librarians the option to pick which address to use for overdues notices.
The default value is "command-line option", meaning if there is a branch specified in the cronjob, the behavior will not change.
Sponsored by PTFS Europe
[31261] Curbside pickups - remove slots in the past
Sponsored by Association KohaLa
[31262] Curbside pickups - disable dates without slots
Sponsored by Association KohaLa
[21903] koha-dump be able to include koha-upload
Sponsored by Orex Digital
[26311] Add patron invalid age to search_for_data_inconsistencies.pl
This enhancement to the command line script used for searching for data inconsistencies (misc/maintenance/search_for_data_inconsistencies.pl) now lists patrons where their age doesn't match the criteria set for the patron category.
This includes where there is:
- a minimum age required
- an upper age limit
- a minimum age and an upper age limit
An example of the output:
Patrons with invalid age for category:
- Patron borrowernumber=49 has an invalid age of 10 for their category 'PT' (24 to unlimited)
- Patron borrowernumber=49 has an invalid age of 71 for their category 'PT' (0 to 50)
- Patron borrowernumber=44 has an invalid age of 70 for their category 'PT' (20 to 60)
Note: Where a patron's age can't be calculated (for example: a school or other organisation, or the date of birth is missing), then they are not included in the checks.
[30684] koha-* scripts --restart should start even when not running
Sponsored by Catalyst
This enhancement restarts services if they are not running when using the --restart option for koha-plack, koha-indexer, koha-sip, koha-worker, koha-z3950-responder, and koha-zebra .
An example of a message if plack is not running and the service is restarted: koha-plack --restart kohadev [warn] Plack not running for kohadev. ... (warning). [ ok ] Starting Plack daemon for kohadev:.
Previously if a service was not running an error message was generated (Error: {servicename} not running for ${instancename}") and a start command for the service was required.
[31155] Document --since option in help of borrowers-force-messaging-defaults.pl
This enhancement adds a brief explanation of the --since option for borrowers-force-messaging-defaults.pl.
[31342] process_message_queue can run over the top of itself causing double-up emails
Sponsored by ByWater Solutions
[24865] Customize the accountlines description
This patch adds a new notice/slip: OVERDUE_FINE_DESC
This can be used to customize the accountlines description for overdue fines that can access objects for the checkout, the item, and the borrower
[27802] Set focus for cursor on first input field when adding a cash register
Sponsored by Catalyst
[30619] Add the option to email receipts as an alternative to printing
Sponsored by Martin Renvoize
This enhancement adds an email receipt option to the Point of Sale module, along with a sample notice (RECEIPT). When completing a transaction, there is now an 'Email receipt' button next to 'Print receipt' button - the email address is entered in a pop-up window if the email receipt option is selected.
[31121] Format date range on top of cashup summary page
This fixes the formatting of dates on the cashup summary modal (it uses the existing $datetime JS include).
Sponsored by PTFS Europe
[31713] Allow easy printing of patron's fines
Adds the option to print an accounts summary from the print pull down in the patron's account in the staff interface. This uses the new notice ACCOUNTS_SUMMARY.
[14783] Allow patrons to change pickup location for non-waiting holds
Sponsored by Lund University Library, Sweden
This enhancement allows patrons to change the pickup location of non-waiting holds from the opac.
The new system preference "OPACAllowUserToChangeBranch" controls at what stages the pickup location can be changed (Pending, In-transit, Suspended).
[29057] Use font awesome icons on request.pl
This enhancement updates the arrows used on the holds page for a record to change the hold priority. Instead of using images for the arrows, Font Awesome icons are now used.
In addition, you can now override the icons using any Font Awesome icons in the IntranetUserCSS system preference. For an example, see https://gitlab.com/-/snippets/2319364
[30500] Add option to allow user to change the pickup location while a hold is in transit
Sponsored by Montgomery County Public Libraries
[31948] Add timestamp to tmp_holdsqueue
This adds a timestamp column to the tmp_holdsqueue table that the holds queue in circulation is built from. With RealTimeHoldsQueue this will enable reporting on the date and time an entry was added to the holds queue.
[30028] Patron message delete confirmation untranslatable
This fixes the patron delete messages dialogue box to make the message shown translatable.
[30733] Simplify translatable strings
Cleanup of translatable text done by guiding the string extractor to make it do simpler strings for translators instead of large concatenation of long strings in the code with a lot of unnecessary %s placeholders.
[31068] Context for translation: Print (verb) vs. Print (noun)
This enhancement adds context for translation purposes to the term 'Print' for notices and slips message transport types (email, print, SMS). (In English, the word "print" is the same whether it is a verb (to print something) or a noun (a print of something), however, for other languages different words may be used. When the word is in a sentence, it's not too difficult to translate, but in cases where the string to translate is simply "Print", it is often used in different cases (noun or verb). For example: in French there are two different spellings, "Imprimer" or "Imprimé".)
[31715] Add missing German translations for language descriptions
This adds the missing German translations for languages, as seen in the language list on the advanced search in staff interface and OPAC.
[31807] Context for translation: Filter (verb) vs. Filter (noun)
This enhancement adds some context for translators for the term "Filter" when used as a noun as opposed to a verb.
[30484] Interlibrary loans should have the ability to send notices based on request supplier updates
This interlibrary loans module enhancement allows backend developers to trigger notices to patrons upon certain backend actions.
Sponsored by PTFS Europe
[11889] Option to keep public or shared lists when deleting patron
Sponsored by Catalyst
This report adds the preference ListOwnershipUponPatronDeletion.
It allows you to choose between the existing behavior of just deleting all lists when deleting a patron, or transfer ownership of public and shared lists to the staff member that deleted the patron.
Follow-up reports will allow for even more flexibility.
[25498] Allow to change owner of public or shared list
This enhancement allows staff members with sufficient permissions to change the owner of a public list.
It also add the possibility for the owner of a shared list to transfer ownership to one of the other users of the list via the opac shelves form. Implicitly, we hereby add the option of showing which users are currently sharing the list to the owner.
[29114] Can not add barcodes with whitespaces at the beginning to the list
This fixes an issue where barcodes with white spaces at the beginning could not be added to a list.
[30933] Add a designated owner for shared and public lists at patron deletion
This enhancement enables the transfer of public list ownership when a patron is deleted (from the staff interface, and scripts or cron jobs such as misc/cronjobs/delete_patrons.pl). A new system preference ListOwnershipUponPatronDeletion sets the action to take when a patron with public lists is deleted (options: delete the lists or change owner of these lists). If set to change the owner, the lists are transferred to the borrower number set in the new ListOwnerDesignated system preference.
[30218] Add subfield g to 150 heading_fields
Sponsored by Steiermärkische Landesbibliothek
[30280] Support authority records with common subject headings from different thesaurus
Sponsored by Lund University Library, Sweden
This enhancement adds support for displaying and linking to subject headings from different thesaurus when using Elasticsearch. The thesaurus used for the term is added to the authority record using 040$f. For the bibliographic record, set the second indicator to 7 for 650 and add the source to 650$2. For local terms, use 4 (Source not specified) as the indicator.
Example for a bibliographic record:
650 _ 0 $a Feminism 650 _ 7 $a Feminism $2 sao 650 _ 7 $a Feminism $2 barn
The first example above is the LCSH term. The other two terms are from sao (controlled Swedish subject heading system) and barn (Swedish children subject heading system). These three are using the same TOPIC_TERM Feminism, but they belong to different thesaurus.
[21705] Map copyrightdate to both 260/264c by default for new MARC21 installations
This enhancement adds a default mapping from 264c to biblio.copyrightdate for MARC21. Previously, it was only mapped to 260c. Now it is mapped to both. **This only affects new installations. For current installations, you need to add it manually through Administration > Koha to MARC mapping.
[26689] Monetary accounts notices should be definable at the credit_type/debit_type level
Sponsored by PTFS Europe
This enhancement allows end users to define their account notices (print receipt and print invoice for example) at the debit type and credit type level.
Simply add a new notice with code 'DEBIT_your_debit_type_code' or 'CREDIT_your_credit_type_code' to the notices and we will pick that over the existing default 'ACCOUNT_DEBIT' and 'ACCOUNT_CREDIT' notices.
[27265] process_message_queue.pl cron should be able to take multiple types as a parameter
This patch adds the ability to specify several types or letter codes when running the process_message_queue script. This allows libraries to consolidate calls when some message types or letter codes are scheduled differently than others
[31714] Add a more generic way to print patron slips
This is a first step towards drying out our slip printing code. We add a new, modern, controller script that accepts any notice template to be passed to it for printing.
Next steps would be to start migrating some of the old slips to use this controller and drop their respective controller scripts.
[7960] Choice to not show the text labels for item types
Sponsored by Catalyst
This enhancement adds the class "itypetext" around item type descriptions so they can be hidden with CSS. To hide the descriptions, add .itypetext { display:none; } to the OPACUserCSS (for the OPAC) or IntranetUserCSS (for the staff interface) system preferences.
[22456] Allow patrons to cancel their waiting holds
Sponsored by Montgomery County Public Libraries
This enhancement allows patrons to cancel holds waiting for pickup from their account (summary > holds > request cancellation button), instead of having to contact the library (for example, by email, phone, or in person).
This is enabled by setting rules by library, patron type, and item type. The rules are set from a new "Default waiting hold cancellation policy" section under Administration > Patrons and circulation > Circulation and fines rules.
Cancellation requests are listed in a new tab "Holds with cancellation requests" under Circulation > Holds > Holds awaiting pickup.
[23538] Email library when new patrons self register
Sponsored by Catalyst
This enhancement allows libraries to receive notifications when patrons self-register.
This is enabled using the new system preference EmailPatronRegistrations (options are: none, email address of library, EmailAddressForPatronRegistrations, and KohaAdminEmailAddress) and a new notice (OPAC_REG).
To use a specific email address for notifications, use the new system preference EmailAddressForPatronRegistrations.
If verification is required for self-registrations (when PatronSelfRegistrationVerifyByEmail is enabled), then notifications are only sent to the library once the registration is confirmed.
[29144] Move branches.opac_info to AdditionalContents allowing multi language
This reports moves the contents of column branches.opac_info to a HTML block under Additional contents, identified by the new location OpacLibraryInfo. This allows translation of this block too.
[29897] Display author identifiers for researchers
Sponsored by Orex Digital
This new enhancement adds the capability to list the different identifiers of authors. It is helpful for research publications for instance. It will add a new "Author identifiers" tab on the detail page (OPAC) of a bibliographic record, with the list of the authors and their identifiers. On the detail page of the authority record, the same identifier list will be displayed. The authority must have a 024$a (identifier) and 024$2 (source).
[29922] Group of libraries are now displayed in alphabetical order
This fixes the display of library groups in the advanced search (Groups of libraries) for the OPAC and staff interface so that they correctly sort in alphabetical order. Before this:
- OPAC: were sorted in the order library groups were added, group names with diacritics and umlauts (such as Ä or À) came last (after something starting with Z)
- Staff interface: were sorted correctly, but had the same issue as the OPAC for group names with diacritics and umlauts
[30036] Add XSLT for authority results view in OPAC
This enhancement enables the use of custom XSLT stylesheets for displaying OPAC authority search results.
[30195] Suggestion form in OPAC should use ISBN to FindDuplicate
Sponsored by Steiermärkische Landesbibliothek
[30566] Incorporate link handling in OPAC's biblio-title include
Output of titles in the OPAC was centralized into an include file (biblio-title), but unlike the staff interface this didn't include the option of adding a link to the default bibliographic view. This enhancement provides that option. It also updates OPAC pages where the biblio-title include was previously wrapped in an anchor tag, to add a link parameter: [% INCLUDE 'biblio-title.inc' link=> 1 %]
[30678] Add OCLC_NO as option to OPACSearchForTitleIn
This enhancement to the OPAC detail page allows you to search WorldCat using the OCLC number. (Example: add an entry to 035$a (such as (OCoLC)62385712) and use {OCLC_NO} in the OPACSearchForTitleIn system preference.)
[30880] Expand OPACResultsUnavailableGroupingBy to have a 'branch only' option
Sponsored by Chartered Accountants Australia and New Zealand
[31217] Fix Coce JavaScript to hide single-pixel cover images in the OPAC lightbox gallery
Sponsored by Toi Ohomai Institute of Technology, New Zealand
[31634] Add part_number and part_name in OPAC result browser
This enhancement adds the title's part number and part name in the OPAC result browser.
[10950] Add preferred pronoun field to patron record
This adds a new free text field 'pronouns' to the patron record. The pronouns also display prominently in the brief patron information section on the left side of the patron account pages.
[21978] Add middle name field
Sponsored by Cheshire Libraries
This adds a new free text field 'Middle name' to the patron record.
[29971] Remember selections across patron search pages
This enhancement to patron search remembers selections across multiple pages of search results and multiple different searches. The selected patrons can be added to a patron list or submitted for merging. Selections can be cleared manually and are automatically removed upon logout. Previously, selections were only remembered for the current page of search results.
[30646] Add option to send WELCOME notice for new patrons added at first login via LDAP/SAML
When LDAP or Shibboleth are used to create user accounts on first login, the WELCOME notice can be send automatically to the new users. This requires adding the new configuration option
1 to the respective configuration files.
[31894] Extend hold hooks with more actions
This patch adds three more hooks to the existing "after_hold_action", extending it to handle the different found values.
- "transfer" when a hold calls "set_transfer()" (found=T)
- "waiting" when a hold calls "set_waiting()" (found=W)
- "processing" when a hold calls "set_processing()" (found=P)
[31895] New account hook when adding credit
This patch adds a new hook "after_account_action" with the action "add_credit". This is triggered when a credit is added via for example PAYMENT or WRITEOFF.
[31896] New recall hook when adding recall
This adds a new hook "after_recall_action" with the action "add".
[26635] Expand coded values in REST API call
Sponsored by Virginia Polytechnic Institute and State University
[30923] OAuth2 implementation is not experimental
This enhancement removes the [EXPERIMENTAL] text from the RESTOAuth2ClientCredentials system preference description. OAuth2 has been in use by third parties to securely interact with Koha since its introduction in 2018.
[31555] Getting holds via REST API needs edit_borrowers permission
Sponsored by Koha-Suomi Oy
[29579] Show saved SQL report ID in database query
This enhancement shows a saved SQL report's ID in the database process list (from example, "/* saved_sql.id: 123 */). This can help when troubleshooting reports that are causing issues, such as taking too long to run or taking up too many system resources.
[23919] Make ISSN searchable with and without hyphen
This enhancement enables searching by ISSN without using hyphens and using a space instead of the hyphen. This works in the advanced search (staff interface and OPAC) and item search (staff interface).
It is enabled using a new system preference, SearchWithISSNVariations, with two options - "don't search" (the default), and "search".
[27136] Add additional languages
Adds Cree, Afrikaans and Multiple languages, Undetermined and No linguistic content to our language definitions.
[27546] Add option to search within results on the staff interface
This enhancement adds a new input above the search results allowing one to search within the results. The search box will take a query and add it as a limit to the previous search.
[30858] Add serial enumeration/chronology to itemsearch.pl
This enhancement to the item search in the staff interface adds a serial enumeration/chronology (952$h) column to the search results and export.
[31213] When performing a basic search with no results, repeat the search with term quoted
This enhancement adds a second, automatic, search with the search terms between quotation marks when a search returns no results.
For example, searches with special characters don't work with Elasticsearch. A search for Ivy + Bean will return no results. But a search for "Ivy + Bean" will return results.
With this enhancement, if a user searches for Ivy + Bean without quotation marks and gets no results, Koha will automatically search for "Ivy + Bean" and return those results.
This targets both Zebra and Elasticsearch, but is more relevant for Elasticsearch.
[27667] Display the number of non-indexed records
This enhancement adds information about non-indexed records when using the Elasticsearch search engine on the About Koha > System information page.
For example:
Records are not indexed in Elasticsearch
- Warning 1 record(s) missing on a total of 435 in index koha_kohadev_biblios.record(s).
- Warning 1 record(s) missing on a total of 1705 in index koha_kohadev_authorities.
[31687] Add see from and see also from tracings in Match index (Elasticsearch, MARC21)
This enhancement adds see from and see also from terms for uniform title, chronological term, topical term, geographic name, and genre/form term to the Match index in Elasticsearch for MARC21. These will now be searchable in the Authorities module, by selecting the 'Search all headings' tab.
Previously, only see from/see also from for personal names, corporate names, and meeting names were indexed and searchable this way.
[31689] Add see from tracings in Match-heading-see-from index (Elasticsearch, MARC21)
This enhancement adds fields 430, 448, 450, 451, and 455 to the Match-heading-see-from.
Previously, only 400, 410, and 411 were indexed.
[31690] Add see from tracings in See-from index (Elasticsearch, MARC21)
This enhancement adds fields 450, 451, and 455 to the See-from index for MARC21.
Previously, only 400, 410, 411, 430, 447, 448, and 462 were indexed.
[31691] Remove non-existent fields from the See-from index (Elasticsearch, MARC21)
This enhancement removes fields from the See-from index that don't exist in MARC21.
The existing fields can be found here: https://www.loc.gov/marc/authority/ad4xx.html
[31693] Remove non-existent fields from the See-also-from index (Elasticsearch, MARC21)
This enhancement removes fields from the See-from index that don't exist in MARC21.
The existing fields can be found here: https://www.loc.gov/marc/authority/ad5xx.html
[30077] Add option for library dropdown in search function for staff interface
With the new system preference IntranetCatalogSearchPulldown enabled, you will be able to limit your simple searches in the staff interface by library.
[31162] Add a clear cataloguing module home page
This enhancement brings more order to the cataloguing features. We create a new 'Cataloguing' module home page and collect the cataloguing tools into it.
[27519] Normalize Show/Don't show vs Display/Don't display in system preferences
This enhancement replaces "Display/Don't display" with "Show/Don't show" for several system preferences to improve terminology consistency and make translation easier. A few preferences were also updated where "Yes/No" and "Show/Hide" were used.
[30850] Add default mapping for biblio.author to 110$a (MARC21)
This enhancement maps 110$a (corporate author in MARC21) to biblio.author in the default framework. Having the corporate author in biblio.author ensures it will appear wherever the author usually appears in the staff interface.
[31191] Specify FacetLabelTruncationLength is only for Zebra
This enhancement adds a note to the FacetLabelTruncationLength system preference description that it only works with Zebra. When using ElasticSearch, facets are displayed in full.
[31264] CalendarFirstDayOfWeek not taken into account when configuring curbside pickups
Sponsored by Association KohaLa
[31923] 'Ignore' tab description is misleading
This enhancement modifies the description of the 'Ignore' tab in MARC bibliographic and authority framework administration to add that not only does the 'ignored' subfield not appear in the editor, but the subfield will also be deleted from the record. This is the normal behavior of the 'Ignore' tab, it has not changed. Only the description was updated to reflect it's actual behavior.
[22276] Add client storage of user-selected DataTables configuration
This allows Koha to remember the changes a user has made to the columns settings on a page so they are kept when reloading the page.
[27191] Set focus for cursor to category code input box when creating new patron categories
This updates the new patron category input form so that the cursor focus is on the category code input field.
[30609] Reindent serial claims template
This enhancement updates the serial claims template in the staff interface (claims.tt) so that the indentation is consistent and replaces tabs with spaces. It also adds comments to highlight the markup structure.
[30786] Capitalization in (Opac)AdvancedSearchTypes
This fixes the descriptions for the AdvancedSearchTypes and OpacAdvancedSearchTypes system preferences - sentence case is now used for "..Shelving location..".
[30806] Use patron-title.inc in member-flags template
This enhancement updates the template for the patron set permissions page (members/member-flags.pl) to use the patron-title.inc include wherever patron names are referenced. This is used to format patron name names consistently, rather than a custom format each time the patron name is referenced. The patron name is now displayed as "Set permissions for firstname lastname (patron card number), instead of "Set permissions for lastname, firstname".
[30807] Use patron-title.inc in patron payments pages
This enhancement updates the templates for patron accounting - make a payment tab and payment pages (pay and write off options) to use the patron-title.inc include wherever patron names are referenced. This is used to format patron name names consistently, rather than a custom format each time the patron name is referenced. The patron name is now displayed as "Make a payment for firstname lastname (patron card number)" and "Pay charges for firstname lastname (patron card number)".
[31228] Fix Coce JavaScript to hide single-pixel cover images in both the staff client detail and results pages
Sponsored by Catalyst
[31397] Set focus for cursor to framework code field when creating a new bibliographic framework
This enhancement sets the cursor focus on the first input field (Framework code) for the new bibliographic framework form.
[31398] Set focus for cursor to framework code field when creating a new authority type
This enhancement sets the focus on the first input field for the new authority type form.
[31399] Set focus for cursor to first input field when adding new classification source, filing rule, or splitting rule
This enhancement sets the cursor/focus on the first form field when adding an entry on the classification configuration page (includes input forms for new classification source, filing rule, and splitting rule).
[31718] Change the IF ELSE values in MARC subfields structure breadcrumbs to facilitate translation
This enhancement changes the strings in the IF ELSE for the framework name in the breadcrumbs on the marc_subfields_structure.pl page. There is no change to the page in English. However, it will facilitate the translation by having complete strings.
[31676] Make db_dependent/Circulation.t tests more robust
Sponsored by Gothenburg University Library
[6936] Allow to limit on multiple itemtypes when exporting bibliographic records
This allows multiple item types to be chosen when exporting bibliographic records from the export catalog tool.
[22659] Add 'save and continue' functionality to news and HTML customizations
Adds the ability to save & continue when working with either News or HTML customization editors.
[27920] Add ability to update patron expiration dates when importing patrons
This adds a new option to the patron import from that allows to use the expiration date from the import file or recalculate the patron's expiration date using today's date or the original expiration date as base.
[31000] Use of uninitialized value $record_type in string eq
This fixes the cause of an error message that appears in the system logs every time that Tools > Catalog > Export data (/cgi-bin/koha/tools/export.pl) is accessed. The error message was "AH01215: Use of uninitialized value $record_type in string eq at /kohadevbox/koha/tools/export.pl line 43.: /kohadevbox/koha/tools/export.pl,...".
[31062] Change description of QOTD tool in tools-home
This enhancement changes the name and description of the QOTD tool in order to make them more consistent with the other tool names and descriptions.
[31553] News item contents field does not always expand when you click on a non-default language
Sponsored by Toi Ohomai Institute of Technology, New Zealand
(This list includes all bugfixes since the previous major version. Most of them have already been fixed in maintainance releases)
[30939] remove_unused_authorities.pl is broken
This fixes the ./misc/migration_tools/remove_unused_authorities.pl script so that it now works and deletes unused authority records. Before this, it generated an error message at the first unused authority record and stopped (without deleting any unused authority records).
[29958] Missing dateaccessioned is set to today when storing an item
This fixes editing items without an accession date - the accessioned date will remain empty, instead of being updated to today's date.
[30234] Serial local covers don't appear in the staff interface for other libraries with SeparateHoldings
This fixes the display of item-specific local cover images in the staff interface. Before this, item images were not shown for holdings on the record's details view page.
[30885] Recall - detail page explosion
Sponsored by Catalyst
[30886] Recall status cannot be correct on OPAC detail page
Sponsored by Catalyst
[30944] Fix single cancel recall button in recalls tab in staff interface and correctly handle cancellations with branch transfers
Sponsored by Catalyst
This fixes the 'cancel' recall button in several places so that it now works as expected (including the recalls tab in a patron's details section, the recalls section for a record, and the circulation recalls queue and recalls to pull pages). It also ensures a correct cancellation reason is logged when cancelling a recall in transit.
[30971] Recalls - log viewer error
This fixes an error that occurred when viewing recalls log entries. The error was caused by the renaming of itemnumber, biblionumber, and branchcode attributes.
[29325] commit_file.pl error 'Already in a transaction'
This fixes the command line script misc/commit_file.pl and manage staged MARC records tool in the staff interface so that imported records are processed.
The error message from The command line script was failing with this error message "DBIx::Class::Storage::DBI::exectxn_begin(): DBI Exception: DBD::mysql::db begin_work failed: Already in a transaction at /kohadevbox/koha/C4/Biblio.pm line 303". In the staff interface, the processing of staged records would fail without any error messages.
[30899] Upgrade sometimes fails at "Upgrade to 21.11.05.004"
This database revision fixes the one from bug 30449 for table borrower_attribute_types.
[30539] Koha upgrade error "Column 'claimed_on' cannot be null"
This fixes an upgrade error that could result in data loss when upgrading from earlier releases to 20.05 (and later releases). It results in the claim_dates for orders being replaced with the date the upgrade was run. (This was caused by an error in the database update for bug 24161 - Add ability to track the claim dates of later orders.)
[31238] Unable to save authorised value to frameworks subfields
Sponsored by Koha-Suomi Oy
[30868] Modifying a patron - page not found error after fixing validation errors where the message is displayed at the top of the page
This fixes a page not found error message generated after fixing validation errors when editing a patron (where the validation/error message is shown at the top of the page - below the patron name, but before the Save and Cancel buttons). (This was introduced by bug 29684: Fix warn about js/locale_data.js in 22.05.)
[31005] Cannot edit patrons in other categories if an extended attribute is mandatory and limited to a category
This fixes an error when a mandatory patron attribute limited to a specific patron category was causing a '500 error' when editing a patron not in that category.
[26247] Search terms retained in header search creates UX inconsistency
This fixes usability and consistency issues with the staff interface search header. Retaining or clearing search terms between searches is now configurable using two new system preferences - RetainCatalogSearchTerms (for searching the catalog) and RetainPatronsSearchTerms (for check out and searching patrons). Previously, search terms were retained when 1) searching the catalog and then switching to check out, check in, or renew 2) searching from the check out or search patrons and then switching to check in, renew and search catalog. This then required manually clearing the input field.
[30883] Authorities merge is limited to 100 biblio with Elasticsearch
This fixes the hard-coded limit of 100 when merging authorities (when Elasticsearch is the search engine). When merging authorities where the term is used over 100 times, only the first 100 authorities would be merged and the old term deleted, irrespective of the value set in the AuthorityMergeLimit system preference.
[31076] Bug 22605 breaks date of publication range search
This fixes the date of publication range searching in the staff interface when using Elasticsearch. It was working in the OPAC, but not the staff interface - caused by a regression from Bug 22605 introduced in Koha 22.05. For example: a search for 2005-2010 in the staff interface advanced search will now display the same results as the OPAC.
[31106] Error searching for analytics in detail view
Sponsored by Theke Solutions
This fixes two issues that affect searching and links for analytics on the detail view pages for records in the staff interface and OPAC:
Several characters will break Zebra search engine queries, so search terms need to be quoted by the query builder for things to work. Double quotes in titles and used in search terms were not escaped, cuasing issues with results.
This caused links to and from host records using 773$t and 773$a to fail (not find or display the expected results).
Example: Before this was fixed, for a host record with the title 'Uncond"itional?¿' and child records linked using 773$t and 773$a:
- the 'Show analytics' link was not displayed in the staff interface and OPAC for the host record
- the link from the child record back to the host record ('In' Title of host record (linked)) didn't work.
[32035] "Koha" less prominent in new staff interface
This adds "Koha" in front of the version number on the staff interface home page and links it to Koha Community website.
[29951] Cannot add splitting rule to classification sources
This fixes an error* that was displayed when adding a splitting rule to classifications sources (Administration > Catalog > Classification configuration).
- Clicking 'Add a splitting rule' generates an error page starting "Can't locate object method "subclasses" via package "C4::ClassSplitRoutine" at /kohadevbox/koha/C4/ClassSplitRoutine.pm line 53".
[31154] Batch item modification fails when "Use default values" is checked
Sponsored by Koha-Suomi Oy
(This list includes all bugfixes since the previous major version. Most of them have already been fixed in maintainance releases)
[13614] Replace usage of YUI on basket groups page
This enhancement:
- Updates the basket groups interface so that it doesn't rely on YUI to move baskets in and out of groups.
- Removes all YUI assets and many long-obsolete references to YUI-related classes and IDs.
For basket groups, you no longer need to drag and drop baskets between columns (which could be a bit fiddly).
The basket group form is now in one column and ungrouped baskets in another. Baskets are listed in sortable tables, and using 'Add to group' and 'Remove' buttons lets you add and remove baskets from the group.
[27550] "Duplicate budget" does not keep users associated with the funds
Users linked to funds in acquisitions will now be kept when a budget and fund structure is duplicated.
[29607] addorderiso2709: The stored discount when importing an order from a file is invalid
This fixes how the discount amount for an order is stored and shown when an order is added to a basket using "From staged MARC records". The discount amount was incorrectly stored in the database and shown incorrectly when modifying the order (for example, a 25% discount shown as 0.2500 in the database and .25% on the form). This would result in the order amount changing when modifying an order.
[30359] GetBudgetHierarchy is slow on order receive page
Sponsored by Koha-Suomi Oy
[30938] Fix column configuration to the acquisitions home page
This fixes the acquisitions home page to show the column configuration button.
[31587] Basket not accessible from ACQORDER notice
This makes sure that the basket object is passed to the ACQORDER notice in order to allow adding information about the basket and the order lines within it.
[31840] Incorrect warning that order total amount exceeds allowed budget when editing existing order
Sponsored by Waikato Institute of Technology
This patch deducts the current cost of an order if modifying it, so that the current cost isn't counted when checking whether the updated cost will take the order total amount above the allowed budget.
[30823] Recalls should use 'FILL' in action logs
Sponsored by Catalyst
This enhancement changes recall fulfillment actions to log with the FILL action, same as holds. It will also update existing recalls FULFILL actions in the database to use the FILL action.
[30842] Two-factor authentication code should be valid longer
This extends the time a two-factor authentication code is valid for, in case it is not entered quickly enough. (Example: wait for the code to change, then enter the previous code - this should still work, but will not work when the code changes again.)
[30250] Configure when to apply framework defaults when cataloguing
Sponsored by Catalyst and Education Services Australia SCIS
This patch adds a system preference ApplyFrameworkDefaults to configure when to apply framework defaults - when cataloguing a new record, when editing a record as new (duplicating), or when changing the framework while editing an existing record, or when importing a record. This applies to both bibliographic records and authority records.
[31682] Silence warn when using automatic linker in biblio editor
Sponsored by Catalyst
[31724] MARC framework subfield deletion - 'i' added to end of the breadcrumb on confirm deletion page
This fixes the breadcrumb when deleting a subfield for a framework. An 'i' was incorrectly added to the end of the breadcrumb on the deletion confirmation page, for example: ... > Confirm deletion of subfield bi
[25426] Allow return policy to be selected via syspref and not just home library
This enhancement adds a new system preference, CircControlReturnsBranch. Previously circulation rules for return policies always used the item's home library. This new preference allows choosing between the item's home library, the item's holding library, and the logged in library when selecting the return policy from the circulation rules.
[29050] Add punctuation in Unseen Renewals message
Sponsored by Catalyst
[30755] auto_too_soon should not be counted as an error in autorenewals
This patch alters the way errors/successes are counted in auto renewals. Prior to this patch, using [% error %] in a template would provide a count of all items not renewed, even if 'too_soon'
After this patch [% error + results.auto_too_soon %] will provide the same count, or you can get a count of each error in the results variable
e.g. Some items were not renewed: [% FOREACH key in results.keys %] [% results.$key %] item(s) were not renewed for reason [% key %] [% END %]
[31447] "Please confirm checkout" message uses patron's home library not holds pick up library
Sponsored by Koha-Suomi Oy
[30893] Typo: update_patrons_category.pl fine(s)
This updates the help text for the update patrons category cronjob script (misc/cronjobs/update_patrons_category.pl). It changes the full option names and associated information for -fo (--fineover to --finesover) and -fu (--fineunder to --finesunder), as well as some minor formatting and text tidy ups.
[31282] Broken characters in patron_emailer.pl verbose mode
This fixes the patron_emailer.pl script (misc/cronjobs/patron_emailer.pl) so that non-ASCII characters in notices display correctly.
[29987] Manual credits are not recorded for a register
This fixes the recording of manual credits for patrons so that these transactions are now included in the cash summary report for a library. When adding a manual credit, there are now fields for choosing the transaction type and cash register.
[30567] Create manual invoice with FR currency format show the incorrect format
This fixes the price formatting when CurrencyFormat = FR. When adding a manual invoice, the amount input field was shown with a comma for debit types with default amounts, but it should be a decimal point. (For input fields we always use the decimal point and the display format uses the decimal separator defined by CurrencyFormat.)
[31036] Cash management doesn't take SIP00 (Cash via SIP2) transactions into account
This fix adds the last missing piece for cash management when involving transactions via a SIP client.
We now understand that a SIP00 coded transaction is equal to 'CASH' in other register environments. This means we treat it as such in the cashup system and also that we now require a register for cash transactions.
WARNING: This makes register a required configuration field for SIP devices when cash registers are enabled on the system.
[23659] Allow hold pickup location to default to item home branch for item-level holds
This patch adds a new system preference 'DefaultHoldPickupLocation'
This preference will allow the library to determine which library is the default for pickup location dropdowns while placing holds in the staff client. The options are logged in library, homebranch, or holdingbranch
Previously the behavior was inconsistent, and varied between versions. Libraries may need to adjust this preference after upgrade to mirror their expected workflow
[31112] Able to renew checkout when the number of holds exceeds available number of items
When AllowRenewalIfOtherItemsAvailable is set to Allow it now correctly takes into account all the holds instead of just one per patron.
[31963] Only show hold fee message on OPAC and charge hold fee if HoldFeeMode conditions are true as described in the system preference
Sponsored by Horowhenua Libraries Trust
When HoldFeeMode is set to not_always or "only if all items are checked out and the record has at least one hold already", Koha will unexpectedly show a hold fee message and charge a hold fee if at least one of those conditions are met.
This patch fixes the behaviour so that a hold fee message is only shown, and hold fee only charged, if all items on the record are checked out, AND the record has at least one hold already - both of these conditions must be met, as the system preference implies.
[30958] OPAC Overdrive search result page broken for translations
Sponsored by Melbourne Athenaeum Library, Australia
[30991] [% ELSE %]0[% END %] will break translations if used for assigning variables
Sponsored by Catalyst
[30837] Fix table width on 'Print summary'
This fixes the width of the table for the print summary so that it fits the width of the page.
[31352] Terminology: Borrower name
Sponsored by Catalyst
This updates the table heading name from "Borrower name" to "Patron name" when adding a new batch in the patron card creator.
[29260] UNIMARC 210a is reported to Author (meeting/conference) when upgrading an authority through Z3950
This fixes UNIMARC authority editing when using 'Replace record via Z3950/SRU search'. When pre-populating the search form the value of 210$a (Authorized Access Point - Corporate Body Name) now goes into the Author (corporate) search form field instead of Author (meeting / conference).
[29434] In UNIMARC instances, the authority finder uses MARC21 relationship codes
This fixes the values displayed for the relationship codes in the authority finder 'Special relationships' drop down list in UNIMARC catalogs - UNIMARC values are now displayed, instead of MARC21 values.
[30025] Split BiblioAddsAuthorities into 2 preferences
This patch splits the system preference BiblioAddsAuthorities into two new system preferences that more clearly define what the settings do: 1- RequireChoosingExistingAuthority: this preference indicates whether a cataloger must choose from existing authorities, or if they can enter free text into controlled fields 2- AutoLinkBiblios: this preference determines whether Koha will attempt to link a new record to existing authorities upon saving. In conjunction with the existing preference, AutoCreateAuthorities, unmatched headings will either be linked to a new authority, or remain uncontrolled
[28355] Add warning note about Email SMS driver option for SMSSendDriver
This updates the text for the SMSSendDriver system preference. The Email SMS driver option is no longer recommended unless you use a dedicated SMS to Email gateway. Many mobile providers offer inconsistent support for the email to SMS gateway (sometimes it works, and sometimes it doesn't), which can cause frustration for patrons.
[31122] Terminology: Replace & with and for Notices & slips
This updates occurrences of 'Notices & slips' with 'Notices and slips', as per the terminology guidelines.
[20207] Anonymous suggestions show in OPAC even when OPACViewOthersSuggestions is set to 'Don't show'
Sponsored by Library of the Natural History Museum Vienna
[30844] The OPAC detail page's browser is limited to the current page of results when using Elasticsearch
Sponsored by Lund University Library, Sweden
[30918] Non-public note is visible in OPAC in Title Notes tab
This fixes the display of nonpublic notes (583$x) in the OPAC. Before this, if the OPAC visibility setting in the framework for 583$x was set not to show, it was still showing.
[30989] Tags with some special characters are not encoded right
This fixes tags with special characters (such as +) so that the searching returns results when the tag is selected (from the record detail view in the OPAC and staff interface, and from the search results, tag cloud, and list pages in the OPAC).
[31069] Did you mean? in the OPAC - links have tags
This removes tags incorrectly displayed around the links for options available when 'Did you mean?' is enabled (for example, 'Search also for related subjects').
[31387] Marking othernames as required via PatronSelfRegistrationBorrowerMandatoryField does not display required label
This fixes the patron self-registration form so that the 'Other names' (othernames) field correctly displays the text 'Required' when this is set as required (using the PatronSelfRegistrationBorrowerMandatoryField system preference). Currently, this text is not displayed (however, an error message is displayed when submitting the form).
[31654] Hide non-public libraries from MastheadLibraryPulldown
Sponsored by Steiermärkische Landesbibliothek
[30713] Patron entry should limit date of birth selection to dates in the past
This fixes the date of birth field for the patron entry form so that the calendar widget does not let you select a date in the future.
[31486] Deleting a message from checkouts tab redirects to detail tab in patron account
This patch corrects a problem where message deletion was improperly redirecting to the patron delete page when a message is deleted on the circulation page.
[31516] Missing error handling for accessing deleted/non-existent club enrollment
This adds an error message when viewing enrollments for a non-existent club. Previously, a page with an empty title and table were displayed.
[31525] Street number not being accessed correctly on patron search results page
Sponsored by Catalyst
[31597] Missing semicolon after try-catch in restrictions.pl
Sponsored by Koha-Suomi Oy
[31739] Password reset from staff fails if previous expired reset-entry exists
Sponsored by Lund University Library, Sweden
[30780] Librarians with only "place_holds" permissions can not update holds data via REST API
Sponsored by Koha-Suomi Oy
This enhancement enables librarians with only "place_holds" permissions to cancel, suspend and resume holds using the REST API.
[21982] Circulation statistics wizard does not count deleted items
This patch corrects a bug in the Circulation statistics wizard. Previously, the wizard only looked at existing items to calculate statistics. It now includes transactions made on items that are now deleted.
[29094] Placing holds via SIP2 does not check if a patron can hold the given item
This fixes holds placed using SIP2 to check that the patron can actually place a hold for the item.
[11158] Authorities 'starts with' search returns the same as 'contains' when using ICU
This fixes searching authorities when using ICU* so that 'starts with' searching works correctly. Before this, a 'starts with' search would return the same results as 'contains'.
Technical details: this adds the "complete field" to the authority "starts with" search so that it uses the untokenized "p" register.
(* ICU is a feature of the Zebra search engine that can be configured to make searching with non-latin languages (such as Chinese and Arabic) work correctly.)
[15187] Adding 880 Fields to index-list in order to Increase Search for ALL non-latin Scripts
This fixes the Zebra search engine when using ICU* so that 880 fields are rewritten as their linked fields and the alternate graphic representation of fields are indexed, in the same way that it works for Elasticsearch.
Example: add 245-01 to 880$6 and 教牧書信 to 880$a - the Chinese characters are now indexed into the title index using the 245 rules.
- ICU is a feature of the Zebra search engine that can be configured to make searching with non-latin languages (such as Chinese and Arabic) work correctly.
[24127] Improve wording on location drop-down in advanced search in the staff interface
This amends the "Shelving location" option in the search option drop-down on the advanced search page in the staff interface to read "Shelving location (code)" to make it more obvious that the LOC authorised value code needs to be used for searching.
[29561] Remove blank facet for languages
This removes blank facets from search results when using Elasticsearch. Currently, this only seems to affect language fields, but could affect any facetable field that contains blank values.
[29632] Callnumber sorting is incorrect in Elasticsearch
This fixes the sorting of call numbers when using Elasticsearch. Sorting will now work correctly for non-numeric call numbers, for example, E45 will now sort before E7.
[30152] Elasticsearch - queries with OR don't work with limits
Sponsored by Lund University Library, Sweden
[30882] Add max_result_window to index config
This updates the number of results set by default in Elasticsearch for the setting "index.max-result-window" from 10,000 to 1,000,000. This can be useful for really large catalogs.
[24010] Number of issues to display to staff accepts non-integer values
This adds validation to the subscription entry form to check that the values for these fields are numbers:
- Number of issues to display to staff
- Number of issues to display to the public
[30798] Columns Home library and Checked out from in wrong order on table settings for account_fines table
Sponsored by Koha-Suomi Oy
[31038] Amounts in cashup summary modal no longer properly formatted
This fixes the formatting of amounts on the cashup summary modal (it uses the existing format_price JS include to format prices). For example, the amount for a product was formatted as 15 instead of 15.00.
[31039] Rebase issues lead to duplicate JS for cash summary modal printing
This fixes a duplicate print dialogue box appearing when printing the cashup summary for cash registers - ins some circumstances when cancelling the print dialogue, it reappeared instead of closing.
[32298] Add page-section to cataloguing search results (cat)
Sponsored by PTFS Europe
[30864] Patron category form - no validation for password expiration field
This adds validation to the "Password expiration" field on the patron category form. If letters or other characters were entered, there was no error message. If what was entered was not a number, then it was not saved.
[31020] PassItemMarcToXSLT only applies on results pages
This fixes the note about the PassItemMarcToXSLT system preference so that it is only shown for the OPACXSLTResultsDisplay and XSLTResultsDisplay system preferences - it was appearing in all XSLT system preferences, when it only applies for results pages. (The note is removed from OPACXSLTListsDisplay, XSLTListsDisplay, OPACXSLTDetailsDisplay, and XSLTDetailsDisplay system preferences.)
[31619] Cannot select title when setting non-default value for OPACSuggestionMandatoryFields
This fixes the OPACSuggestionMandatoryFields system preference so that the title field is visible and marked as mandatory (in red).
[31931] Terminology for HoldsSplitQueue - staff client should be staff interface
This fixes the description for the HoldsSplitQueue system preference so that it says "In the staff interface, ..." instead of "In the staff client, ...", as per the terminology guidelines.
[30629] in title of patron card creator template needs to be removed
This removes tags incorrectly displaying in browser page titles for some pages in the staff interface (Tools > Patron card creator > Layouts; Tools > Label creator > Manage > Label batches; Administration > Budgets administration > select a budget > Plan by ...).
[30764] Terminology: Cancelled reserve
Sponsored by Catalyst
[30767] Terminology: Do not forget that the issue has not been checked in yet.
Sponsored by Catalyst
[30770] Terminology: Lost reserve
Sponsored by Catalyst
[30773] Standardize spelling i-tive / Itiva
This standardizes the spelling used for i-tiva in the staff interface. When modifying notices (Tools > Notices & slips > [select any notice]) the section is now labelled 'Phone ( i-tiva )' - this is now consistent with the table heading used for Tools > Overdue notice/status triggers.
[30784] Rephrase OPACMandatoryHoldDates slightly
This updates the text for the OPACMandatoryHoldDates system preference. It replaces the URL for the form (opac-reserve) with a description, formats the note similar to other notes, and links to other system preferences mentioned in the description.
[30994] Typo: item was on loan. couldn't be returned.
This updates some error messages for the inventory tool to make them more readable and consistent: punctuation fixed, capitalization made more consistent, and language corrections ("check in" instead of "return").
[31040] jsTree image being used outside of jsTree plugin
This fixes OPAC templates which had a missing "spinner" image when queries were being performed (such as for OpenLibrary, RecordedBooks, and OverDrive). Previously, they were using an image from the jsTree plugin - this was upgraded (see bug 11873), and the plugin's folder structure was changed. Templates now use /images/spinner-small.gif instead.
[31071] Regression: date due removed from staff search results
This fixes a regression introduced in Koha 21.11 that inadvertently removed the date due in the staff interface search results.
[31302] Spelling: You can download the scanned materials via the following url(s):
Sponsored by Catalyst
[32270] Add page-section to label creator - manage label layouts
Sponsored by PTFS Europe
[28327] System preference CSVdelimiter special case for tabulation
This fixes the CSV export so that data is correctly exported with a tab (\t) as the separator when this format is selected. This was incorrectly using the word 'tabulation' as the separator. (The default export format is set using the CSVdelimiter system preference.) In addition, the code where this is used was simplified (including several of the default reports, item search export, and the log viewer), and the default for CSVdelimiter was set to the comma separator.
[30903] CSV import of quotes broken
This fixes the import of quotes from a CSV file for the Quote of the Day feature.
[30636] ILS-DI shows incorrect availability when not for loan by item type
This fixes the ILS-DI web service so that requests where item types are not for loan are correctly returned, the same as for the OPAC. Currently, the item not for loan status is ignored and records are shown as available.
The Koha manual is maintained in Sphinx. The home page for Koha documentation is
The Git repository for the Koha manual can be found at
Complete or near-complete translations of the OPAC and staff interface are available in this release for the following languages:
Partial translations are available for various other languages.
The Koha team welcomes additional translations; please see
For information about translating Koha, and join the koha-translate list to volunteer:
The most up-to-date translations can be found at:
The release team for Koha 22.11.00 is
Release Manager: Tomás Cohen Arazi
Release Manager assistants:
QA Manager: Katrin Fischer
QA Team:
Topic Experts:
Bug Wranglers:
Packaging Manager: Mason James
Documentation Manager: David Nind
Documentation Team:
Translation Managers:
Wiki curators:
Release Maintainers:
We thank the following libraries, companies, and other institutions who are known to have sponsored new features in Koha 22.11.00
We thank the following individuals who contributed patches to Koha 22.11.00
We thank the following libraries, companies, and other institutions who contributed patches to Koha 22.11.00
We also especially thank the following individuals who tested patches for Koha
We thank the following individuals who mentored new contributors to the Koha project
And people who contributed to the Koha manual during the release cycle of Koha 22.06.00
We regret any omissions. If a contributor has been inadvertently missed, please send a patch against these release notes to koha-devel@lists.koha-community.org.
From commit 1:, we expressed what this cycle was about:
The road of excess
leads to the palace of wisdom;
for we never know what is enough
until we know what is more than enough.
William Blake.
It's been a particularly busy release with several big challenges. I'm grateful for the chance I had to serve as Release Manager, and for this great community and its members, who invested their time to make this happen.
Special thanks to:
all of whom have been promptly available to tackle the different problems we faced through this vertiginous cycle.
The Koha project uses Git for version control. The current development version of Koha can be retrieved by checking out the master branch of:
The branch for this version of Koha and future bugfixes in this release line is 22.11.x.
Bug reports and feature requests can be filed at the Koha bug tracker at:
He rau ringa e oti ai. (Many hands finish the work)
Autogenerated release notes updated last on 25 nov 2022 14:22:01.