27 Nov 2019
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 19.11.00 can be downloaded from:
Installation instructions can be found at:
Koha 19.11.00 is a major release, that comes with many new features.
It includes 7 security fixes, 20 new features, 146 enhancements, 367 bugfixes.
Koha is continiously tested against the following configurations and as such these are the recommendations for deployment:
Additional notes:
[17179] Advanced editor: Add keyboard shortcuts to repeat (duplicate) a field, and cut text
Sponsored by Round Rock Public Library
This patchset introduces an internal clipboard to the advanced editor and provides some new functionality to make use of it; The following default shortcuts are provided but can be edited as per bug 21411.
Changed:
Ctrl-X
: Now cuts a line into the clipboard areaShift-Ctrl-X
: Now cuts current subfield into clipboard areaAdded:
Ctrl-C
: Copies a line into the clipboard areaShift-Ctrl-C
: Copies current subfield into clipboard areaCtrl-P
: Pastes the selected item from the clipboard at cursorCtrl-I
: Copies the current line and inserts onto a new line below
[22445] Ability to define a URL for custom cover images
Sponsored by Orex Digital
This development adds the ability to use alternative cover art providers who provide covers openly via consistent URLs. Three new system preferences are introduced,
CustomCoverImagesURL
,CustomCoverImages
andOPACCustomCoverImages
.
[23228] Add option to automatically display payment receipt for printing after making a payment
This enhancement adds the optional ability to automatically popup the receipt print dialogue upon successful payments in the staff client.
Note: The new
FinePaymentAutoPopup
must be enabled and popup blocker may require setting to allow popups for your Koha staff client domain.
[19618] Add 'Club Holds' feature
Sponsored by South East Kansas Library System
This new feature adds the ability for clubs to place a hold for bibs. When such a hold is placed, in the background a hold will be automatically placed for each member of the group in random order.
[22581] Add support for Plaine & Easie musical incipits rendering in OPAC
Sponsored by Biblioteca Provincial Fr. Mamerto Esquiú (Provincia Franciscana de la Asunción)
This development adds support for displaying Plaine & Easie musical incipits in the OPAC. With this feature enabled, when a cataloguer adds incipits codes to the 031 MARC21 fields they will display as musical scores and optionally include a short audio clip.
[23214] Add ability to pay guarantees fines
This new feature gives guarantors the option to pay off their guarantees charges using online payments via the OPAC.
[14570] Make it possible to add multiple guarantors to a record
Sponsored by Northeast Kansas Library System and Vermont Organization of Koha Automated Libraries
This development adds the ability for a patron to have an unlimited number of guarantors in any combination of existing Koha patrons and manually added guarantors ( e.g. the guarantor has no patron record in Koha ).
This feature retains the existing behaviour for importing guarantors during patron imports; However, guarantors can no longer be viewed, added or updated via the REST API.
Reports that utilize
borrowers.guarantorid
will need to be updated.
[22706] Add plugin hooks to allow custom password strength checking modules
This new feature allows plugin authors to implement a
check_password
method to enable custom password validation routines.Warning: Care should be taken when installing any plugins and only plugins you trust should be used. The hook introduced here allows plugin authors to potentially steel plain text passwords during patron creations and updates.
[22709] Add hooks to notify plugins of biblio and item changes
This new feature allows plugin authors to implement
after_biblio_action
andafter_item_action
methods which may be used to take various actions upon biblio and item creations, modifications and deletions.Warning: Care should be taken when installing any plugins and only plugins you trust should be used.
[22834] Add a method for plugins to return the absolute path for bundled files
This new feature allows plugin authors to construct absolute paths to resources contained within their plugins using the new
bundle_path
method.This can be used to aid in serving static content.
Warning: Care should be taken when installing any plugins and only plugins you trust should be used.
[22835] Serve static files from plugins through the API
Sponsored by Theke Solutions
This new feature allows plugin authors to serve static files through the API without the requirement to tweak the Apache configuration files. Routes to the static files tree are automatically loaded from a specially crafted file the plugin authors need to include in the distributed .kpz files.
Warning: Care should be taken when installing any plugins and only plugins you trust should be used.a
[23050] Add hook to add a tab in intranet biblio details page
This new feature allows plugin authors to add additional tabs to the intranet biblio details page. The new
intranet_catalog_biblio_tab
method which should return an array ofKoha::Plugins::Tab
objects is introduced.Warning: Care should be taken when installing any plugins and only plugins you trust should be used.
[23237] Add support for [% INCLUDE %] in plugin templates
The new feature allows plugin authors to use template
[% INCLUDE %]
directives in their templates. It does so by introducing a new variable,PLUGIN_DIR
, allowing the template engine to locate the includes.Usage:
[% INCLUDE "$PLUGIN_DIR/header.tt" %]
Warning: Care should be taken when installing any plugins and only plugins you trust should be used.
[16825] Add API route for getting an item
Sponsored by Koha-Suomi Oy
[17003] Add API route to get checkout's renewability
[23321] Add 'cash registers' to the accounts system
Sponsored by Cheshire Libraries Shared Services and PTFS Europe
This new feature adds the ability to define cash registers in Koha and assign transactions to them. It introduces the new
UseCashRegisters
system preference which when enabled will expose the cash register management screen under the administration area and also require a cash register to be associated with any transaction of the payment typeCASH
.
[13937] Add an Elasticsearch-compatible Z39.50/SRU daemon
Sponsored by National Library of Finland
This development allows libraries wishing to run Elasticsearch but also serve as a public SRU/Z39.50 gateway to do so without running Zebra in parallel.
[20595] EDI: Add support for LRP (Library Rotation Plan) for Koha with Stock Rotation enabled
Sponsored by PTFS Europe
This enhancement allows items to be automatically added to rotas at acquisition time by using the LRP (Library Rotation Plan) field in EDI.a
[23522] Show "Actual price" in basket when available
Sponsored by Virginia Tech
[18928] Move holdallowed
, hold_fulfillment_policy
and returnbranch
into the circulation_rules
table.
Reports note: This changes the database schema, reports referencing the
default_branch_circ_rules
,default_circ_rules
,default_branch_item_rules
orbranch_item_rules
tables will need to be updated
[18930] Move 'refund lost item fee rules' into the circulation_rules
table
Reports note: This changes the database schema, reports referencing the
refund_lost_item_fee_rules
table will need to be updated
[22563] Convert lost handling to use 'status' instead of multiple accounttypes
Reports note: The
accounttype
for lost item fees has been updated from 'L' to 'LOST' and for lost item returned credits it has been updated from 'CR' to 'LOST_RETURNED'. Thestatus
field is now used to track the reason why an 'OVERDUE' fee has stopped incrementing and it may include 'LOST'
[22610] SIP Payment Types should be moved out of accountype
Reports note: SIP2
accounttypes
have been deprecated in favour of using standard accounttypes across transactions in the accountlines. Reports should be updated to usepayment_type
to distinguish between the different SIP2 payment type as required.
[22721] Normalize GetMarcFromKohaField calls
[23580] Add C4::Context->yaml_preference
This trivial patch adds a convenient way to retrieve YAML-based system preferences in the code, avoiding the need to handle the decoding in each place they are used.
[23623] Use the new API and remove /svc scripts for privacy settings
[23770] Add Koha::Object(s)->to_api method
Sponsored by ByWater Solutions
[23793] Add an EmbedItems RecordProcessor filter for MARC::Record objects
[23146] Add support for Basic auth on the OAuth2 token endpoint
Sponsored by ByWater Solutions
This patchset adds flexibility to the OAuth2 implementation regarding how the parameters are passed on the request. The original implementation of OAuth2 only contemplated the option to pass the client_id and client_secret parameters on the request body. It is very common that clients expect to be able to pass them as a Basic authorization header.
[15497] Limit item types by library
Sponsored by Central Kansas Library System, Northeast Kansas Library System and South East Kansas Library System
[17178] Add a popup/keyboard shortcuts for diacritics and symbols in the advanced cataloging editor
Sponsored by Round Rock Public Library
[23602] Library limitations should display in the item types table
[14697] Extend and enhance "Claims returned" lost status
Sponsored by Fargo Public Library and North Central Regional Library System
This enhancement extends the "Claims returned" lost status and allows staff to track items that patrons claim to have returned. Items are marked as "Claims returned" from the checkout page in the staff side.
There are 3 new systems preferences to set for this functionality to work:
ClaimReturnedChargeFee
,ClaimReturnedLostValue
andClaimReturnedWarningThreshold
[17492] Show warning if patron's age is out of category limits
This development adds a warning at checkout if a patron is found to have an age that is outside their categories age range and allows the staff user to immediately update the patrons' category from the warning dialogue.
[20194] Display both biblioitems.itemtype and items.itype in circulation screens
[17168] Add a command line script for updating patron category based on status
Sponsored by Round Rock Public Library
These patches introduce a new script to replace the
j2a.pl
script with a more flexible set of options.
misc/cronjobs/update_patrons_category.pl
can now be used to update patrons who are older or younger than their patron categories to a category chosen by the user.Additionally, this script allows users to specify a fine total to update patrons, to use any specified borrowers field, and to run by category and/or branch.
The intention here is to assist in automating updating patrons for schools or libraries where patrons are regularly changed - patrons with fines can be moved to 'probational statuses' or patrons without fines can be moved to 'privileged statuses'.
The flexibility should allow for various workflows to be automated via cronjob.
[22509] Add a script to generate MARC fields containing date formatted strings
Sponsored by Orex Digital
[23346] Add without-db-name parameter to koha-dump
This enhancement is the first step in allowing a koha database dump file to be restored into another koha instance.
One can now pass the
--without-db-name
option tokoha-dump
to attain a zipped sql dump with no longer contains theCREATE DATABASE
andUSE
statements within the restore file.
[6759] Use a different account type for account renewals than for new accounts
This enhancement makes account renewal charges distinct from initial account registration charges.
Reports note: Prior to this patch both account creations and account renewals would result in an accountline with accounttype
A
; After this patch account creations will result in an accountline with accounttypeACCOUNT
and account renewals will result in ana ccountline with accounttypeACCOUNT_RENEW
.
[22627] Rephrase 'your fines and charges' tab in OPAC
Sponsored by Catalyst
[23049] Replace MANUAL_INV authorised value with a dedicated table
This patchset moves the
MANUAL_INV
authorized values into their own table and adds an interface into the administration pages to allow the addition and modification of such account types.This serves as the foundation for enhancing the accounts system and leads to clearer code and more consistent data via database-level constraints.
Reports note: Reports will need to be updated to look in the new debit_type_code field for accountlines of type 'debit' and use the updated coded values.
[23805] Add a dedicated credit_types table
This patchset moves the remaining accounttypes, all of which should be credits after bug 23049, into their own table.
This serves as the foundation for enhancing the accounts system and leads to clearer code and more consistent data via database-level constraints.
Reports note: Reports will need to be updated to look in the new credit_type_code field for accountlines of type 'credit' and use the updated coded values.
[15260] Option for extended loan with useDaysMode
Sponsored by Cheshire East Council, Cheshire West and Chester Council, Newcastle City Council and Sefton Council
The
useDaysMode
system preference has been enhanced to include an additional option.This allows libraries to dictate that if the library is closed on the usual due date, the loan period should be pushed forward to the next open day which is the same day of the week.
For example : If an item should be due back on a Tuesday but that particular Tuesday is closed, then instead of it being due back the Wednesday (usual behaviour when due date is pushed forward to next open day), it would actually be due back the next available open Tuesday.
Note: This preference setting only works in multiples of 7.
[20364] Show languages from MARC21 field 041 in intranet
This patch adds language data from the 041 field of bibliographic records to both the search results and details pages of the staff client.
[20434] UNIMARC update from IFLA for existing Koha installations
[23903] Replace OPAC icons with Font Awesome
This patchset updates the majority of icons in the opac to use Font Awesome icons. It improves the consistency of icons, icon alignment and also gives a minor performance boost in opac display.
[23955] Replace famfamfam icon in OPAC holds template
[23697] Add auto complete for patron search in patron module
This enhancement adds an optional auto-complete function to the patron search field when in the patrons module.
The
CircAutocompl
system preference is renamed toPatronAutoComplete
and use for both the circulation and patrons module auto-complete.
[21073] Improve plugin performance
Before this patch, whenever a plugin hook was reached in koha code we would iteratively load plugins looking for one that may support the method. This patch adds database level caching of this data so we do one database call instead of iteratively calling 'load'.
[23191] Administrators should be able to install plugins from the command line
This patch adds a new script
misc/devel/install_plugins.pl
which allows system administrators the option of installing plugins via the command line as opposed to requiring the web side UI.
[23213] Add hook to OPAC payments to allow plugins to set minimum payment threshold
[23206] Batch patron modification from reports which return cardnumber
This enhancement adds
Batch patron modification
to the available options display when a report outputs a list of borrowernumbers or cardnumbers.
[23389] Add 'All' option to report value dropdowns
This enhancement adds the ability to optionally include an
all
option in report placeholders allowing for an 'All' option to be displayed in filter select lists.Usage:
WHERE branchcode LIKE <<Branch|branches:all>>
[23390] Add placeholder syntax for column names
This enhancement allows for renaming columns used to trigger batch modification actions in reports. Before this patch, a column had to be called 'itemnumber' to be sent from reports to batch modification. With this enhancement, you can specify
[[itemnumber| Koha_internal_id]]
to allow for a clearer name for the end-user and to allow translation of terms like 'itemnumber' while preserving the batch modification functionality.
[20292] Filter/censor info sent via SIP
Sponsored by Duchesne County Library and Uintah Library System
This enhancement allows the administrator to set if, and which, fields should not be sent to third-party SIP2 clients for privacy reasons.
[20954] Add ability to set syspref overrides in SIP as we can in Apache
Sponsored by South East Kansas Library System
[22540] Add ability to place holds using SIP CLI emulator
[17851] Add Elasticsearch config to koha-conf.xml
Sponsored by Koha-Suomi Oy
[20334] Elasticsearch - Option for escaping slashes in search queries
[23435] Add multiple copies of an item when receiving in serials
Sponsored by Brimbank City Council
[11529] Add subtitle, medium and part fields to biblio table
Sponsored by National Library of Finland
Keywords to MARC mapping functionality has been replaced with additional Koha fields in the bibliographic framework.
The keyword mapping only offered a single field, subtitle, and the information was always retrieved from the MARC record, which made it relatively slow. The subtitle and other relevant fields are now available as normal Koha fields:
biblio.medium - Medium information (MARC 21: 245h, UNIMARC: 200b) biblio.subtitle - Subtitle (MARC 21: 245b, UNIMARC: 200e) biblio.part_number - Part number (MARC 21: 245n, UNIMARC: 200h) biblio.part_name - Part name (MARC 21: 245p, UNIMARC: 200i)
The subfields in the default framework are automatically updated to include these new fields unless they are already mapped to another Koha field.
Important note: misc/batchRebuildBiblioTables.pl should be run, after this enhancement is applied, to populate the fields in the database, and it will take some time for larger databases.
[21574] Local use system preferences page doesn't have the system preferences menu
[21824] Add ability to format dates in various formats in templates
This patchset allows end-users to use advanced date formatting options within template toolkit based notices and slips.
[21852] Add more columns and column configuration to overdues report
[22996] Move barcode separators to a preference
Adds preference
BarcodeSeparators
NOTE: If you currently depend on a comma, semicolon, pipe character or hyphen as a barcode separator within inventory tool, please ADD them to this new preference. The default behaviour is set back to a carriage return, linefeed or whitespace now.
[23279] In news management interface, sort news by publication date descending
(This list includes all bugfixes since the previous major version. Most of them have already been fixed in maintainance releases)
[18743] Filter suggestion lists correctly for IndependentBranches
Sponsored by BULAC
[21316] Adding controlfields to the ACQ framework causes issues when adding to basket
[13958] Add a suspensionsCalendar syspref
Sponsored by Universidad Nacional de Córdoba
Before 18.05, suspension expiry date calculation didn't take the calendar into account. This behaviour changed with bug 19204, and some libraries miss the old behaviour.
These patches decouple overdue days calculation configuration (
finesCalendar
) from how the expiry date is calculated for the suspension through a new system preference:SuspensionsCalendar
, that has the exact same options but only applies to suspensions. On upgrade, the new preference is populated with the value fromfinesCalendar
, thus respecting the current configuration.
[20086] AddRenewal is not executed as a transaction and can results in partial success and doubled fines
[23293] OPACFineNoRenewals always compares against 'balance' not 'outstanding'
The patchset adds a new system preference,
OPACFineNoRenewalsIncludeCredits
, to control whether theOPACFineNoRenewals
function uses the account balance or account amount outstanding for calculation.
[23382] Issuing rules failing after bug 20912
(
[22210] ManaKB should not require firstname and lastname for signup
This changes the Mana registration form to make it easier for organizations to register. It now only requires name and email address, rather than first name, last name and email address.
[22915] Cannot subscribe to Mana-KB
This fix updates the Mana server URL in etc/koha-conf.xml so that it uses the correct URL - https://mana-kb.koha-community.org.
[23194] Public notes items in the OPAC should allow for HTML tags
Since 18.11, item.itemnotes content is escaped so any HTML tag would appear broken. It is now allowed again, hyperlinks for example.
[23225] OPAC ISBD view returns 404 when no item attached
[23626] Add a system preference to limit the number of rows of data used when charting or exporting report results
Sponsored by Fenway Library Organization and Higher Education Libraries of Massachusetts
[23730] Exporting reports is broken
[23630] Elasticsearch indexing is removing field 999
In Koha::SearchEngine::Elasticsearch::Indexer::update_index() first arg record ids is now mandatory
[23719] Record matching for authorities using defined fields is broken under ES
(This list includes all bugfixes since the previous major version. Most of them have already been fixed in maintainance releases)
[22862] It should be possible to paste formatted phone numbers into the SMS messaging number field
This bugfix improves the likelihood of pasted patron phone numbers passing validation as we will now attempt to normalise out illegal characters often used to human-friendly formatting.
[23037] Henry Bolshaw is missing from the contributors list
[20780] EDI: Add support for 'AcqItemSetSubfieldsWhenReceived'
EDIFACT receipting of items should now respect the
AcqItemSetSubfieldsWhenReceived
system preference
[21580] Order creation for EDIFACT vendor fails
[7890] Required fields in the MARC editor should be highlighted
This bugfix modifies the basic MARC editor so that required fields have the standard "Required" label on them instead of a small red asterisk.
[21518] Material type "three-dimensional artifact" displays as "visual material"
[16284] With CheckPrevCheckout used, check only the item for previous checkout if biblio is serial
Prior to this patch the
CheckPrevCheckout
functionality errantly included serial type records.
[18344] Overdue fines 'cap at replacement price' and 'cap by amount' should work together
[22617] Checkout notes pending dashboard link - error received even though manage_checkout_notes permission set
This fixes an error that occurs when an account with full circulate permissions (but not super librarian permissions) clicks on 'Checkout notes pending' and is then automatically logged out with the message "Error: you do not have permission to view this page. Log in as a different user".
[22927] Item improperly marked returned when changing damaged or withdrawn status
[21181] Cancel expired holds cronjob does not cancel holds in transit if ExpireReservesMaxPickUpDelay not set
This patch corrects a behaviour where an in transit hold would not be cancelled if even the patron specified they did not need the hold after a certain date. In some cases they would receive a notice to pickup a hold they no longer wanted.
Now these holds will be cancelled while in transit, and should be routed to their home location when checked in with no notice to the patron.
[22128] koha-remove fails mysql ERROR 1133 (42000) at line 2: Can't find any matching row in the user table
[22099] "List requests" button displays when listing requests
Sponsored by Catalyst
[22280] The ILL module assumes every status needs a next/previous status
[23034] Warning when in Mana KB settings Auto subscription sharing is unchecked
Sponsored by The National Library of Finland
[23075] Incorrect URL should have a meaningful error message
This enhancement displays a more meaningful error message if an incorrect Mana KB service URL is used in the koha-conf.xml configuration file (for example, if http is used instead of https), rather than the direct output from the failed json parse.
[23130] Incorrect alternative mana server URL in etc/koha-conf.xml
This fix updates the alternative Mana KB server URL in etc/koha-conf.xml to https://mana-test.koha-community.org. If the updated URL is used the account creation request is successful and doesn't cause any error messages.
[21343] Automatic renewal cronjob doesn't send notices according to patron language preference
Sponsored by Lund University Library
[22744] Remove confusing 'Do not notify' checkboxes from messaging preferences
[23076] Include OpacUserJS on OPAC maintenance page
This fix allows the OPAC maintenance page to use JavaScript included in the OPACUserJS system preference.
[23078] Use Koha.Preference in OPAC global header include
[23625] ArticleRequestsMandatoryFields* only affects field labels, does not make inputs required
Sponsored by California College of the Arts
[23648] The logged in link (class "loggedinusername") needs data-patroncategory
[23901] Fix js error sms_input is null in opac-messaging.tt
Sponsored by Koha-Suomi Oy
[23968] OPACMySummaryNote does not work
[21390] Self registration verification emails should send immediately
Sponsored by Goethe-Institut
[21939] Permission for holds history tab is too strict
[23624] Count rows in report without (potentially) consuming all memory
Sponsored by Fenway Libraries Online, Fenway Library Organization and Higher Education Libraries of Massachusetts
[23812] Download icon is an upload icon
[11492] Receiving a serial item causes routing list notes to be lost
Sponsored by Plant and Food Research Limited
[23680] Can't open 'Edit items' or 'Add item' links in new tab - tab is closed immediately
Sponsored by Gothenburg University Library
This fixes a problem where the pop-up window or tab immediately closes when attempting to edit or add a bibliographic item.
[23689] Terminology: Branches limitations should be libraries limitations - Authorised Values
[8558] Better confirmation message for importing frameworks
Sponsored by Catalyst
[22867] UniqueItemFields preference value should be pipe-delimited
[22799] Batch item modification is case sensitive
Sponsored by South Taranaki District Council
[23006] Can't use inventory tool with barcodes that contain regex reserved characters ($,...)
[23242] Error when adding new Z39.50/SRU server in DB strict mode
AllowPatronToSetFinesVisibilityForGuarantor
The Koha manual is maintained in Sphinx. The home page for Koha documentation is
As of the date of these release notes, only the English version of the Koha manual is available:
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 19.11.00 is
Release Manager: Martin Renvoize
Release Manager assistants:
QA Manager: Katrin Fischer
QA Team:
Topic Experts:
Bug Wranglers:
Packaging Manager: Mirko Tietgen
Documentation Manager: David Nind
Documentation Team:
Translation Managers:
Release Maintainers:
We thank the following libraries who are known to have sponsored new features in Koha 19.11.00:
We thank the following individuals who contributed patches to Koha 19.11.00.
We thank the following libraries, companies, and other institutions who contributed patches to Koha 19.11.00
We also especially thank the following individuals who tested patches for Koha.
We regret any omissions. If a contributor has been inadvertently missed, please send a patch against these release notes to koha-patches@lists.koha-community.org.
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 19.06.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 27 Nov 2019 15:10:11.