28 May 2021
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 21.05.00 can be downloaded from:
Installation instructions can be found at:
Koha 21.05.00 is a major release, that comes with many new features.
It includes 6 new features, 248 enhancements, 449 bugfixes.
A Technical highlights section is included at the bottom of these notes for those seeking a short summary of the more technical changes included in this release.
You can learn about the system components (like OS and database) needed for running Koha here: https://wiki.koha-community.org/wiki/System_requirements_and_recommendations
Work has continued on refactoring the accounting code this cycle. The 'Point of sale' and 'Cash management' features have been further enhanced to better expose cash-up functionality to the user interface and aid in auditing processes and effort has been made to ensure all accountline actions are properly recording using double entry accounting methods with offsets to link income to debts.
A significant amount of work has gone into refactoring the transfers system to enable future enhancements and improve maintainability. Transfers can now be queued and a priority system exists for the various mechanisms that can trigger a transfer. Additionally, an audit trail is now left in place to allow future debugging to take place. This has helped us to resolve a number of long standing bugs and edge cases in the transfers process.
Work has continued to make Koha more accessible:
Paypal support has been dropped from Koha core and moved to a plugin [23215]
[20212] Improve performance of acquisitions receive page
This development changes how the orders table on receiving in acquisitions is rendered. Before these patches all active orders data was fetched from the database, along with all the related data (patrons, biblio). This leads to significant delays because all orders matching the filtering criteria were loaded, even when only 20 rows were displayed on the UI. With this patch, the table is rendering using server-side pagination, provided by the REST API. This means (1) only the information to be rendered is fetched (faster drawing (2) the page doesn't reload anymore when a new filter is added: it just refreshes the table, very fastly.
Sponsored by: Camden County Library System
Sponsored by: ByWater Solutions
[22773] Bulk close invoices and filter invoice view (open/closed)
This new feature splits the view of the invoice search results into opened and closed tables and adds the ability to bulk close or reopen invoices.
[11299] Add a button to automatically link authority records in cataloguing (AJAX)
This patch adds a new button to the basic MARC editor. When clicked this button will run through all controlled fields in the MARC record and search the existing authority file to link them to authorities. Depending on system preferences unmatched headings will create new authorities or remain unlinked. Results will be highlighted so that the cataloguer can see what was done.
[8976] Default sequence of subfields in cataloguing and item editor
Sponsored by Orex Digital
This new enhancement adds the ability to change the default order of the subfields.
Both bibliographic and authority MARC subfield structure are taken into account. And so the item edition as well.
This will answer, for instance, the following needs:
- $i in 7xx fields should be the first subfield in the sequence
- 300 fields are sorted number first when cataloguers enter the letter fields first
- 100 field, it's commonly $a, $q, $d.
[22569] Add a 'Transfers to send' report
This enhancement adds a 'Transfers to send' report to the circulation module.
This is a parallel for the 'Transfers to receive' report and lists all items that are set to transfer but not yet in transit (along with their transfer reason and whether they're available to be picked from the shelves or currently checked out).
[26633] Add advanced editor for transfer limits
This enhancement adds an "advanced" editor for transfer limits that displays all to/from library combinations in a grid and allows them to be edited in a manner somewhat similar to the transport cost matrix editor.
[23971] Add logging for basket related actions
This enhancement adds back the
AcquisitionsLog
preference and when enabled it adds logging for the following actions:
- Adding new baskets
- Re-opening closed baskets
- Modifying baskets
- Modifying basket headers
- Modifying basket users
- Closing baskets
- Approving baskets
[26630] Allow custom text for each library on the purchase suggestion page
Enhancement to allow for custom text at the top of the purchase suggestion screen which can be administered via the Koha news tool.
[27023] Add class names in the suggestions column in suggestions management
This enhancement adds classes to the various information spans displayed in the suggestions table. This allows for simple targeting of CSS rules to highlight or hide information that is important/irrelevant for your library's use.
[27240] Export basket: remove spaces and don't export links
A simple template cleanup to improve code legibility and remove superfluous whitespace when exporting data using the table features. Also removes links from the exported data.
[27606] Breadcrumbs on parcel.pl should include a link to the vendor
Updates the breadcrumb on the orders to receive page from:
Home > Acquisitions > Receive orders from My Vendor
to
Home > Acquisitions > My vendor > Receive orders
This improves consistency and aids navigation.
[27793] Store Contents of FTX segment of EDI quotes for inclusion in orders
This enhancement adds support for the EDI FTX (FreeText) segment in Edifact ordering. We simply store the segment and pass it around in the EDI process required.
[27794] Add link to biblio in lateorders page
This patch modifies the display of bibliographic records in the acquisitions report of late orders so that the title of the record is a link to the corresponding bibliographic details page.
[22824] Replace YAML::Syck with YAML::XS
To bring consistency to the codebase, improve performance and reduce dependencies it was decided we should converge on a single YAML parsing library... we opted for YAML::XS.
[23271] Koha::Patron::Category should use Koha::Object::Limit::Library
This enhancement makes Koha::Patron::Categories inherit the 'search_with_library_limits' method from Koha::Objects::Limit::Library and thus makes it consistent with other locations where filtering by branch is required.
[23830] Koha::AuthorisedValues should use Koha::Objects::Limit::Library
This enhancement makes Koha::AuthorisedValues inherit the 'search_with_library_limits' method from Koha::Objects::Limit::Library and thus makes it consistent with other locations where filtering by branch is required.
[24254] Add Koha::Items->filter_by_visible_in_opac
This patch introduces an efficient way of filtering Koha::Items result sets, to hide items that shouldn't be exposed on public interfaces.
Filtering is governed by the following system preferences. A helper method is added to handle lost items:
- hidelostitems: Koha::Items->filter_out_lost is added to handle this.
Some patrons have exceptions so OpacHiddenItems is not enforced on them. That's why the new method [1] has an optional parameter that expects the logged in patron to be passed in the call.
[1] Koha::Items->filter_by_visible_in_opac
[25026] RaiseError must be set for the UI
Turning on RaiseError for the UI will propagate the SQL errors to the UI. That will prevent errors to silently fail and let developers catch issues that could exist in our codebase.
[25670] Add useful methods to Koha::Acquisition::Orders
This architectural enhancement adds helpful filter methods to the Koha::Acquisitions:: modules to ease the development of Acquisitions API's and future acquisitions related enhancements.
[25755] Add a Koha::Item->request_transfer method
This work adds a
request_transfer
method toKoha::Item
that allows a transfer to be requested.The method will throw exceptions for missing parameters and it obeys the transfer limits.
Optionally, one can pass 'ignore_limits' and 'enqueue'/'replace' parameters to override the transfer limits and handle cases where a transfer request may already exist.
[25757] Add a Koha::Item::Transfer->transit method
This patch adds the
Koha::Item->transit
method which can be used to progress a transfer from 'requested' to 'in_transit'.The method will throw an exception if the item is not checked in and will handle
CartToShelf
and updateDateLastSeen
as well as updating the 'frombranch' if required.We also add some sugar methods to allow easy navigation between the 'Transfer' and it's respective 'Item'.
[25767] Add Koha::Item::Transfer->receive method
This enhancement adds the
Koha::Item::Transfer->receive
method to allow recording the receipt of a transfer at its destination.The method will throw an exception if the item is not checked in and it also handles setting DateLastSeen.
[26057] Add Koha::Item::Transfer->cancel method
This enhancement adds the
Koha::Item::Transfer->cancel
method to allow audited cancellation of item transfers.This patch introduces the
datecancelled
andcancellation_reason
fields to branchtransfers for tracking when and why a transfer was cancelled.
[26481] Add Koha::Item::Transfer->in_transit method
This enhancement adds the
Koha::Item::Transfer->in_transit
helper method to quickly identify transfers that are in progress.
[26618] C4/RotatingCollections.pm should not use C4::Circulation::transferbook
This enhancement updates the Rotating Collections system to use the recently introduced Koha:: methods for Item Transfers.
We expose some extra feedback to the end user to highlight where transfers would have previously failed silently when used in combination with other systems that trigger transfers.
[27268] Move C4::Biblio::GetMarcNotes to Koha namespace
Sponsored by Bibliotheksservice-Zentrum Baden-Württemberg (BSZ)
C4::Circulation::DeleteTransfer
with Koha::Item::Transfer->cancel({ comment => $comment })
in C4::Circulation::LostItem
[27487] Rename system preference reviewson to OPACComments
This renames the existing system preference 'reviewson' to 'OPACComments' which better reflects its use.
[27636] Replace Koha::Account::pay with a simpler method
This enhancement adds the new 'payin_amount' method to Koha::Account.
This method utilises the well tested 'Koha::Account->add_credit' and 'Koha::Account::Line->apply' methods to achieve consistent results when paying in credit against debts.
The original 'pay' method now uses payin_amount internally and will be left intact for a deprecation period.
[27673] Replace YAML with YAML::XS
Replaces uses of YAML module with more widely supported YAML::XS module.
[27833] Koha::Exceptions::Patron::Attribute::* should have parameters
This development adds parameters to the extended attributes-related exceptions. This allows better handling.
[27896] Remove C4::Circulation::DeleteTransfer
This patch replaces calls to DeleteTransfer with Koha::Item::Transfer->cancel and then removes C4::Circulation::DeleteTransfer entirely.
This brings two advantages:
- Better auditing of transfers by recording reasons for cancellation and throwing suitable errors for various conditions
- Cleaning code from the overburdened C4::Circulation module.
[27930] Move escape* functions from acq/parcel.tt to be re-usable
This enhancement moves the useful
_escape_price
and_escape_str
functions found in acq/parcel.tt into the re-usable staff-global.js include file.
[28056] Add Koha::Exceptions::Patron::MissingMandatoryExtendedAttribute
This patch adds a new exception for more fine-grained control on the errors when dealing with patrons and their extended attributes.
[18506] SSO - Shibboleth Only Mode
This enhancement adds a system preference to allow libraries to enable shibboleth to work as the only authentication method available for their library and as such practice fully devolved authentication.
When combined with the OpacPublic preference, this can be used to enable seamless Single Sign On, where the user simply browses to the OPAC in their web browser and if already logged in on their domain they will automatically be logged in in koha too.
[23302] Less clicks on Z3950 search results
On the three forms where we use Z3950 search results, in acquisitions and cataloguing for authorities as well as biblios, the form remembers your last choice for Card or MARC view.
Note that this adds a new key in localStorage of your browser: z3950search_last_action.
[24108] Configure if biblionumber or control number is used for saved files from detail page or advanced cataloguing editor
This enhancement lets you choose how a record is named when saving it as a MARC or MARCXML file using the advanced cataloguing editor or the download option from the staff interface detail page.
Using the new system system preference "DefaultSaveRecordFileID" choose:
- the bibliographic record number (the default): the file is saved as bib-{biblionumber}.{format}, or
- the control number (001 field): the file is saved as as record-{controlnumber}.{format}.
[26943] Show not for loan descriptions in cataloging search (addbooks.pl)
Adds the ability to see not for loan descriptions in the cataloging search results.
[27422] HTML5Media is http by default but Youtube is https only
Sponsored by Banco Central de la República Argentina
[27545] NewItemsDefaultLocation is only used from additem.pl
The NewItemsDefaultLocation syste prefernce setting is now also used when adding items in the serials or acquisition module or when importing items through the staged MARC import tools.
[28179] Use a lightbox gallery to display the images - detail page, staff interface
Sponsored by Gerhard Sondermann Dialog e.K. (presseplus.de, presseshop.at, presseshop.ch)
This enhancement adds the ability to display the cover images of a bibliographic record in a gallery. Cover images attached to items are also displayed in separated galleries.
[12224] Allow easy printing of patron check-in slip
Sponsored by Bibliotheksservice-Zentrum Baden-Württemberg (BSZ)
This allows to print a checkin slip with information about all of the items a patron has checked in that day from the checkin page in the staff client. It uses a new notice template with the letter code CHECKINSLIP.
[18532] Messaging preferences for auto renewals
This patchset adds messaging preferences for controlling auto renewal notifications. This allows more fine-grained control on auto renewal notifications.
A new letter is added to the existing AUTO_RENEWALS one, for digest notifications (AUTO_RENEWALS_DIGEST).
[18912] Show more item information when using itemBarcodeFallbackSearch
When using itemBarcodeFallbacksearch to checkout items with an unknown or non-existing barcode, the table with items matching the search criteria didn't contain a lot of information about the items. This patch adds several columns to make it easier to pick the correct item for checkout: callnumber, copy number, serial enumeration, inventory number, collection, and item type.
[21883] Show authorized value description for withdrawn in check-in
This adds the description of the withdrawn status to the message that is displayed when a withdrawn item is returned.
[23207] Allow automatic checkin/return at end of circulation period
This adds a new configuration option to the itemtype administration page: Automatic checkin. With automatic checkin enabled the item will be automatically checked in at its due date. In order for this feature to work correctly, the automatic_checkin.pl cronjob needs to be set up on your installation.
[26937] Add an optional delay to the CheckPrevCheckout system preference
This adds a new system preference CheckPrevCheckoutDelay that allows to specify a number of days that is used with the CheckPrevCheckout feature to determine, if a warning should be shown or not. If the checkin date of the item that is about to be checked out is longer ago than CheckPrefCheckoutDelay days, no warning will be displayed.
[27924] Display number of holds awaiting pickup on check out screens
This patch changes the way waiting holds are displayed on the checkout screen. Holds waiting at the current library will now be displayed separately from holds waiting at other libraries, with a count shown for each group.
[15986] Add a script for sending hold waiting reminder notices
This patch adds a new script (holds_reminder.pl) for sending holds reminder notices to patrons. The script is intended to be run as a cronjob and takes several parameters: days - after how many days waiting to send the notice lettercode - to specify which notice is used library - (repeatable) to specify which branches to send notices from holidays - to specify that holidays should not be counted as waiting days mtt - (message transport type) to specify which notice format to use, i.e. print, email, etc. date - to run the script as it would have been on a specific date n - no emails - test mode, report only, do not send notices
[24272] Add a command line script to compare the syspref cache to the database
This script checks the value of the system preferences in the database against those in the cache. Generally differences will only exist if changes have been made directly to the DB or the cache has become corrupted.
[24541] Database clean-up: purge messages
Adds a new option to the cleanup_database.pl cron job to schedule deletion of messages added to patron accounts.
[27049] Add a script to bulk writeoff debts
This new script can be scheduled to writeoff user debts prior to the
delete_patrons.pl
script attempting to remove them.Example: ./writeoff_debts.pl --added_before $(date -d '-18 month' --iso-8601) --confirm
[27050] Allow multiple category_codes in delete_patrons.pl
Sponsored by Lund University Library
This enhancement allows the use of multiple patron category codes in the delete_patrons.pl script. For example, delete_patrons.pl --category_code PT --category_code ST
[16486] Display the TIME a fine was collected/written off
Sponsored by Catalyst
This patch updates the information displayed in Koha for account lines. In accounts tables, the current 'Date' field is renamed 'Created', and a new column 'Updated' is added to display the last updated timestamp of the line.
For new installations, accounts notices are also updated to include this information by default.
[23215] Remove PayPal logic from Koha
A while ago, a new payment plugin for PayPal was introduced, with more features like per-branch configurations. [1]
This patch removes the PayPal payment feature from the codebase in favor of that plugin.
[1] https://gitlab.com/thekesolutions/plugins/koha-plugin-pay-via-paypal
[24300] Add a 'payout amount' option to accounts
This enhancement adds a 'Payout amount' button to the borrowers account details page when there is outstanding credit. This allows a library to payout multiple outstanding credits in one action.
[26272] Allow cashup summaries to be displayed from the library summary page
This enhancement utilises the recently introduced API routes for cashup summaries to allow the display of the cashup summary for the most recent cashup performed on each cash register visible on the cash management library summary page.
[26273] Expose cashup summary history for a cash register
This enhancement adds a cashup history table at the bottom of the register details page. You can then use this table to display the full summary for any cashup that has taken place at this cash register.
[27971] The VOID method should be updated to respect double-entry accounting
Prior to this patch, the VOID action would reverse payments and set the original credit to '0'.
With this patch, we bring the void action in line with other actions that can take place on the accounts system. The original credit amount is kept for audit purposes, we add a VOID line to the accountlines and offset it against the original credit (so that the amount outstanding is zero) and we reverse all the original offsets the credit may have been made against and record these reversals.
This all helps in future audits and gives additional detail for Koha's other internal processes (Like automated refunds having to discount void payments - See bug 28421)
[28127] POS register details tables should have a transaction date
This patch adds the accountline timestamp to transactions on the register detail page.
[24359] Remove items from Holds Queue when checked in
This development makes Koha trigger an update on the holds queue when items are checked in. This way, the holds queue will be updated faster than the default 1 hour frequency (cronjob).
Note: this doesn't trigger the more expensive task of recalculating the whole queue, which remains a cronjob-based task.
[26498] Add option to set a default expire date for holds at reservation time
Sponsored by Koha-Suomi Oy
This enhancement adds the option to set a default elapsed expiry date for holds at placement and when reservedate is updated.
[27016] Make the pickup locations dropdowns use Select2
This enhancement improves the display of the pickup library dropdown list in the holds section for a record, particularly for long lists. Enhancements include being able to start typing the name of the library and search for the library.
[27790] Possibility to filter Holds to pull list using pickup place
Add option to filter by pickup location in Holds to pull report.
[27864] Visual feedback on overridden pickup locations when placing biblio-level hold
This patch changes the pickup location dropdown, when placing biblio-level holds, so it renders a sign, alerting that circulation rules would be overridden if the pickup location is chosen.
It relies on new API routes.
[28092] Holds to pull needs to include reserve notes
Adds reserve notes column to Holds to pull report.
[15563] Add option to regularly delete patroncard and label batches to cleanup_database.pl cronjob
This enhancement adds new options to the cleanup_database cronjob to delete label and card creator batches that haven't been updated for a given number of days. Previously, all batches were kept indefinitely.
[26875] Allow printing of just one barcode
This patch allows one to use the barcode range feature in the label creator tool to print a single barcode at a time.
[26962] Koha notice/slips/receipts should print in true black (#000000)
Almost black color in CSS rules (like #000066) are now replaced by true black color #000000
[28119] Use full description in layout type selection
This enhancement changes the display of the drop down list when adding and editing label layouts (Tools > Label creator > Layouts) so that a full description of label types is shown instead of brief names. For example: "Only the barcode is printed" instead of "BAR".
[12966] Edition statement missing from card view in Z39.50 result list (acq+cataloguing)
This adds the edition statement (MARC21 250) to the card/ISBD views in the Z39.50 search results in the acquisition and cataloging modules.
[27852] Link YES_NO authorized value category to 942$n in Default framework
This patch adds a Yes/No drop-down menu in the default bibliographic framework for field 942$n (MARC21). This field controls whether or not the record is hidden in the OPAC.
[26199] Record matching rule match check should include Leader/LDR
This patch extends the functionality of the existing record matching rules by allowing comparisons based on the fixed-length MARC leader. To reference the leader in a matching rule, enter "LDR" for the MARC tag in your matching rule setup. The offset and length values can be used to further refine your match.
[14233] Add logging support to notices and slips management
This enhancement adds support for logging changes to notices and slips. Features include:
- a system preference (NoticesLog) which allows you to enable logging changes for notices and slips
- logging new notices, changes to notices, and deletion of notices
- filtering in the log viewer so you can show all changes for a specific notice
- a comparison feature, so you can see what changes were made to a notice.
[14723] Additional delivery notes to messages
Sponsored by Hypernova Oy and Koha-Suomi Oy
[21886] Add option to send notices from owning library instead of issuing library
Sponsored by Gothenburg University Library
Option added to advance_notice.pl and overdue_notice.pl for sending notices from owning or issuing library.
[26734] Convert accounts (monetary) notices to use GetPreparedLetter
This enhancement updates the existing slip printing code to utilise the internal GetPreparedLetter function as our other notices do.
This leads to code clarity improvements and consistency and is part of the path to migrating all notices to use template toolkit consistently as well as exposing more variables to the template system for notices.
WARNING: We replace any existing notices for the monetary slips with a modern equivalent using template toolkit. Any customised templates will be recorded in the action logs and should be used as inspiration for updating the new slips to include your libraries customizations. Letter codes: ACCOUNT_CREDIT, ACCOUNT_DEBIT
[18989] Allow displaying biblios with all items hidden by OpacHiddenItems
Currently the bibliographic record will be hidden in the OPAC, if all linked items are hidden by criteria defined in OpacHiddenItems. This patch adds a new system preference OpacHiddenItemsHidesRecord that allows to control this behavior making it possible to show the record, even if all items are hidden.
[20410] Remove OpacGroupResults system preference and feature
Remove the OpacGroupResults system preference and PazPar2 that have been deprecated in the previous major version.
[22752] Show item-level hold details for patrons when logged into their account
This enhancement to the OPAC shows a logged in patron what item a hold was placed on, for item-level holds ("Item on hold:
" is added after the title).
[25775] Add DataTables controls to user's checkouts table in OPAC
This patch adds some tools to the display of checkouts, overdues, holds, etc. in the logged-in user's view of their account in the OPAC. Users logged in using a JavaScript-capable browser will now see a filter form for instantly searching the contents of these tables. Controls will be shown to copy the data in the table, export the contents as a CSV file, or print a print-friendly version of the data in the table.
[26123] Show info about existing OPAC note/Patron message on patron's dashboard
Shows the number of messages and OPAC note from a patron record on the dashboard on the OPAC start page.
[27005] Adding a filter in the datatable of opac-readingrecord page
This patch adds a search field and export options to the OPAC for a patron's checkout history table.
[27610] Accessibility: OPAC - h1 on each page is Logo but should be page description/title
Sponsored by Catalyst
[27618] Don't show dropdown if PatronSelfRegistrationLibraryList only has one library
This patch modifies the patron self-registration screen to improve usability when there is only one library defined in the PatronSelfRegistrationLibraryList system preference. In this situation the library will now display as text instead of a dropdown with only one option.
[27681] Style OPAC self-registration CAPTCHA as uppercase
This changes the CAPTCHA field in the OPAC self-registration form to automatically change any character entered to be upper case.
[27728] Add a search box on OPAC search history
This new enhancement adds a search box to the OPAC search history. It also adds options to copy, export as CSV, and print search history data.
[27740] Accessibility: OPAC - Headings should have correct tags and hierarchy
Sponsored by Catalyst
[27876] Accessibility: OPAC - Reduce heading redundancy
Sponsored by Catalyst
[8326] Allow patron attributes to be made repeatable after initial creation
This enhancement lets you modify the attributes "repeatable" and "unique identifier" for patron attribute types. Before this change it was not possible to modify these after they were initially set.
Now you can modify patron attribute types, depending on the existing values recorded:
- repeatable: can make repeatable if it wasn't before; can make not repeatable once any repeatable values are removed
- unique identifier: if unique is set you can't add the same value to other patrons; you can't make an existing attribute unique until you edit all the existing values recorded for patrons and make them unique
[21549] Lock expired patron accounts after x days
This report adds pref LockExpiredDelay. When you enter a value there, the cleanup_database.pl cron job will lock the accounts of patrons that expired at least the specified number of days. This follows the same pattern as existing code that already allows you to anonymize or delete locked patrons.
[27607] Add the ability to compare patron records during merge process
When merging two patron records, the user now has the option to compare the two records to see the differences between them.
[25245] Add a plugin hook to allow running code on a nightly basis
This patchset adds a new cronjob script to Koha, plugins_nightly.pl
This script will check for plugins that have registered a cronjob_nightly method and execute that method.
This enhancement allows users to install and setup plugins that require cronjobs without backend system changes and prevents the addition of new cronjob files for each plugin.
[23666] Add routes for extended patron attributes
This development adds routes for managing a patron's extended attributes.
The following routes are added: GET /patrons/:patron_id/extended_attributes POST /patrons/:patron_id/extended_attributes PUT /patrons/:patron_id/extended_attributes DELETE /patrons/:patron_id/extended_attributes/:extended_attribute_id PATCH /patrons/:patron_id/extended_attributes/:extended_attribute_id
[26274] Expose cash register cashup summaries via an API route.
This enhancement adds the
/cash_registers/{cash_register_id}/cashups
and/cashups/{cashup_id}
API endpoints. This opens up the possibility to display the cashup summaries more easily on a wider range of Koha pages.
[26636] Add objects.find Mojolicious helper
Sponsored by Virginia Polytechnic Institute and State University
[27366] Add GET /patrons/:patron_id/holds
This enhancements adds the
GET /patrons/{patron_id}/holds
endpoint to the REST API.
[27760] Add handling for x-koha-override
This patches add a new Mojolicious helper method that takes care of reading 'x-koha-override' headers that contain comma-separated overrides (e.g. 'pickup_location,too_many_holds') and stashes them for later use in controller methods.
[27855] Allow embedding extended_attributes on /patrons routes
This enhancement allows patron extended attributes to be embedded into the patron object responses on the restful api.
[27932] Add GET /biblios/:biblio_id/pickup_locations
See the related wiki page https://wiki.koha-community.org/wiki/Biblios_pickup_locations_endpoint_RFC
[28002] Add optional extended_attributes param to POST /patrons
This development adds an optional parameter to the POST /patrons route, so extended attributes can be passed for patron creation. It relies on the underlying code to handle extended attributes constraints/requirements (repeatable, mandatory, unique, etc).
The added attribute (to be passed in the body of the POST request) is 'extended_attributes' and consists of an array of extended attribute objects (properly described on the spec).
[26708] Add option to preview SQL from list of saved reports
This patch adds the option to preview a saved report's SQL directly from the list of saved reports. From this preview the user can edit the report, duplicate it, schedule it, run it, or delete it.
[26713] Add pagination to bottom of saved SQL reports table
This enhancement adds a second pagination menu to the bottom of saved SQL reports tables.
[27380] Add option for taking a list parameter in reports
This enhancement adds a new option for taking input in reports.
You can now specify the input as a 'list' which will allow inputting a newline separated list of values
When requesting in put in the report you can use 'list' after the pipe symbol, similar to the way you can specify a 'date' input
"Data to enter|list"
[27643] Add CodeMirror custom syntax highlighting for SQL runtime parameters
This patch modifies the configuration of the reports module's SQL editor so that runtime parameters have their own syntax highlighting, setting them apart by color from other parts of the SQL code.
[27644] Add button to SQL report editor for inserting runtime parameters
This patch adds a button menu to the SQL report CodeMirror editor for inserting runtime parameters. Each menu item triggers a modal dialog where the user can specify a parameter label and any other relevant option.
[14300] siplogs do not record process IDs
This addition to the default configuration for the SIP section of the Log4Perl configuration will add the process ID to the log lines for SIP logs. This allows for tracing a transaction from start to finish when using forked SIP services.
[26591] Add a choice to prevent the checkout or warn the user if CheckPrevCheckout is used via SIP2
Some libraries would like patrons to be able to check out items with prior checkouts via SIP even if the CheckPrevIssue preference is enabled.
This feature is enabled by adding the flag prevcheckout_block_checkout to an account in the SIP configuration file, and setting the value of it to "0".
[21249] Syspref to choose whether to search homebranch, holding branch or both for library groups in advanced search
Sponsored by Catalyst
This patch adds a system preference, SearchLimitLibrary, to be used in the advanced search on the staff client and OPAC, and the OPAC masthead search. When limiting search results with a library or library group, the SearchLimitLibrary system preference can be set to limit using the item's holding branch, home branch, or both.
[23763] Move pagination calculations to a subroutine
This enhancement moves duplicated code for the pagination of search results in the OPAC and staff interface into its own routine.
[25054] Display search field aliases in search engine configuration
This adds a new column aliases to the search fields tabs of the search engine configuration table. The aliases table shows the abbreviated and alternative index names available for each defined index.
[26991] Add action logs to search engine administration
This enhancement adds logging of changes made to Elasticsearch. These can be viewed in the log viewer tool, where you can view all search engine changes, or limit to edit mapping and reset mapping actions.
[27682] Add a floating table header for Search engine configuration
This enhancement adds a search filter and a floating table header (that "sticks" to the top of the browser window as you scroll down) to the search engine configuration pages (Administration > Catalog > Search engine configuration (Elasticsearch)).
The "Search fields" table is sortable, but the "Bibliographic records" and "Authorities" tables are not as they have drag-and-drop row reordering.
[23243] Allow filtering out of historic subscription expirations in the check expiration of serials page
Sponsored by Centre collégial des services regroupés
Bug 15171 reversed the behaviour of the serials page to always display expired serial subscriptions.
This bug makes that filtering optional using a new checkbox.
[14004] Add ability to temporarily disable added CSS and Javascript in OPAC and interface
This allows to temporarily disable any of OPACUserCSS, OPACUserJS, OpacAdditionalStylesheet, opaclayoutstylesheet, IntranetUserCSS, IntranetUserJS, intranetcolorstylesheet, and intranetstylesheet system preference via an URL parameter.
Alter the URL in OPAC or staff interface by adding an additional parameter DISABLE_SYSPREF_
=1. Example: /cgi-bin/koha/mainpage.pl?DISABLE_SYSPREF_IntranetUserCSS=1
[25462] Shelving location should be on a new line in holdings table
In the holdings table, the shelving location is now displayed on a new line after the 'Home library'.
[26703] Modify the "title" elements to contain unique information first
Sponsored by Catalyst
Title elements should contain unique information first. This aids accessibility for all as browser titles become much more relevant and useful for navigation.
[26707] Split cart and lists button on bibliographic detail pages
This patch modifies the toolbar on bibliographic detail pages so that the "Add to cart" and "Add to lists" buttons are separate. The "Add to cart" now shows whether the title is in the cart. The "Add to lists" button is now a menu of list choices like it is on the search results page.
[27405] Update intranet-tmpl/prog/en/modules/pos/register.tt for ACC2
This patch updates occurrences of input type="number" in intranet-tmpl/prog/en/modules/pos/register.tt to use 'input type="text" inputmode="numeric" pattern="^\d+(.\d{2})?$"' as per the accessibility coding guideline ACC2.
[27846] Accessibility: Staff Client - Breadcrumbs should be more accessible
Sponsored by Catalyst
[27251] Rewrite the QOTD editor using the Koha REST API
This patch replaces the QOTD editor with the standard way used for creating, editing, and deleting QOTD entries (now uses edit and delete buttons, and a standard form to add and edit entries).
[27263] Link to preferences mentioned in system preference descriptions
Wherever a system preference description mentions another system preference the name of that preference will now be a link that searches for the system preference saving steps and making it easier to review related preferences.
[27395] Add warning to PatronSelfRegistrationDefaultCategory to avoid accidental patron deletion
This patch adds a warning to the PatronSelfRegistrationDefaultCategory system preference to not use a regular patron category for self registration.
If a regular patron category code is used and the cleanup_database cronjob is setup to delete unverified and unfinished OPAC self registrations, it permanently and and unrecoverably deletes all patrons that have registered more than PatronSelfRegistrationExpireTemporaryAccountsDelay days ago.
It also removes unnecessary apostrophes at the end of two self registration and modification system preference descriptions.
[27598] Add UPLOAD as a built-in system authorized value category
The file upload feature requires that users create an UPLOAD category for authorized values before adding values to that category. This patch adds the UPLOAD category by default so that users don't have to create it.
[27652] Offer selections for preferences which ask for patron categories
This enhancement to system preferences lets you select patron categories from a dropdown list, instead of manually entering patron category codes. This prevents possible errors from manually entering incorrect codes.
This is enabled for these system preferences:
- PatronSelfRegistrationDefaultCategory (single option)
- GoogleOpenIDConnectDefaultCategory (single option)
- OPACHoldsIfAvailableAtPickup (multiple options)
- BatchCheckouts (multiple options)
[27805] Use input type "email" for email preferences
This patch modifies the global system preferences interface so that fields which ask for an email address have the correct HTML attribute type: email. This allows some basic email address validation by the browser and can enable different keyboard options on devices with onscreen keyboards.
[21851] Improve style of sidebar forms
This patch makes minor changes to staff interface CSS to improve the style of forms in sidebars. It adjusts the style of nested field sets and gives more room to list items (and the form fields they contain).
[24624] Phase out jquery.cookie.js: Receipt summary
This patch removes the jquery.cookie.js plugin from the "Receive orders" page in acquisitions as it is no longer used.
[25846] Improve handling of multiple covers on catalog search results in the staff client
This enhancement updates the staff interface catalog search results to improve the display of multiple covers associated with each search result:
- Adlibris
- Amazon
- OpenLibrary
- Local cover images (including multiple local cover images)
- Coce (serving up Amazon, Google, and OpenLibrary images)
- Images from the CustomCoverImages preference A single cover is now displayed for each result, with controls for scrolling through any other available cover.
[27402] Add column filtering to the Datatables REST API wrapper
This development adds native DataTables column filtering to the REST API wrapper. This allows easily adding column filters to DataTables using the REST API. A sample implementation is added to the cities admin page, for reference.
[27476] Improve link text for logging in on OPAC
Sponsored by Catalyst
[27592] Link audio alerts to corresponding preference and back
This patch adds a link to the Audio Alerts page so that if audio alerts are disabled the user can follow a link directly to the corresponding system preference.
[27605] Add floating toolbar to patron search page
This patch modifies the patron module's search interface so that the toolbar of results-related controls sticks to the top of the screen as the user scrolls down. This gives access to the controls for adding patrons to a list and for merging patrons.
[27699] Add cash register information to responsive staff interface header menu
This enhancement adds the currently selected cash register (if it is enabled and set) to the logged-in user's header menu on the top righthand side of the staff interface when using smaller browser screen sizes.
[27749] Phase out jquery.cookie.js: Search to hold
This patch modifies the "search to hold" process for patrons and clubs so that the newer jquery-cookie plugin is used instead of jquery.cookie.
[27792] Improve jEditable configuration for point of sale fields
This patch improves interactions with inline-editable fields in the Point of Sale interface to prevent jumpy table re-draws and to enforce the required currenty/number input types.
[28047] Standardize: Call number, callnumber, Call no. etc.
This patch modifies instances in the templates where variations of "Call number" are used. "Call number" is now used instead of "Call no.", "Call no", or "callnumber".
[28081] Make card number a label in patron search results
In the Patrons module, in patron search results, the user can now click the patron card number to select the checkbox for that row.
[18146] C4::Circulation CanBookBeRenewed lacks full test coverage
This enhancement improves the test coverage for OverduesBlockRenewing and removes some of the warning messages.
[4037] Inventory tool missing item type filter
Sponsored by Bibliotheksservice-Zentrum Baden-Württemberg (BSZ)
This patch adds the ability to filter inventory by item type. Multiple item types can be selected at once.
[24446] Stockrotation: Update to use daterequested in branchtransfers
This patchset updates the Stock Rotation system to use the recently introduced Koha::Item[::Transfer] methods.
It fixes a bug whereby such transfers could be accidentally cancelled by other processes and sets these transfer to be the lowest priority.
We also introduce handling for the new 'requested' transfer state into the circulation system.
[27594] Add access to public download link for publicly-accessible uploads
This patch adds a link to the display of publicly-accessible downloads so that the public link can be copied.
[27766] Hide expired news items by default
This patch modifies the news page in the staff interface so that expired news items are hidden by default. A checkbox in the sidebar can be checked to show the hidden rows.
[28014] Add table settings to batch patron modification
This patch adds DataTable table configuration and export options to the table of patrons submitted for batch modification, both before and after modifications are made. The table will now be configurable via Table Settings in Administration.
[28037] Improve breadcrumbs of CSV profiles page
This patch expands the logic around the page title and breadcrumbs of the CSV profiles page. The name of the page has also been changed from "CSV export profiles" to "CSV profiles" to match links elsewhere in Koha.
Breadcrumbs now display as:
- Initial window: Tools > CSV profiles
- New CSV profile: Tools > CSV profiles > New CSV profile
- Edit an existing CSV profile: Tools > CSV profiles > Modify a CSV profile
[28108] Move action logs 'SERIAL CLAIM' and 'ACQUISITION CLAIM' to a new 'CLAIMS' module
This enhancement changes the logging system preferences and the log viewer tool so that:
- ClaimsLog: logs when an acquisitions claim or a serials claim notice is sent (Claims module in the log viewer)
- AcquisitionLog: logs all other changes for acquisition actions (Acquisitions module in the log viewer).
Previously ClaimsLog was called LettersLog, but the name was considered confusing after support for logging changes to notices and slips was added in Koha 21.05 (bug 14233).
(This list includes all bugfixes since the previous major version. Most of them have already been fixed in maintainance releases)
[27719] Receiving orders hangs on processing when missing a replacement price
Sponsored by Virginia Polytechnic Institute and State University
[26705] System preference NoticeBcc not working
The Email::Stuffer library we use, doesn't handle Bcc as Mail::Sendmail does. So Bcc handling wasn't working as expected. This patchset adds support for explicitly handling Bcc (including the NoticeBcc feature) to our Koha::Email library.
[27252] ES5 no longer supported (since 20.11.00)
This prepares Koha to officially no longer support Elasticsearch 5.X.
It adds a new system preference 'ElasticsearchCrossFields' to allow users to choose whether or not to enable this feature.
[27586] Import patrons script has a confirm switch that doesn't do anything
This fixes the misc/import_patrons.pl script so that patrons are not imported unless the --confirm option is used. Currently, if the script is run without "--confirm" option it reports that it is "Running in dry-run mode, provide --confirm to apply the changes", however it imports the patrons anyway.
[28200] Net::Netmask 1.9104-2 requires constructor change for backwards compatibility
The code library Koha uses for working with IP addresses has dropped support for abbreviated values in recent releases. This is to tighten up the default security of input value's and we have opted in Koha to follow this change through into our system preferences for the same reason.
WARNING:
koha_trusted_proxies
andILS-DI:AuthorizedIPs
are both affected. Please check that you are not using abbreviated IP forms for either of these cases. Example: "10.10" is much less explicit than "10.10.0.0/16" and should be avoided.
[27068] HoldsQueue doesn't know how to use holds groups
Koha 20.05 introduced local hold groups, but neglected to add support of them in the holds queue. Because of this, the holds queue will not show items the could have filled holds from other libraries in a hold group. This patch set adds support for hold groups to the holds queue builder thus improving Koha's ability to find items to fill hold requests.
[27071] Hold pickup library match not enforced correctly on intranet when using hold groups
When using library groups, the rules for placing holds did not always work as expected. This fixes these rules so that when patrons are part of a library in a group, they can only place a hold for items held in that library group. It also improves the error messages.
Example:
- There are two library groups with distinct libraries in each (Group A and B).
- Default rules for all libraries are: Hold Policy = "From local hold group" and Hold pickup library match to "Patron's hold group", AllowHoldPolicyOverride is Don't allow.
- You can place a hold for a patron that belongs to one of the Group A libraries, for an item only held in a Group A library.
- You can't place a hold for that item for a patron from a Group B library.
[27466] Update process failing for 20.06.00.023
The update 20.06.00.023 for adding options and reconfiguring the QuoteOfTheDay feature would fail. This patch makes sure that the update can be processed correctly.
[27737] Tag editor for authority lookup broken in authority editor
This patch changes the markup structure for the authorities editor so that it better matches that of the basic bibliographic record editor. This allows the authority-linking JavaScript to correctly target fields on both pages.
[27148] Internal Server Error during self registration 20.11
This fixes a bug when using self registration and there is no patron category available for selection in the registration form.
[27142] Patron batch update from report module - no patrons loaded into view
This fixes an error when batch modifying patrons using the reports module. After running a report (such as SELECT * FROM borrowers LIMIT 50) and selecting batch modification an error was displayed: "Warning, the following cardnumbers were not found:", and you were not able to modify any patrons.
[28475] Searching all headings returns no results
Sponsored by Asociación Latinoamericana de Integración
[27784] Unknown authority types break elasticsearch authorities indexing
This patch fixes Elasticsearch indexing failures caused by 'SUBDIV' type authority records in Koha. It skips the step of parsing the authorities into the linking form if the type contains '_SUBD'.
Notes:
- Koha currently doesn't have support for 'SUBDIV' type authority records.
- They can be added to the authority types in the staff interface, however, values are hard coded in various modules and Koha has no concept of how to link a subfield heading to a record, as we only deal in whole fields.
[26665] OAI 'Set' and 'Metadata' dropdowns broken
With OAI-PMH enabled, if you clicked on Sets or Metadata in the search results no additional information was displayed (example query:
/cgi-bin/koha/oai.pl?verb=ListRecords&metadataPrefix=marc21). This patch fixes this so that the additional information for Sets and Metadata is now correctly displayed.
(This list includes all bugfixes since the previous major version. Most of them have already been fixed in maintainance releases)
[23195] Shipping costs are inconsistent in where displayed
With this patch the shipping costs added to an invoice are always counted as "spent". With this change the totals on the start page of the acquisition module will match the totals on the ordered and spent pages for a fund.
[27446] Markup errors in suggestion/suggestion.tt
This patch fixes several markup errors in the suggestions template in the staff interface, including:
- Indentation
- Unclosed tags
- Non-unique IDs
- Adding comments to highlight markup structure
[27608] Correct 'accepted by' inconsistency in suggestion.tt
Sponsored by Collecto
[27813] Purchase suggestions should sort by suggesteddate rather than title
This changes the list of purchase suggestions so that the oldest suggestions are shown first, rather than by title. (This was the behaviour before Koha 20.05).
[25552] Add missing Claims Returned option to MarkLostItemsAsReturned
Marking an item as a return claim checks the system preference MarkLostItemsAsReturned to see if the claim should be removed from the patron record. However, the option for "when marking an item as a return claim" was never added to the system preference, so there was no way to remove a checkout from the patron record when marking the checkout as a return claim. This patch set adds that missing option.
[26048] PSGI Koha does not use custom ErrorDocument pages
This change allows PSGI (Plack) Koha to use the custom ErrorDocument pages that CGI Koha already uses. Without this change, a 500 error will show a white page with only "Internal server error" and a 404 will show a white page with only "not found". This change aligns the error reporting for the two different Koha web modes.
[26947] kohastructure.sql should be updated for each release
The kohastructure file which contains the table create statements for Koha was originally a MySQL dump which has been managed by hand as developers added new tables, changed columns, etc.
In order to standardize this table and allow easy comparison of an existing sites database to the correct Koha structure this file should be automatically generated as part of the release process
[27179] Misspelling of Method in REST API files
This fixes the misspelling of Method (Mehtod to Method) in REST API files.
[27714] Koha::NewsItem->author explodes if the author has been removed
This fixes the cause of errors occurring for the display of news items where the author of no longer exists in Koha.
use Try::Tiny
[20854] Redirect after logout with CAS 3.0 broken
This patch adds a new system preference casServerVersion, that will allow Koha to work correctly with different CAS protocol versions. In this case it fixes a problem that arose by changing the name of a parameter in the logout request between CAS 2 and 3 that broke the redirect after successful logout.
[21325] Prevent authentication when sending userid and password via querystring parameters
This change may break custom or creative (yet insecure) authentication integration using GET requests. These auth requests do not exist in Koha, but they may be used by extensions, customizations, or clever end users.
[27282] Printing broken in some versions of Chrome
Printing in some versions of Google Chrome does not work correctly making it impossible to print. This patch alters the JavaScript which controls the print dialogues in order to make for a better a printing experience across all browsers.
[26921] Create cover image even when there is no record identificator
Sponsored by Orex Digital
[26964] Advanced editor no longer selects newly created macros
This patch fixes the behaviour for saving of new macros using the advanced editor. Before this fix the newly created macro wasn't selected and the automatic save (there isn't a save option) had nothing to save.
[25690] SIP should not allow to check out an item in transfer because of a hold to another patron
Proper warning messages are added in staff interface when trying to initiate transfer to an attached hold.
Checking out someone else's hold that is in transit is prevented
[27011] Warnings in returns.pl
This patch removes a variable ($name) that is no longer used in Circulation > Check in (/cgi-bin/koha/circ/returns.pl), and the resulting warnings (..[WARN] Use of uninitialized value in concatenation (.) or string at..) that were recorded in the error log.
[27548] Warnings "use of uninitialized value" on branchoverdues.pl
This fixes the cause of unnecessary "use of uninitialized value" warnings in the log files generated by Circulation > Overdues with fines (/cgi-bin/koha/circ/branchoverdues.pl).
This was caused by not taking into account that the "location" parameter for this form is initially empty.
[27549] Warning "use of uninitialized value" on renew.pl
This fixes the cause of unnecessary "use of uninitialized value" warnings in the log files generated by Circulation > Renew (/cgi-bin/koha/circ/renew.pl).
This was caused by not taking into account that the "barcode" parameter for this form is initially empty.
[28202] Pickup libraries not sorted by name when placing hold
This corrects the sort order for library names for the pickup list when placing a hold. The list of libraries now sorts by library name, instead of the library code.
[27085] Corrections in overdue_notices.pl help text
Sponsored by Lund University Library
[27563] Remove check-url.pl in favor of check-url-quick.pl
The check-url.pl script has been deprecated since Koha 3.8 - this patch removes it. If any users are still referencing that script in their cronjobs they will need to update to the new script upon upgrade.
[28028] Remove broken fix_onloan.pl maintenance script
This script is removed from the codebase, as it was non-functional for a long time which also suggests that it wasn't used.
[20527] "label" tag linked to the wrong "input" tag (wrong "for" attribute) in paycollect.tt
This fixes the HTML 'label for=""' element for the Writeoff amount field on the Accounting > Make a payment form for a patron - changes "paid" to "amountwrittenoff".
[27180] Fines cronjob does not update fines on holidays when finesCalendar is set to ignore
Prior to this patchset the fines cronjob would not run on holidays. This was to ensure that dropbox mode correctly decremented fines.
Dropbox mode has been rewritten and we can now correctly calculate and charge fines on holidays (or not) following the calendar and system preferences.
[12362] Branch transfer records orphaned on cancelled holds
This change improves the queue handling for transfer cancellations.
With this patch, if a transfer is force-cancelled whilst it is in transit then a reverse transfer will be created to ensure the item gets back to the originating library unless there are already other transfers in the queue, in which case the next transfer in the queue will take precedence.
[27732] JavaScript error on place hold page in the staff interface
This patch fixes the cause of a JavaScript console error ("Uncaught ReferenceError: $ is not defined") when placing a hold using the staff interface. It:
- Moves the "$.fn.select2.defaults" definition from the top of the page to the bottom so that jQuery is loaded first.
- Improves the display of the dropdown list for the pickup library so that the width is wider.
[27803] publicationyear / copyrightdate not included in Holds to Pull
Sponsored by Catalyst
[11996] Default active currencies for ru-RU and uk-UA are wrong
This fixes the currencies in the sample installer files for Russia (ru-RU; changes GRN -> UAH, default remains as RUB) and the Ukraine (uk-UA; changes GRN -> UAH).
[24810] French SQL files for "news" contain "Welcome into Koha 3!"
This removes the Koha version number from the sample news items for the French language installer files (fr-FR and fr-CA).
[24811] French SQL files for "news" contain broken link to the wiki
This fixes a broken link in the sample news items for the French language installer files (fr-FR and fr-CA).
[27621] Remove it-IT installer data
This removes the SQL installer directory from the Koha source code. Installing Italian sample data will still be possible, but translations have been moved into Koha's translation system using .po files maintained on https://translate.koha-community.org.
[27623] Remove pl-PL installer data
This removes the SQL installer directory from the Koha source code. Installing Polish sample data will still be possible, but translations have been moved into Koha's translation system using .po files maintained on https://translate.koha-community.org.
[21260] Improve the Availability line of OPAC XSLT search results
This report adds preference Reference_NFL_Statuses that allows you to define the not for loan statuses that you want to be reported as Available for reference on the OPAC results display (XSLT based). Basis for further adjustments on bug 26302.
[27261] PatronSelfRegistrationBorrowerUnwantedField should exclude branchcode
This patch excludes the ability to add branchcode to the PatronSelfRegistrationBorrowerUnwantedField system preference.
[27543] Tooltip on opac-messaging.pl obscured by table headers
This patch fixes the display of tooltips in a patrons OPAC account for the 'your messaging' section. It corrects which Bootstrap assets are compiled with the OPAC CSS - the file for Bootstrap tooltips should be included.
[27633] Display of 440$v doubled up in the OPAC
This fixes the display of 440$v (Series Statement/Added Entry-Title - Volume/sequential designation ($v)) in the OPAC. Before this fix $v is included in the title link and then displayed after the ;. With the fix $v is only displayed after the ; and is not duplicated in the title link.
[27889] Form fields in OPAC are "out of shape"
This patch tweaks the CSS for the advanced search form in the OPAC so that it adjusts well at various browser widths, including preventing the form from taking up the whole width of the page at higher browser widths.
[27940] Fix missing email in OpacMaintenance page
This fixes no email address being shown on the OPAC maintenance page for "site administrator" link (when OpacMaintenance is set). Before this the link was showing as an empty "mailto:" instead of the value of KohaAdminEmailAddress
[27961] External track clicks links should get uri filtered
Sponsored by Parliamentary Library New Zealand
[27979] Multiple item URIs break redirect if TrackClicks enabled
Sponsored by Catalyst
[28086] Email address shown on OpacMaintenancePage should use ReplytoDefault if set
This enhancement changes the OPAC maintenance page* so that it uses the email address from the ReplyToDefault system preference, if it is set, for the "please contact the site administrator" email link.
If ReplyToDefault is not set, it will use KohaAdminEmailAddress.
If both ReplytoDefault and KohaAdminEmailAddress are not set, no link is shown.
- Displays when the OpacMaintenance system preference is set to "Show".
[17364] branchcode in BorrowerUnwantedField causes software error when saving patron record
A more user friendly interface for selecting database columns for some system preferences (such as BorrowerUnwantedField) was added in Koha 20.11 (Bug 22844).
Some database columns should be excluded from selection as they can cause server errors. For example, branchcode in BorrowerUnwantedField is required for adding patrons - if selected it causes a server error and you can't add a patron, so it should not be selectable.
This bug fixes the issue by:
allowing developers to define the database columns to exclude from selection in the .pref system preference definition file using "exclusions: "
disabling the selection of the excluded database columns in the staff interface when configuring system preferences that allow selecting database columns
updating the BorrowerUnwantedField system preference to exclude branchcode
[27454] Additional patron attributes change sequence on every reload of edit page
This fixes the order that additional patron attributes are displayed on the patron edit form. They are now sorted by the attribute code, before this they displayed in a random order.
[27114] Use Template Toolkit plugin for Koha plugins hook 'intranet_catalog_biblio_tab'
Koha plugins hook 'intranet_catalog_biblio_tab' now uses Template Toolkit plugin (like hook 'intranet_js', ...). It makes it easy to use it in other places (like MARC details page for example).
[26181] Holds placed via the REST API should not be forced by default even if AllowHoldPolicyOverride is enabled
This patch disables AllowHoldPolicyOverride by default in the /holds REST API. It also adds tests for this behaviour, and adds a header that can be used to request the override explicitly.
[28272] Definition files are missing additionalProperties: false
When the REST API spec was first written we assumed additionalProperties: false was the default behavior. It probably was by then.
We recently found the need to explicitly add it to all the relevant places (i.e. those that require strictness).
This bug adds it, and fixes the tests that fail or the error conditions that were hidden due to this being absent in the spec.
[26533] Searching authorities using 'is exactly' doesn't work as expected
Sponsored by Education Services Australia SCIS
Searching authorities using 'is exactly' was matching on any word in the heading. Now it is matching the heading exactly (the entire heading).
[26051] Elasticsearch uses the wrong field for callnumber sorting
This fixes the sorting of search results by call number when using Elasticsearch. Currently it does not sort correctly (uses local-classification instead of cn-sort) and may also cause error messages "No results found" and "Error: Unable to perform your search. Please try again.". This also matches the behaviour used by Zebra.
[26996] Elasticsearch: Multiprocess reindexing sometimes doesn't reindex all records
Sponsored by Lund University Library
[27043] Add to number_of_replicas and number_of_shards to index config
Elasticsearch 6 server has default value 5 for "number_of_shards" but warn about Elasticsearch 7 having default value 1. So its is better to set this value in configuration file. Patch also sets number_of_replicas to 1. If you have only one Elasticsearch node, you have to set this value to 0.
[27299] Zebra phrase register is incorrectly tokenized when using ICU
Previously, Zebra indexing in ICU mode was incorrectly tokenizing text for the "p" register. This meant that particular phrase searches were not working as expected. With this change, phrase searching works the same in ICU and CHR modes.
[27321] Make excluded database columns in system preferences more clearly disabled
This enhancement styles non-selectable database columns in system preferences in a light grey (#cccccc), making them easier to identify. Currently the checkbox and label are the same color as selectable columns.
[27408] Update intranet-tmpl/prog/en/modules/members/mancredit.tt for ACC2
This patch updates occurrences of input type="number" in intranet-tmpl/prog/en/modules/members/mancredit.tt to use 'input type="text" inputmode="numeric" pattern="^\d+(.\d{2})?$"' as per the accessibility coding guideline ACC2.
[27310] Wrong CSS float on 'Visibility' in framework edition
This fixes the display of the 'Visibility' label when editing subfields for a framework. The label is now aligned correctly with the other labels.
[27703] Can't navigate in Authorized values
This fixes an issue when navigating authorized value categories - if you selected an authorized value category from the drop down list it wouldn't change to the selected category.
[27716] Insufficient access control for printer profiles
This change moves the label creator pages, including the printer profiles management, under the 'lable_creator' permission under tools. This gives a more refined access permission for this area of functionality.
[20238] Show description of ITEMTYPECAT instead of code in itemtypes summary table
This enhancement changes the item types page (Koha administration > Basic parameters > Item types) so that the search category column displays the ITEMTYPECAT authorized value's description, instead of the authorized value code. (This makes it consistent with the edit form where it displays the descriptions for authorized values.)
[24055] Description of PayPalReturnURL system preference is unclear
This enhancement improves the description of the PayPalReturnURL. Changed from 'configured return' to 'configured return URL' as this is what it is called on the PayPal website.
[27027] Typo: has successfully been modified.. %s
This fixes a grammatical error in koha-tmpl/intranet-tmpl/prog/en/modules/admin/background_jobs.tt (has successfully been modified..) - it replaces two full stops at the end of the sentence with one.
[27430] Use minimum length for patron category on password hint
This corrects the hint on the patron add/edit form to take into account that the minimum password length can now also be set on patron category level.
[27525] 'wich' instead of a 'with' in a sentence
This patch fixes two spelling errors in the batchMod-del.tt template that is used by the batch item deletion tool in the staff interface: "wich" -> "with."
[27752] Correct ESLint errors in batchMod.js
This patch makes minor changes to batchMod.js used in Tools > Batch item modification. This addresses errors raised by ESLint, including white space changes, to make sure it meets coding guideline JS8: Follow guidelines set by ESLint.
[27754] Correct eslint errors in basket.js
This patch makes minor changes to basket.js in the staff interface templates to remove ESLint warnings. Besides whitespace changes, most changes are to correct undeclared or unnecessarily declared variables.
[28004] Incomplete breadcrumbs in authorized valued
This patch fixes some incorrect displays within the breadcrumbs on authorised_values.tt
[27869] QotD CSV upload JavaScript errors
This patch handles malformed CSV errors by producing a warning on the page letting users know that the CSV filed uploaded has errors.
[28178] Image viewer does not select the correct image
Sponsored by Gerhard Sondermann Dialog e.K. (presseplus.de, presseshop.at, presseshop.ch)
[21301] Restriction of the informations given by GetRecords ILS-DI service
For privacy protection, ILS-DI webservice GetRecords will not give patron information anymore. Also old issues are not given anymore. This removes method C4::Circulation::GetBiblioIssues().
Some significant technical changes were made behind the scenes in this release and it was felt that they should be additionally highlighted in the notes as they could be easily missed above.
koha-dump --schema-only
It will let you compare easily the structure of your DB with the one in the codebase.We are proud to introduce a new resource for third party integration developers: https://api.koha-community.org. This new documentation resource describes all api endpoints for the supported versions of Koha and makes the Swagger specification available for download and work will continue in the next cycle to improve this excellent new resource for application integrators everywhere.
Numerous new API endpoints have been introduced this cycle, including patron attributes, transfers, holds, pickup libraries, cash management, to name but a few.
We added the "additionalProperties" flag to our API schema to be more strict and found issues and inconsistencies. Unspecified properties passed in the object will make the route rejected [28272]
New Mojolicious helper "x-koha-override" [27760] to pass "overrides" methods. For instance for "too many holds" when a confirmation is needed on the GUI.
The specific .sql files from the installer directory will be removed in the upcoming release. A workgroup will be formed during the 21.11 development cycle to remove the remaining ones. So far we got rid of de-DE, es-ES, it-IT, pl-PL, ru-RU and uk-UA. The remaining ones are fr-FR, fr-CA, nb-NO. You can see the work on the omnibus bug report [27829]. If you are using one of these languages and their .sql files, please contact the core team to tell us what you want to keep from them.
The RaiseError flag is now set on the DB handler. That means we will never fail a SQL query silently. That might lead to unexpected explosion (server error 500) but will help the development team to catch remaining bug. To avoid displaying an ugly "Software error" page, we created an error page that is nicely integrated into Koha.
Another effect of this change is that the update database process will not stop if something wrong happened during the upgrade procedure.
The Koha manual is maintained in Sphinx. The home page for Koha documentation is
As of the date of these release notes, the Koha manual is available in the following languages:
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 21.05.00 is
Release Manager: Jonathan Druart
Release Manager assistants:
QA Manager: Katrin Fischer
QA Team:
Topic Experts:
Bug Wranglers:
Packaging Managers:
Documentation Manager: Caroline Cyr La Rose
Documentation Team:
Translation Managers:
Release Maintainers:
We thank the following libraries, companies, and other institutions who are known to have sponsored new features in Koha 21.05.00
We thank the following individuals who contributed patches to Koha 21.05.00
We thank the following libraries, companies, and other institutions who contributed patches to Koha 21.05.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 21.05.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.
Thanks to those who are working everyday to make Koha better day after day.
I would like to thank especially the whole development team and all those who contributed to the different topics from the roadmap we defined at the beginning of the release cycle.
I am excited to continue as release manager for one more development cycle. We, as a community, are comforting our capacity to work together and are continuously becoming more efficient. A lot of stimulating and interesting challenges are waiting for us.
Join us if it's done yet!
Enjoy this new version of Koha!
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 master.
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 28 May 2021 09:08:25.