Koha Upgrades

19.05 Upgrade Notes and Webinars

Important Links

Listed below are the Features and Enhancements for 19.05, in addition to the 15 features, and 246 enhancements, there were also 437 bugfixes! Way to go Koha Community and thank you! Everyone who has contributed to this version has been named on the 19.05 Release Notes link- this couldn't have been done without each and every one of them!

Overview Blog Posts and Videos

Monday Minutes: New Cataloging Look

Email Library When Purchase Suggestion is Made

Fines Data in 19.05

Monday Minutes: Accounting Changes Coming

Setting Up Mana

Holds Rules Changes in 19.05

Using Mana for Serial Subscriptions

Using Mana to Import Reports into Koha

Monday Minutes: Introducing Mana

Monday Minutes: Password Changes by Patron Category

Monday Minutes: UX Staff enhancements in 19.05

Monday Minutes: GDPR

Monday Minutes Streamlining the Checkout Process

Self Check-Out Module Updates for Koha

Advanced Editor Keyboard Shortcuts Can Now Be Customized!

Recorded Upgrade Webinars

Questions & Answers from Upgrade Webinars

[17854] New print slip and close button

Q: And that printer icon is there w/o activating any sys prefs?

A: No, this printer icon will appear if your library uses the system preference: displayclearscreenbutton.

Q: Does that print a quick slip?

A: This slip will be the Issue Slip, not the Quick Slip. A suggestion from another partner would be to reverse the layouts of your slip and quick slip.

[21312] Show lockout on Patrons form

Q: Is there a way to unlock patron account without changing password?

A: Unfortunately not.

Q: How do you unlock?

A: You change the password of the patron.

Q: Does the "Account has been locked" only display on the Details tab.

A: Yes, it will only display on the detail page currently.

Q: If they're locked, they can't log into the OPAC

A: Correct. This lock out is from too many attempts at their password, so they can’t access their account.

[22045] Cataloging UX enhancement – Improve access to tabs

Q: Are the floating subfields at the top a system preference or will that always be there for everybody? Is having them an option?

A: No this is not a system preference. This is a change for all with the introduction of Koha 19.05.

If using the Language instead of the field numbers (eg Title instead of 200 or 2) can you have both at the same time? (eg Title AND 200 (or 2).

A: Yes, the text is customizable in the Jquery. See this bug, the jquery is in comment 26.

[12759] Add ability to pass list contents to batch record modification/deletion tools

Q: Can this happen in item modification too?

A: Currently this is only working in the record modification/deletion.

[22809] Move “invoice” from a template to a slip & [22761] Move “fee receipt” from template to a slip

Q: Does this new template exist as a template toolkit only? Or will the angle bracket content work in this new template?

A: These slips will only work in Template Toolkit.

[20436] Add ability to specify item types for longoverdue cron

Q: But there is currently no way to set different overdue notice triggers for different item types, right?

A: No, this is just for the long-overdue cron, not the notice triggers at this point. There is a bug in the community that is working on doing exactly this. [Bug 12772]

[15496] Delete the bibliographic record after moving the last item to another record(s)

Q: Will this delete the Biblio if there are unfilled requests on the record you're moving the item from?

A: Yes, this will still delete the Biblio record.

[7088] Ability to renew items on hold with override

Q: Is that override function available also from the patron account page?

A: Yes, this can be overridden through the patron detail page.

[21754] Outstanding transfers canceled when item marked as lost

Q: When a transfer is canceled is anyone notified?

A: No. The hold is still there.

Helpful SQL report for Unfillable Holds for situations like this:

SELECT concat(surname,firstname) as borrower_name, borrowernumber, cardnumber, biblio.title, itemtype, reservedate, reserves.branchcode, reserves.biblionumber

FROM reserves LEFT JOIN biblio USING (biblionumber) LEFT JOIN ( SELECT itemnumber, biblionumber FROM items WHERE damaged = 0 AND itemlost=0 AND withdrawn = 0 ) items USING (biblionumber) left join borrowers using (borrowernumber)

WHERE items.itemnumber IS NULL and reserves.branchcode like <<Select Library|branches>>

: Do you have a choice as to where the item shows it is when it is marked lost, or will it always stay at the last known location?

A: It will always stay at the last known location

[20837] CanItemBeReserved should follow ReservesControlBranch and not CircControl

Q: Link to this blog post to verify that your library needs to look into this: Holds Rules Changes in 19.05

[14576] Allow automatic update of location on checkin

Q: If you are using the cart feature, will this preference be set when upgraded, or do we have to set it up?

A: This should be done for you. However, if you do find that it is not, please submit a ticket or give us a call!

[11969] Show patrons star rating on their reading history

Q: I don’t see star ratings in my reading history. Where do I see that??

A: You won’t see that until 19.05.

[21336] GDPR: Handle unsubscribe requests automatically by optional (administrative) lock, anonymize and remove

Q: What does GDPR stand for?

A: General Data Protection Regulation

Q: Does all that privacy stuff come up when a patron logs in for the first time?

A: Your library would need to have the system preference: GDPR_Policy is set to enable. And yes, then if it is set to enable, they would need to agree.

Q: But what if the patron never logs in or uses the OPAC? They wouldn’t ever agree to the GDPR but they wouldn’t be deleted from Koha either. Correct?

A: That is correct.

Q: Does it automatically have a default timeline for those three steps or does each library have to set that up?

A: Default would be nothing is set up - the library would need to add the timeline.

Q: Wait so saying they agree to GPR means they are automatically anonymous?

A: No, if you do want the patrons that don’t consent to your library’s privacy rules to be anonymized, then your library would fill out these system preferences included in the bug. Nothing happens to the patrons that don’t agree unless you fill out values.

Q: If a patron submits an unsubscribe request and they have items checked out or have fines/fees, does this anonymize and delete the patrons?

A: If the patron has items checked out, it will not anonymize/delete that patron. If a patron owes money, it will anonymize/delete that patron.

[10796] Allow password changes for logged in OPAC users by patron category

[21890] Allow forgotten password functionality to be limited by patron category

Q: What’s the difference between change and reset for passwords in the OPAC?

A: A patron can change their password once logged into the OPAC. If a patron has forgotten their password, they can reset their password via email.

[22318] Extend Koha news feature to include other content areas

Q: When those other things move, are we going to have to reformat the stuff we already have in HTML?

A: Libraries should not have to reformat this. It should move over correctly, we did test this and found this to work accurately. If you do have a format issue, please submit a ticket.

[21578] ‘Pay fines’ tab incorrectly describes the purpose

Q: What was the tab “Transactions” called in 18.11?

A: Account

[17171] Add a syspref to allow currently issued items to be issued to a new patron without staff confirmation

Q: Will the default be automatically set to "do", or do we have to change that when we get the update?

A: The system preferences “AutoReturnCheckedOutItems, are set to “DO” as a default. That would say, Do require librarians to manually confirm a checkout where the item is already checked out to another patron.

: Still wondering how Self-check will respond to the last example - with a Hold on the item?

A: This would depend on whether the library has the system preference: AllowItemsOnHoldCheckoutSCO, is set to allow or don’t allow. This is a separate system preference.

[11373] Add “change calculation” feature to the fine payment forms

Q: Is the collected amount and change logged?

A: No, this is not logged anywhere, just an easy way for the circulation desk to make a change.

George from NEKLS offered to write some jQuery to remove that." That jQuery is at Koha Wiki Page.

[11375] Improve patrons permissions display

For those that use the jquery to quick set the permissions, I updated it for this new layout.


Mana- General

Q: Is it required that we use Mana?

A: No.

Q: How do we contact about being a curator with Mana?

A: There is currently a bug in Koha community, https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=23739, which I would suggest commenting on. Or emailing Paul Poulain directly: paul.poulain@biblibre.com

Mana -specific to Serials

Q: So we have a few journals that we know the numbering pattern is wrong- would I be able to go into those records, and then use Mana to over right the patterns that are wrong?

A: Editing an existing subscription will allow you to have Koha check for a subscription pattern in Mana-and if you choose to use this pattern, you can change your existing one in Koha.

Mana- specific to Reports

Q: Does this preserve line breaks we put in, or does it automatically throw everything into one continuous line?

A: At this point, we are seeing reports come over with spacing issues.

Q: If you edit a report after you save it, do you have to resubmit it?

A: You can share this new report and comment on the other one, however, if both are good reports, they both can be shared in Mana.

[22757] Use YAML CodeMirror higlighting on YAML preferences

Q: What does YAML stand for?

A: Yet Another Markup Language. More information here: https://en.wikipedia.org/wiki/YAML

Comment from a partner:
Codemirror makes the data in the input boxes non-searchable with the browser's search functions.

** Update about searching in CodeMirror system preferences:

If you scroll down to the bottom of the text box, this will load the entire page, and you will be able to do a Ctrl -F to search.

If in Firefox, you can (without your cursor in the box) type / and the word you are looking for. Example: /fine

[21803] Redesign authorized values interface

Q: There's no way at present to add or edit those descriptions, right?

A: No, a library currently can't edit the Authorized Values descriptions at this time. Also if a new authorized value is created, there is no way to add a description.

Q: Does the search bar on the authorized values table search the descriptions?

A: Yes, it does.

[10345] Copy number should be incremented when adding multiple items at once

Q: What if you don't start at #1 - What if you start with copy 22 or something like that?

A: Yes, this will increment from the copy number you start with.

[18166] Show internal and vendor notes for received orders

Q: Can we hide the internal note?

A: To clarify, the configure columns — Catalog — acquistiondetails-table will let you hide the “order_internal note” column in the biblio detail screen.

[21411] Advanced cataloging editor – rancor – Allow configuration of Keyboard shortcuts

Q: Can you turn off the basic editor?

A: Not currently.

Q: Can we add more shortcuts?

A: Not currently. But you can modify existing shortcuts.

Misc Questions

Q: What is the bug about the display missing the title at checkout?

A: This bug is [23938]

Q: We noticed something that we have not before, the last patron with the little x by it. Could you please explain that? What is it?

A: This is a system preference, showlastpatron, which is on your current Koha system. Just turn this on, and you will see the button on the page, show the last patron to go to the last patron’s account screen you were on.

Q: I don't see this on the agenda, but is that Currently Closed at the top (of the OPAC) something new?

A: Lucas wrote a blog about this feature, that blog can be found here: How to set Open/Close Hours on the Koha OPAC


  • [8995] Show OpenURL links in OPAC search results
  • [11969] Show patrons star rating on their reading history
  • [12318] Show subscription shelving location on subscription tabs
  • [14272] Allow OPAC to show a single news entry
  • [14385] Extend OpacHiddenItems to allow specifying exempt borrower categories
  • [21399] Sort patron fines in OPAC by date descending as a default
  • [21533] Do not allow password recovery for administrative locked patrons (see 21336)
  • [21850] Remove search request from page title of OPAC result list
  • [21871] Show authority 856 links in the OPAC
  • [22029] Remove Google+ from social links on OPAC detail
  • [22102] Markup fixes for OPAC article request page
  • [22568] Replace RSS icon in the OPAC with Font Awesome
  • [22576] OPAC password change text changes
  • [22588] Simplify getting account information in opac and self checkout module
  • [22638] Self checkin CSS update
  • [22645] Add ‘ISSN’ option to OPAC’s basic search
  • [22657] Remove JavaScript from OPAC suggestion validation of required fields
  • [22803] Set dataTable width issue


  • [3766] Cities/Towns only on one address
  • [10796] Allow password changes for logged in OPAC users by patron category
  • [17854] New Print slip and close button next to Close button
  • [21312] Show lockout on Patrons form
  • [21336] GDPR: Handle unsubscribe requests automatically by optional (administrative) lock, anonymize and remove
  • [22198] Add granular permission setting for Mana KB
  • [22505] Add column configuration to patron list table
  • [22594] Validate SMS messaging numbers using the E.164 format

Fines and Fees

  • [11373] Add “change calculation” feature to the fine payment forms
  • [19489] Detailed description of charges on Accounting tab
  • [21578] ‘Pay fines’ tab incorrectly describes the purpose
  • [21683] Remove accountlines.accountno
  • [21844] Add callnumber to fines descriptions
  • [21918] Clean up pay fines template
  • [22148] Cancelling some payments/writeoffs redirects to unexpected page
  • [22674] Change wording of payments in the GUI


  • [19469] Add ability to split view of holds view on record by pickup library and/or itemtype
  • [19630] “Hold is suspended” message appears in barcode field in holds table
  • [19770] Add cardnumber to holds awaiting pickup screen and add classes to borrower info
  • [20421] Apply CheckPrevCheckout logic when placing a hold on the staff client
  • [21070] request.pl details links to biblio instead of moredetail.pl for that item
  • [22372] Add shelving location to Holds awaiting pickup report
  • [22631] Make links on barcode on hold summary page consistent (bug 21070)


  • [15496] Delete bibliographic record after moving last item to another record(s)
  • [20128] Permission for advanced editor
  • [21411] Advanced cataloging editor – rancor – Allow configuration of Keyboard shortcuts
  • [21826] Automatic authority record generation improvements
  • [22045] Cataloging UX enhancement – Improve access to tabs
  • [22525] Navigation arrows on the bottom of Cataloging search pages
  • [19164] Allow MARC modification templates to be used in staged MARC imports
  • [21899] Update MARC21 frameworks to Update 27 (November 2018)


  • [20912] Rental fees based on time period
  • [7088] Cannot renew items on hold even with override
  • [10300] Allow transferring of items to be have separate IndependentBranches syspref
  • [14576] Allow automatic update of location on checkin
  • [17171] Add a syspref to allow currently issued items to be issued to a new patron without staff confirmation
  • [17353] Add phone number column to checkout search
  • [18816] Make CataloguingLog work in production by preventing circulation from spamming the log
  • [19066] Add branchcode to accountlines
  • [20450] Add collection to list of items when placing hold on specific copy
  • [21754] If an item is marked as lost, any outstanding transfers upon it should be automatically cancelled
  • [22761] Move “Fee receipt” from template to a slip
  • [22809] Move “INVOICE” from template to a slip


  • [4833] Show acquisition information when ordering from a suggestion
  • [16939] Making all ‘add to basket’ actions buttons
  • [18166] Show internal and vendor notes for received orders
  • [18952] Show internal note in acquisitions details tab
  • [21308] Show the search filters used on the search results page for acquisitions history searches
  • [21364] Allow closing basket from vendor search/view
  • [22556] Add ability to quickly filter funds/budgets by library on the Acquisitions home page
  • [22664] Link basket name and basket group name instead of the, often short, basket numbers


  • [22408] Subscription entry form cleanup


  • [12759] Add ability to pass list contents to batch record modification/deletion tools


  • [8775] Add collection column to built in ‘Items lost’ report
  • [22856] Show SQL code button should trigger CodeMirror view

Rest API

  • [13895] Add routes for checkouts retrieval and renewal
  • [16497] Add routes for library retrieval, update and deletion
  • [17006] Add route to change patron’s password (authenticated)
  • [19661] Add route for fund retrieval
  • [22061] Add route to change patron’s password (public)
  • [22132] Add Basic authentication to the REST API
  • [22206] Add routes to enable suspension or resumption of holds
  • [20006] Adapt /v1/holds to new naming guidelines
  • [22227] Make GET /cities staff only


  • [19619] Add support for SIP2 field CM ( Hold Pickup Date ) to Koha
  • [22014] Add ability to send “00” in SIP CV field on checkin success
  • [22016] Always send CT field for SIP checkin, even if empty


  • [16149] Generate and send custom notices based on report output
  • [20478] Advance notices: send separate digest messages per branch
  • [21241] Set suggestion notices message_transport_type to sms if syspref is enabled and patron has an smsalertnumber but no email address

Staff Client

  • [12283] Set autocomplete=off for patron search input
  • [21582] Use CodeMirror for *UserJS & *UserCS


  • [18589] Show ILLs as part of patron profile
  • [18837] Add an unmediated Interlibrary Loans workflow
  • [20563] ILL request list gives no indication of source and/or target
  • [20581] Allow manual selection of custom ILL request statuses
  • [20600] Provide the ability for users to filter ILL requests
  • [20639] Allow setting a default/single backend for OPAC driven requests
  • [20640] Allow migrating a request between backends
  • [20750] Allow timestamped auditing of ILL request events
  • [21063] Allow columns in intranet ILL request datatable to be customisable


  • [14457] Integrate LIBRIS spellchecking
  • [22418] Authority link magnifying glass icon doesn’t appear for 655 subject tags
  • [22424] Add search by all lost statuses to item search
  • [22649] Add item type to item search results

Searching Elastic

  • [18235] Elastic search – Configurable facets
  • [18213] Add language facets to Elasticsearch
  • [21872] Elasticsearch indexing faster by making it multi-threaded


  • [18661] Make “Replace only included patron attributes” default on patron import
  • [19417] Improve display of errors from background job during stage for import
  • [19722] Add a MaxItemsToDisplayForBatchMod preference
  • [21216] Notices – Add filter/search options to table
  • [22175] Make stock rotation table sortable
  • [22318] Extend Koha news feature to include other content areas

Web Services

  • [17047] Mana Knowledge Base : Data sharing
  • [19380] Add transfer informations in ILS-DI GetRecords response
  • [19945] ILSDI – Return the reason a reserve is impossible

Self Checkout

  • [14407] Limit web-based self-checkout to specific IP addresses
  • [18251] SCO alerts – need a trigger for successful checkouts
  • [19458] Self-check module highlighting
  • [21772] Add holds and account information tab to the SCO module
  • [22538] Add a noticeable alert about waiting holds

Architecture, Internal & Plumbing

  • [18925] Move maxissueqty and maxonsiteissueqty to circulation_rules
  • [19302] Pass objects to IsAvailableForItemLevelRequest
  • [21002] Add Koha::Account::add_debit
  • [21206] C4::Items – Remove GetItem
  • [21547] Use set_password in opac-passwd and remove sub goodkey
  • [21720] Update C4::Circulation::AddIssuingCharge to use Koha::Account->add_debit
  • [21721] Update C4::Circulation::AddRenewal to use Koha::Account->add_debit
  • [21722] Update C4::Accounts::chargelostitem to use Koha::Account->add_debit
  • [21727] Add Koha::Account::Line->adjust
  • [21728] Update C4::Reserves::ChargeReserveFee to use Koha::Account->add_debit
  • [21747] Update C4::Overdues::UpdateFine to use Koha::Account->add_debit and Koha::Account::Line->adjust
  • [21756] Deprecate C4::Accounts::manualinvoice (use Koha::Account->add_debit instead)
  • [21757] Patron detail script (moremember.pl) cleanup
  • [21875] Handling subject line in Letters.pm
  • [21890] Allow forgotten password functionality to be limited by patron category
  • [21896] Add Koha::Account::reconcile_balance
  • [21912] Koha::Objects->search lacks tests
  • [21980] Add some new Exceptions for Koha::Account methods
  • [21992] Remove Koha::Patron::update_password
  • [21993] Be userfriendly when the CSRF token is wrong
  • [21998] Add pattern parameter in Koha::Token
  • [21999] C4::Circulation::AddIssue uses DBIx::Class directly
  • [22003] Remove unused subroutines displaylog and GetLogStatus from in C4::Log
  • [22026] Remove use Modern::Perl from Koha::REST::classes
  • [22031] C4::Auth->haspermission should allow checking for more than one subpermission
  • [22047] set_password should have a ‘skip_validation’ param
  • [22048] Use set_password instead of update_password in the codebase
  • [22049] MarkIssueReturned should rely on returndate only
  • [22051] Make Koha::Object->store translate ‘Incorrect value’ exceptions
  • [22127] Update dateaccessioned value builder
  • [22144] Add method metadata() to Koha::Biblio
  • [22194] Add Koha::Exceptions::Metadata
  • [22311] Add a SysPref to allow adding content to the #moresearches div in the opac
  • [22363] Move C4::Logs::GetLogs to Koha namespace
  • [22454] Add Koha::Item::hidden_in_opac method
  • [22455] Add Koha::Biblio::hidden_in_opac method
  • [22511] Koha::Account::Line->void loses the original type of the credit
  • [22512] accountlines.accountype mixes ‘state’ and ‘type’
  • [22516] accountlines.lastincrement can be removed
  • [22518] accounttype ‘O’ is still referred to but is never set
  • [22521] Convert fines handling to use ‘status’ instead of two accounttypes
  • [22532] Remove “random” from Z39.50
  • [22564] accounttype ‘Rep’ is still referred to but is never set
  • [22694] Add a method for checking OpacHiddenItems exceptions in Koha::Patron::Category
  • [22696] Simplify visibility logic in opac-ISBDdetail.pl
  • [22700] Make biblio_metadata prefetchable from Koha::Biblio
  • [22701] Make items prefetchable from Koha::Biblio
  • [22757] Use YAML CodeMirror higlighting on YAML preferences
  • [22765] Add class beside loggedinusername to indicate if logged in user is a superlibrarian

Command-line Utilities

  • [18562] Add koha-sip script to handle SIP servers for instances
  • [20436] Add ability to specify itemtypes for longoverdue.pl
  • [20485] Don’t account for items timestamps when combining “dont_export_items=1” and “date” in misc/export_records.pl
  • [22238] Remove koha-*-sip scripts in favor of koha-sip
  • [22580] Remove deprecated delete_expired_opac_registrations.pl cronjob

Course Reserves

  • [21446] Improve display of changed values on course reserves and show permanent location instead of cart


  • [21753] issuingrules.chargename is unused and should be removed
  • [22008] accountlines.manager_id is missing a foreign key constraint
  • [22155] biblio_metadata.marcflavour should be renamed ‘schema’
  • [22368] Table suggestions lacks foreign key constraints

System Administration

  • [3820] More detailed patron record changes log
  • [22053] Ability to disable some plugins
  • [22190] Add column configuration to patron category administration
  • [22191] Add column configuration to libraries administration

New System Preferences

  • AccountAutoReconcile
  • AllowRenewalOnHoldOverride
  • AutoReturnCheckedOutItems
  • AutoShareWithMana
  • EmailAddressForSuggestions
  • EmailPurchaseSuggestions
  • FallbackToSMSIfNoEmail
  • ILLModuleUnmediated
  • ILLOpacbackends
  • IllLog
  • IndependentBranchesTransfers
  • LibrisKey
  • LibrisURL
  • Mana
  • MaxItemsToDisplayForBatchMod
  • NoRenewalBeforePrecision
  • OPACOpenURLItemTypes
  • OPACShowOpenURL
  • OpacMoreSearches
  • OpenURLImageLocation
  • OpenURLResolverURL
  • OpenURLText
  • OrderPriceRounding
  • OverDriveUsername
  • PatronAnonymizeDelay
  • PatronRemovalDelay
  • RESTBasicAuth
  • RESTPublicAPI
  • SelfCheckAllowByIPRanges
  • SendAllEmailsTo
  • UnsubscribeReflectionDelay
  • UpdateItemLocationOnCheckin

To read more about this release see Jessie's recent blog post.

Read more by Kelly McElligott

Tags 19.05, upgrades