27 Nov 2020
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 20.11.00 can be downloaded from:
Installation instructions can be found at:
Koha 20.11.00 is a major release, that comes with many new features.
It includes 9 new features, 354 enhancements, 412 bugfixes.
A new 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.
Koha is continuously tested against the following configurations and as such these are the recommendations for deployment:
Additional notes:
[22417] Add a task queue
There are long standing issues in Koha when working under Plack. Some scripts are only running in CGI mode. In this first step we are introducing RabbitMQ (a message broker) to deal with asynchronous tasks.
In this first iteration we are adapting the batch update record tools (both biblio and authority) to use it. A list of the jobs that have been or is being processed is available, see the new view at /admin/background_jobs.pl.
[21946] Group circulation by item type
This feature adds the ability to define some itemtypes as 'parent' to other item types for defining circulation limits.
This allows to create 'groups' of related items types. E.g. - a library has both Blu-ray and DVD itemtypes - these can be grouped under the 'Media' itemtype. The checkout limit for Media will then apply to both Blu-ray and DVD.
So if a library says a patron can have 4 dvds - 4 blu-ray - and sets Media to have a limit of 4 then patrons can have up to 4 items of either type (e.g. 1 DVD, 3 blu-rays) but will be prevented from checking out more of either type by the limit on the parent.
Parent rules only apply to checkout limits.
[25534] Add ability to specifying and store a reason when cancelling a hold
This new feature adds an option to allow staff to add a reason for cancellation when cancelling a hold.
The new 'CANCELLATION_REASON' authorized value is used to provide a configurable pick list of reasons.
Optionally, the library may choose to define a 'HOLD_CANCELLATION' notice which will be sent whenever a cancellation reason is assigned.
[22818] ILL should be able to send notices
Sponsored by PTFS Europe
This patch adds the ability for ILL to send notices, both triggered by staff and triggered by events.
Staff can trigger notices to patrons from the "Manage ILL request" screen:
- ILL request ready for pickup
- ILL request unavailable
- Place request with partners
The following notices to staff are triggered automatically:
- Request has been modified by patron
- Request has been cancelled by patron
Branches can now specify an "ILL email" address to which notices intended to inform staff of changes to requests by patrons can be sent.
The sending of notices is controlled by a few new sysprefs:
- "ILLDefaultStaffEmail" - Fallback email address for staff ILL notices to be sent to in the absence of a branch address
- "ILLSendStaffNotices" - To specify which staff notices should be sent automatically when requests are manipulated by patrons
Patron notices are also controlled by the patron's messaging preferences.
[24151] Add a pseudonymization process for patrons and transactions
Sponsored by Association KohaLa
This new feature adds a way to pseudonymize patron data, in a way that it will not be able to identify the person (https://en.wikipedia.org/wiki/Pseudonymization)
There are different existing ways to anonymize patron information in Koha, but by removing information we loose the ability to make useful reports.
This development introduces two new tables:
- pseudonymized_transactions for transactions and patron data
- pseudonymized_borrower_attributesfor patron attributes Entries to pseudonymized_transactions are added when a new transaction (checkout, checkin, renew, on-site checkout) is done. The table anonymized_borrower_attributes is populated if patron attributes are marked as "keep for pseudonymization".
To make things configurable, three system preferences have been added:
- Pseudonymization to turn on/off the whole feature
- PseudonymizationPatronFields to list the information of the patrons to synchronize
- PseudonymizationTransactionFields to list the information of the transactions to copy
[22343] Add configuration options for SMTP servers
This patchset adds the ability to set SMTP servers and then pick them for using on each library when sending notices, cart, etc.
SSL/TLS authentication is supported [*]
A new administration page is added for managing the servers.
[*] ssl_mode=starttls is not supported under Ubuntu 16 due to old library versions.
[26290] Add the ability to set a default SMTP server in koha-conf.xml
With this enhancement, systems administrators can set a default/global SMTP configuration when creating the Koha instance, or by manually editing the koha-conf.xml.
[15329] Show budget in addition to fund for late orders in acquisition
Adds a new column with the budget name to the late orders table in acquisitions. This will be helpful in combination with the already displayed fund.
[21898] Add basket info available for ACQORDER
This enhancement adds the aqbasket variable to the AQORDER notice processor.
This allows users to utilise basket details in the subject and content of their
AQORDER
notices.
[23420] Add "SuggestionsUnwantedFields" to hide fields from the suggestions form
This enhancement allows a library to configure the visibility of the input fields on the OPAC suggestion form.
New system preference:
OPACSuggestionUnwantedFields
Removed system preference:
AllowPurchaseSuggestionBranchChoice
[24157] Additional acquisitions permissions
Sponsored by Galway-Mayo Institute of Technology
Add more granularity in the acquisition permissions:
- reopen_closed_invoices to reopen and close invoices
- edit_invoices to edit invoices
- delete_invoices to delete invoices
- merge_invoices to merge invoices
- delete_baskets to delete baskets
[25033] Counts of suggestions are confusing
This patch adds to the simple count of all suggestions in the system with a count filtered by the users branch. This means that on the homepage and other areas a user will see a count of local suggestions and total suggestions in the system.
Previously clicking the link to suggestions would take the user to a page showing fewer suggestions that counted in the link. Now these numbers should be more consistent.
[26089] Add acquisitions-related reports to acquisitions sidebar menu
This patch modifies the menu shown in the sidebar of some acquisitions pages so that in contains links to these acquisitions-related reports: Acquisitions statistics wizard and Orders by fund.
[26712] Set focus for cursor to basket name input box on basketheader.pl
This patch modifies the form for creating a new basket in acquisitions so that the user's cursor is automatically placed in the first field, the basket name input.
[26729] When adding a new vendor set focus for cursor to name input box
This patch modifies the form for creating a new vendor in acquisitions so that the user's cursor is automatically placed in the first field, the vendor name input.
[16357] Plack error logs are not time stamped
This enhancements adds timestamped logs for Plack-enabled Koha, which makes it easier for system administrators to review warnings and errors in Koha.
[20582] Turn Koha into a Mojolicious application
This allows to run Koha as a Mojolicious application. It's a first step towards rewriting CGI code as Mojolicious controllers, for cleaner code and more testability. It's designed for developers only at this point, and should not be used in production.
[23895] Tidy up the directories under installer/data/mysql/
The sql installer files that was present in installer/data/mysql have been moved in a 'mandatory' subdirectory. For instance, installer/data/mysql/sysprefs.sql is now in installer/data/mysql/mandatory/sysprefs.sql
[25070] Include files to display address and contact must be refactored
This internal change simplifies the code for editing and displaying patron address and contact information. It removes duplicated code, reducing potential problems when the code is changed in the future.
For example, there are currently 5 include files for each value of the address format (us, de, fr) with the code duplicated for each language. The change reduces the need for 5*3 files to 5 files.
[25287] Add columns_settings support to API datatables wrapper
Tables are starting to use the new API to build their contents. This is done by using the API datatables wrapper. This development makes this wrapper support the current columns settings feature.
[25333] Change message transport type for Talking Tech from "phone" to "itiva"
The itiva notices operate in a manner that is specific to itiva, the actual notices themselves are generated and handled by custom scripts only used for itiva.
In order to allow integration with other phone notice vendors these patches rename the existing 'phone' message transport type to 'itiva'
[25334] Add generic 'phone' message transport type
Previously the 'phone' message transport in Koha was tied to itiva and was not adaptable to other vendors. In this version that transport is renamed 'itiva' and we add a new 'phone' type that generates notices in the same manner as email, sms and print notices. Koha on it's own will not do anything with these notices. Instead, you will need a plugin such as https://github.com/bywatersolutions/koha-plugin-twilio-voice to handle making the phone calls and updating the notice status.
[26268] Remove items.paid for once and for all
The
paid
field in theitems
table is removed with this patch to prevent accidental re-introduction of syncing code and overhead. The only place where the value is surfaced in the UI has been replaced with an on-demand calculated value.
[26394] .mailmap needs to be updated
The .mailmap file is used to map author and committer names and email addresses to canonical real names and email addresses. It has been improved to reflect the current project's history. It helps to have a cleaner authors list and prevents duplicate http://git.koha-community.org/stats/koha-master/authors.html
[26515] Add Koha::Acquisition::Order->cancel
Sponsored by ByWater Solutions
[26555] Add a way for Koha::Object(s) to carry execution information
This enhancement adds a standardised way to pass execution information around within Koha::Objects.
Execution data should be set by action methods calling
$self->add_message({ message => $message, type => $type, payload => $payload });
inside the action method.The caller can then access the execution data using
my $messages = $object->messages;
[26577] Make basket.pl and cancelorder.pl use $order->cancel
This patch refactors order cancelling code usage to prepare the ground for code cleanup.
[5428] Back to results after deleting a record
After deleting a bibliographic record in the cataloguing module the cataloguer will now be redirected back to the search results list if they had any, instead of the empty search form.
[12533] Improve authority search result display
This patch changes authority record search results, linking each heading to the corresponding detail page, and adding column in the results table showing the heading type.
[15851] Only display "Analytics: Show analytics" when records have linked analytics
Sponsored by Orex Digital
This development changes how the Show analytics link is displayed in both OPAC and staff interface.
The main changes are:
- It is only displayed if it would actually have results (right now it always shows, and the link can point to empty results)
- It is no longer constrained to serials: collections, subunits, integrating resources, monographs and serials, all will display the link.
New CSS classes are added for each material type:
- analyticcollection_
- analyticsubunit_
- analyticires_
- analyticmonograph_
- analyticserial_
This way, libraries that wish to only display those links for serials (for example), can hide them for other resources:
.analytic_collection .analytic_subunit .analytic_ires .analytic_monograph { display: none };
This CSS classes can be used in both OPAC and admin interface.
[15933] Add cataloguing plugin to search for existing publishers in other records
This patch adds the option to enable an autocomplete search for publisher name on the 260$b or 264$b input fields in the basic MARC editor.
[25728] Add the ability to create a new authorised value within the cataloguing module
Sponsored by Orex Digital
When a librarian is cataloguing a bibliographic record and needs a new authorised value, they will now be able to create it directly from the edit form. It also works on the item and authority editing forms. They will need the necessary permission: manage_authorised_values.
[26145] Add the ability to attach a cover image at item level
Sponsored by Gerhard Sondermann Dialog e.K. (presseplus.de, presseshop.at, presseshop.ch)
If LocalCoverImages is turned on, it will now be possible to attach a local cover images for an item. It can be especially useful for subscriptions. One cover image could be attach per serial number. The cover images will be displayed on the item list table on the bibliographic record detail page.
[12656] Allow a CANCELLATION_REASON to be specified on the cancel_expired_holds.pl job
These patches add a --reason flag to the cancel expired reserves cronjob.
If a reason is provided the cronjob will trigger a HOLD_CANCELLATION notice for the patron if one is configured.
The reason will be available in the notice template to allow custom messages to be sent
[14866] Make high holds work with different item types and number of open days
Sponsored by Catalyst
This patch adds a new circulation rule - decreaseloanholds - which will override the value set in the decreaseLoanHighHoldsDuration system preference for specific item types, or patron categories, or branches.
[16112] Specify renewal date for batch renew
Add the ability to define the due date during a batch renew. Like bug 16748 for batch checkout.
[16748] Batch checkout needs set due date
Add the ability to specify the due date during a batch checkout, to prevent the default loan period to be used.
[23916] Issuer should be recorded and visible in patron circulation history
This new enhancement enables the recording, and subsequent display, of who checked out an item. When viewing a checkout in a patron's circulation history and an item's checkout history, details of who carried out the checkout is displayed. The recording of this information is controlled by the new system preference "RecordStaffUserOnCheckout".
[23979] "Account is locked" message should be displayed on all patron pages
This patch alters the display to show a message on all patron screens when a patron is locked out of their account due to too many login attempts or has an administrative lock.
Login attempt locks are controlled by the 'FailedLoginAttempts' system preference
Administrative locks are related to GDPR settings.
[24083] Koha should support "seen" vs "unseen" renewals
This new feature allows the library to keep track of how many times an item has been renewed but not actually seen by the library, typically through renewing online.
Additionally, this allows the library to set their circulation rules to require regular 'seen' renewals and thus prevent patrons from continually renewing an item which may actually have been lost.
[24159] Allow daysMode for calculating due and renewal dates to be set at the circulation rules level
Sponsored by Institute of Technology Carlow
This new enhancement is adding the ability to make hourly loan returned on a closed day, if checked out on the same close day.
The useDaysMode system preference has been moved to a circulation rule to add more flexibility in the calculation of the due date.
[24201] Attach desk to intranet session
When
UseCirculationDesks
is enabled and desks are defined and attached to a library, this feature makes it possible to chose your current desk on login or when changing library from the intranet. The desk is then attached to the session.Future developments are planned to allow associating hold pickup locations with desks and other features.
[25232] Add ability to skip trapping items with a given notforloan value
This feature adds the system preference SkipHoldTrapOnNotForLoanValue. Adding a notforloan value to this system preference prevents items with that notforloan value from triggering holds at checkin, allowing for a temporary quarantine or any other circumstance in which an item should be temporarily delayed from circulation. This presents a more customizable alternative to the existing TrapHoldsOnOrder system preference.
[25261] Multiple parts handling - confirmation alert
Sponsored by PTFS Europe and Royal College of Music
This enhancement adds the option to require staff members to confirm that an item contains all its listed parts at check-in/check-out time.
New system preference:
CircConfirmItemParts
[25717] Improve messages for automatic renewal errors
This change improves the wording and grammar for automatic renewal error messages.
[26643] Staff should be notified that a transfer has been completed on checkin
This patch introduces a notification message on the check-in screen to highlight when the check-in has resulted in the completion of a transfer.
[21591] Data inconsistencies - Item types and biblio level
When an item does not have an itemtype and the record (biblioitem) also has no itemtype defined the data inconsistencies script would error rather than reporting.
We add a test for missing record level itemtypes so that we can correctly report these problems too.
[24152] Add the ability to purge pseudonymized data
Sponsored by Association KohaLa
[24153] Add a confirm flag to the cleanup_database.pl cronjob
Sponsored by Association KohaLa
This enhancement adds a --confirm flag to the cleanup_database.pl cronjob, that allows a dry-run mode with a verbose output.
[24306] Add debug option to koha-indexer
These patches add a --debug switch to the koha-indexer script. This will vastly increase the logging output of the rebuild zebra daemon. This information may be useful for determining why some records are not being indexed.
[25511] Add --force option to update_dbix_class_files.pl
Sometimes, if you know what you are doing, you may want to force a schema overwrite regardless of whether the hashes report there are changes above the fold.
In these cases, we should expose said functionality via a --force option on the script.
WARNING: Use this at your own risk.. it's helpful if you are maintaining a fork or in other such cases. You should always attempt to run the script without force first and only resort to using force if that fails. It is also very much worthwhile checking the diff after running with force to ensure you have not resulted in any unexpected changes.
[14648] Batch remove reserve items
This allows to batch remove items from any course reserve they have been added to using a barcode list. Access the new feature using the "Batch remove reserves" button on the course reserves module start page.
[8338] Add ability to remove fines with dropbox mode
This enhancement will remove any overdue fines that would be reversed on a backdated return if CalcFineOnBackdate is enabled and the user has not already attempted to pay off the accruing fine.
[23091] Add options to charge new or restore forgiven overdues when a lost item is returned
This new feature allows libraries using the existing WhenLostForgiveFine functionality to reinstate forgiven overdue fines if a lost item is found and the lost item fee is refunded. Specifically, this adds two new options to the lost item fee refund on return policy dropdown in circulation rules. When a lost item is found and the fee refunded, a forgiven overdue fine can be restored in its original accountlines entry or re-created as a new accountlines entry.
[24603] Allow to cancel charges in patron accounting
This allows to cancel charges that have not been paid in full or partially yet. A cancelled charge will show up as cancelled in the account. Voiding a paid charge first will then allow to cancel it afterwards.
[26327] Include checkout library in fines
This patch adds a new column in the accounting tables for a patron. The column will show the checkout library for charges that are tied to circulation.
[19889] LocalHoldsPriority needs exclusions
Sponsored by Cooperative Information Network (CIN)
[23820] Club hold pickup locations should be able to default to patron's home library
Sponsored by South East Kansas Library System
[24412] Attach waiting hold to desk
When
UseCirculationDesks
is enabled and desks are defined and attached to a library, this feature makes it possible to attach a waiting reserve to a desk: when an item is checked in and marked as a waiting reserve, it is also attached to the current desk. The desk is then displayed in the intranet document request page, the intranet borrower holds tab, the item list of the document bibliographic details and the borrower's OPAC holds tab. You can move waiting reserve from desk to desk by checking in again the item at a different desk.
[26281] Add cancellation reason to holds history
This adds the new column for cancellation reason to the holds history page in the staff interface. See bug 25534 for more details on the new hold cancellation reason feature.
[23391] Hide finished ILL requests
This adds a new system preference ILLHiddenRequestStatuses that takes a list of ILL status codes to be hidden from the ILL requests table in the ILL module. This allows to hide finished and cancelled ILL requests improving the performance of the table in busy libraries but also making it easier to keep track of the pending requests.
[15141] Add MARC21 770/772 to OPAC and staff detail pages
Adds display for 770 (Supplement/Special issue entry) and 772 (Supplement parent entry) to the OPAC and staff interface detail pages.
[15437] MARC21: Show $i for 780/785
Adds $i (Relationship information) to 780 (Preceding entry) and 785 (Succeeding entry) in the OPAC and staff detail pages.
[16371] Quote of the Day (QOTD) for the staff interface
Sponsored by Koha-Suomi Oy
This enhancement lets you choose where the Quote of the Day (QOTD) is displayed:
- OPAC: QOTD only appears in the OPAC.
- Staff interface: QOTD only appears in the staff interface.
- Both [Select all]: QOTD appears in the staff interface and OPAC.
[24197] Custom destination for failed overdue notices
Sponsored by Catalyst
This adds a new system preference AddressForFailedEmailNotices that allows to control where the summarized overdue email for patrons without email addresses is sent to.
[25097] Add option to message_queue to allow for only specific sending notices
This adds a new command line option -c|--code to the process_message_queue.pl cron job allowing to pick which letter codes will be processed and send when the job runs. This will allow to send different notices at different times depending on your cron job setup.
[25776] Add last updated date for notices and slips
This adds a new column to the letter table to store the last date and time a notice was edited. On the notices summary page, the latest change will show and the individual changes for each transport type (email, print, ...) will show once the letter is edited on the different tabs.
[26745] Notice titles/subjects should support Template Toolkit
This patch introduces the ability to use template toolkit syntax in the subject line of email notices.
[8732] Add a system preference to allow users to choose to display an icon based on the Koha bibliographic level itemtype
These patches add a new syspref: BiblioItemtypeInfo
If enabled the icons for the record itemtype (942c) will be displayed on the record detail and search result pages in both the OPAC and staff interface
[18911] Option to set preferred language in OPAC
The OPAC users can now choose their preferred language for notices.
[20168] Update of the OPAC bootstrap template to bootstrap v4
This patch upgrades the version of the Bootstrap library used by the OPAC from version 2.3.1 to version 4.5.0. The Bootstrap library provides a framework of JavaScript and CSS to support responsive layouts and interface elements like toolbars, menus, buttons, etc. Although some aspects of the interface have been updated, the changes are largely invisible to the user.
[20936] Holds history for patrons in OPAC
Northeast Kansas Library System (NEKLS)
[22807] Accessibility: Add 'Skip to main content' link
This accessibility enhancement adds a hidden 'Skip to main content' link to the OPAC which will appear if a user uses 'tab' keyboard navigation.
[25402] Put OPAC cart download options into dropdown menu
This enhancement adds the OPAC cart download format options into the dropdown menu, rather than opening in a separate pop up window. (This also matches the behaviour in the staff interface.)
[25639] Add search queries to HTML so queries can be retrieved via JS
This patch adds global JS variables for the prepared search forms: query_desc_query_cgi, and query
These are useful for plugins or custom JS wishing to perform searches outside of Koha and incorporate results.
[26454] Add system preference to set meta description for the OPAC
Functionality to add meta description tag with content with the system preference OpacMetaDescription. This is used by search engines to add a description to the library in search results.
[26718] Change 'Your reading history" to "Your checkout history"
This changes "reading history" to "checkout history" in the staff interface and OPAC as libraries are not only leanding reading materials but a lot of different media.
[6725] Make patron duplicate matching flexible
The new system preference 'PatronDuplicateMatchingAddFields' adds more flexibility in the de-duplication of patrons. Prior to this change only surname, firstname and dateofbirth where used. Now the list of fields is configurable.
[10910] Add a warn when deleting a patron with pending suggestions
A warning is displayed if a staff member is trying to delete a patron with pending suggestions.
[20057] Auto-approve option for borrower modifications
Adds a new system preference AutoApprovePatronProfileSettings that allows to automatically approve any requests for patron detail modifications made by patrons from the OPAC.
[21345] Patron records with attached files not obvious from patron details view
This patch adds a new section to the patron detail view in the staff interface when the "EnableBorrowerFiles" system preference is enabled. The page will now show a "Files" section with a link to manage files and a list of any attached files.
[23816] Allow to have different password strength and length settings for different patron categories
Sponsored by Northeast Kansas Library System
[26534] Add a Font Awesome icon to help identify staff patrons
This adds a small shield icon to help identify staff members (having catalogue permission) in the staff interface. The icon displays next to the name on top of the brief patron information that is shown on all patron account pages.
[26687] Add a Font Awesome icon for superlibrarian patrons
This adds a bolt icon next to the shield icon introduced by bug 26534, if the user is not only a staff member but also holds the superlibrarian permission.
[21468] Plugins need hooks for checkin and checkout actions
This enhancement adds plugin hooks to allow plugins to take action after check-in and check-out circulation events.
[24633] Add support for gitlab searching of plugins
Sponsored by Theke Solutions
The enhancement allows setting Gitlab targets for retrieving plugins.
[25855] Add hook to AddRenewal using a new aftercirc_actions method in circulation
Sponsored by ByWater Solutions
This enhancement adds plugin hooks to allow plugins to take action after renewal circulation events.
[25961] Add hooks for plugins to inject variables to XSLT
This enhancement adds the following plugin hooks:
- opac_results_xslt_variables
- opac_detail_xslt_variables
This allows us to pass valuable information for XSLT customization.
Plugins implementing this hooks, should return a hashref containing the variable names and values to be passed to the XSLT processing code.
[26063] Use Koha::Plugins->call for other hooks
Sponsored by ByWater Solutions
[24665] Add ability to run cash register report with new cash register feature
This enhancement exposes the ability to refine the cash register report by cash register the transactions have taken place upon if you are using the 'UseCashRegisters' feature.
[12556] SelfCheck machine starts the hold instantly with an email sent out
This new system preference HoldsNeedProcessingSIP allows the libraries to prepare the items in peace for the next patron before a notification about a waiting hold is sent to the patron. Without this system preference in some cases the item might not have been ready for pick up by the time patron came to the library to checkout the item they had on hold. This feature works only with SIP2 return machines for the time being.
[25541] Add ability to prevent checkin via SIP of items with holds
Some libraries would like patrons to be unable to return items with holds via SIP. Instead, the screen message should indicate that the patron should return that item at the circ desk so a librarian can use it to fill the next hold right away and place it on the hold shelf. This feature is enabled by adding the flag holds_block_checkin to an account in the SIP configuration file, and setting the value of it to "1".
[26032] Add 'is new' filter in items search
There is a new filter in item search, when the database column 'items.new_status' is used. It allows searching items defined as new or not new, like the filter on damaged or not damaged.
[19482] Elasticsearch - prevent removal / editing of required indexes
These patches add the option to define some fields as 'mandatory' in the mappings.yaml file for elasticsearch.
A 'mandatory' field cannot be deleted from the staff interface and must be mapped to at least one MARC field.
The intention is to prevent removal of search fields that are required for Koha functionality - built in sorting fields, issues count, etc.
These patches add the marker to 'issues' and 'title' - more fields may be marked in the future
[24155] Weights should be (optionally) applied to Advanced search
This patch adds the weighting of search results to searches made via the 'Advanced search' interface.
Weights, defined in Administration section, boost ranking of results when specified fields are matched in a search query.
The weights will not affect index-specific queries, but are useful for keyword or queries with limits applied and so should be applied unless the user specifies not to.
[26310] Allow setting trace_to parameter in Elasticsearch config
By setting the 'trace_to' parameter in the elasticsearch config we can log the requests sent to the ES cluster to aid in debugging search or indexing issues
[15400] Display patron age in useful places in the staff interface
Sponsored by Catalyst
[26007] Warning/reminder for changes to Koha to MARC mapping
In current versions of Koha you can no longer change the Koha to MARC mappings from the frameworks, but only from the Koha to MARC mapping page in administration. This patch cleans up the hints on the framework page and adds a well visible note on the Koha to MARC mapping page. Any changes to the mappings require that you run the batchRebuildBiblioTables script to fully take effect.
[22844] Simplify the process of selecting database columns for system preferences
This enhancement introduces a new way to select database columns for selected system preferences like BorrowerMandatoryField. Currently, this requires manually adding the database field names. The enhancement lets you select from a list of available fields in a new window, and also select and clear all fields.
This is implemented for these system preferences:
- BorrowerMandatoryField
- BorrowerUnwantedField
- PatronQuickAddFields
- PatronSelfModificationBorrowerUnwantedField
- PatronSelfRegistrationBorrowerMandatoryField
- PatronSelfRegistrationBorrowerUnwantedField
- StatisticsFields
- UniqueItemFields
[25630] More capitalization and terminology fixes for system preferences
This enhancement makes changes to the descriptions for many of the system preferences to help improve consistency with the terminology list* and readability.
The changes made cover:
- Capitalization (such as Don't Allow to Don't allow).
- Terminology (such as staff client to staff interface, including the tab label).
- Punctuation (such as the placement of periods/full stops at the end of sentences).
- Readability (rearranging or rephrasing the description to make easier to understand).
Some of the terminology changes include:
- bib and biblio => bibliographic
- branch => library
- borrower => patron
- Do not > Don't
- staff client => staff interface
pref and syspref => system preference
https://wiki.koha-community.org/wiki/Terminology
[25709] Rename systempreference from NotesBlacklist to NotesToHide
This patchset updates a syspref name to be clearer about what it does and to follow community guidelines on using inclusive language.
https://wiki.koha-community.org/wiki/Coding_Guidelines#TERM3:InclusiveLanguage
[24012] Display 'Locked' budget with a lock icon
Sponsored by Catalyst
[24156] Basket - Make sort order and number of items to display configurable
Sponsored by Institute of Technology Tallaght
This patch adds new options in the Table settings section to make the sort order and number of results per page in the basket table configurable.
[25031] Improve handling of multiple covers on the biblio detail page in the staff client
This enhancement improves the display of multiple covers for a record in the staff interface, including covers from these services:
- Amazon
- Local cover images (including multiple local cover images)
- Coce (serving up Amazon, Google, and OpenLibrary images)
- Images from the CustomCoverImages preference
[25727] Update the Select2 JS lib
Sponsored by Orex Digital
[25113] Make CirculationRules.t flexible for new scope combinations
Sponsored by National Library of Finland
[4985] Copy a change on the calendar to all libraries
Sponsored by Koha-Suomi Oy
[5087] Option to not show CSV profiles in OPAC
Sponsored by Catalyst
This patch adds an option to show or not show a CSV profile in the OPAC cart and lists download formats list.
[22660] Allow use of CodeMirror for editing HTML in the news editor
This patch adds the ability to switch between the TinyMCE (WYSIWYG) text editor and the more robust CodeMirror text editor via the new system preference, NewsToolEditor, when editing News items.
[25694] Add ability to delete a MARC modification template when viewing
This enhancement adds a 'Delete template' button on the page for viewing the actions of a MARC modification template.
[25845] Cannot limit system logs to 'api' interface
This enhancement adds the option to limit viewing logged actions done by API only
[26086] Add a 'cron' interface limit to the log viewer
This enhancement adds the option to limit viewing logged actions done by cron only
[26207] Compare values of system preference log entries
This patch adds a feature to the log viewer in the staff interface for use when viewing system preference log entries. The feature allows the user to select two system preference values in the log for comparison. The two versions are shown in a modal window with the differences highlighted.
[25460] Allow using item information in OAI set mappings and automatically update sets when items are added, edited or deleted
Sponsored by Catalyst
This allows library staff to use information from items when creating mappings for OAI sets. When the new system preference OAI-PMH:AutoUpdateSetsEmbedItemData is set, editing, deleting or adding items will update records listed in the OAI sets according to the mapppings.
(This list includes all bugfixes since the previous major version. Most of them have already been fixed in maintainance releases)
[25750] Fallback to ecost_tax_included, ecost_tax_excluded not happening when no 'Actual cost' entered
Sponsored by Horowhenua District Council
[26963] Improve Koha::Item::pickup_locations performance
Koha::Item::pickup_locations is very inefficient, causing timeouts on records with large numbers of holds/items.
This development refactors the underlying implementation, and also makes the method return a resultset, to delay as much as possible the DB access, and thus allowing for further filtering on the callers, through chaining.
[25758] Items scheduled for automatic renewal do not show that they will not renew due to a hold
Bug 19014 prioritized the 'too soon' message for renewals to prevent sending too many notifications. When displaying information about the hold elsewhere it is desired to see the 'on hold' status even when the renewal is too soon.
This patch add a switch to the CanBookBeRenewed routine to decide which status has priority (i.e. whether we are checking from the renewal cron or elsewhere)
[26819] Error when adding items to course reserves - can't view items in the staff interface
This fixes an error introduced during the 20.11 development cycle with course reserves. After adding an item you could not list the items for a course in the staff interface (an error page was generated), and you could not add additional items.
i
tags with em
AND b
tags with strong
in the OPAC[26005] OPAC cart display fails with error
This fixes a problem with the OPAC cart - it should now work correctly when opened, instead of generating an error message.
[25761] Implementation of too_many_overdue has unintended consequences
This bugfix allows the circulation rules that prevent checkouts if a user has reached a maximum number of overdue to be overridden at the SIP login level.
This is especially useful for ebook lending services where you may want this block to be disabled.
New SIP config option:
overdues_block_checkout
defaults to1
(This list includes all bugfixes since the previous major version. Most of them have already been fixed in maintainance releases)
search_for_data_inconsistencies.pl
[26601] Add utf8 output to text output of overdue_notices.pl
Sponsored by Styrian State Library
[25789] New expiration date on placing a hold in staff interface can be set to a date in the past
Sponsored by Koha-Suomi Oy
[11994] Fix OpenSearch discovery in the OPAC
OpenSearch (https://en.wikipedia.org/wiki/OpenSearch) allows you to search your library's catalog directly from the browser address bar or search box. This fixes the OpenSearch feature so that it now works correctly in Firefox. Note: make sure OPACBaseURL is correctly set.
[24352] Wrong labels displaying in result list with OpacItemLocation
This fixes the OPAC's MARC21 search results XSLT so that OPAC search result information is correctly labelled based on the OpacItemLocation preference.
Previously, search results showed the label "Location(s)" whether the setting was "collection code" or "location."
[24473] Syndetics content should be $raw filtered on opac-detail.tt
Syndetics provides enhanced content which is displayed in the OPAC under the tabs 'Title Notes', 'Excerpt', 'About the author', and 'Editions'. They provide this information as HTML but Koha currently displays the content with the HTML tags. This fixes this so that the enhanced content displays correctly.
[26070] Google Transliterate API has been deprecated
The Google Transliterate API has been deprecated by Google in 2011. This removes the remaining code and GoogleIndicTransliteration system preference from Koha as this is no longer functional.
[25394] Cronjob path in the AuthorityMergeLimit syspref description is wrong
Updates the system preference description with the correct path for the cronjob (misc/cronjobs/merge_authorities.pl).
[26283] dateexpiry and dateenrolled are missing in the new modal for BorrowerMandatoryField and others
This enhancement adds the dateenrolled and dateexpiry fields to the list of fields that can be selected in system preferences such as the BorrowerMandatoryField.
[26809] Inconsistent use of full stops on admin-home.tt
Sponsored by Catalyst
[25447] Terminology: Fix button text "Edit biblio"
This updates the text on the cataloging main page so that in the menu for each search result the "Edit biblio" link is now "Edit record."
td
tag in smart-rules.ttp
tag appearing in the templates[26414] Unable to export Withdrawn status using CSV profile
This patch fixes the export of MARC records and the withdrawn status when using CSV profiles. Before this fix the full 952 field was exported, rather than just the withdrawn status.
[22806] CanBookBeReserve and CanItemBeReserve do not check AllowHoldsOnPatronsPossessions
This enhancement makes sure that checks for the "AllowHoldsOnPatronsPossessions" policy is now made for all interfaces (Staff interface, OPAC, WebServices). Before this change it was not checked for WebServices (ILS-DI).
"AllowHoldPolicyOverride" can be used to override this setting for the Staff interface.
Note: This enhancement introduces a behaviour change, so if you use either of these system preferences review the settings to make sure they work as expected.
It relies on the STOMP protocol to notify the worker about the tasks. Koha is now using RabbitMQ as the message broker. A new page is added for monitoring the background job execution (/cgi-bin/koha/admin/background_jobs.pl). This sets the ground for future improvements for asynchronous and long running tasks. All background jobs that prevent us from full Plack experience, will be migrated in a short term. A way for plugin methods to be scheduled for execution is one of the things devs are working on as well.
While experimental at this point, this development prepares the ground for new ways to think of Koha pages and routes. It also allows us to think of relying on non-blocking application servers like Hypnotoad, and thus being able to implement asynchronous code. To test, use starman with the new
app.psgi
at the root of Koha source code, or use morbo/hypnotoad with scriptsbin/opac
andbin/intranet
. A reverse proxy is not needed but you can use one, and basic configuration files for apache and nginx are provided inetc/
. This also allows to generate simpler containerized deployments of Koha.
Two new Koha packages have been created:
koha-full
andkoha-core
; Both packages are currently considered as experimental, and are not recommended for production use until further notice. We will be testing them during the 20.11 release cycle.
Currently the Debian 11 version of JSON::Validator (v4.10) is incompatible with Koha. A temporary solution has been to provide JSON::Validator (v3.25). The package is named 'libjson-validator-perl-4.10+really3.25-koha1', following the '+really' naming convention described in section 5.6.12.1 here: https://www.debian.org/doc/debian-policy/ch-controlfields.html Installing Koha on Debian 11 now requires the 'bullseye' component to be added to the apt repo definition, example below...
$ echo 'deb http://debian.koha-community.org/koha stable main bullseye' | sudo tee /etc/apt/sources.list.d/koha.list
This requirement will eventually be removed as we upgrade to JSON::Validator (v4.10)
plack-opac-error.log
, plack-intranet-error.log
, and plack-api-error.log
and can be found in the Koha instance log directory.opaccredits
, OpacCustomSearch
and OpacLoginInstructions
authnotrequired
parameter of get_template_and_user was audited this cycle. It should now only be used when we need to override the value of OPACPublic
; It's presence will now provoke a QA script warning ([24663]).paid
field in the items
table has been removed to prevent accidental re-introduction of syncing code and overhead. The only place where the value is surfaced in the UI has been replaced with an on-demand calculated value.The existing 'phone' message transport type has been first renamed 'itiva' and then another new generic 'phone' has been created. Talking Tech as a company has sold itiva, which is the actual name of the software. To pave the way for pluggable phone notices, it made sense to rename our existing 'phone' transport to itiva. It should be noted that the itvia transport doesn't operate in the same way as all the other transports. The new generic 'phone' transport behaves the same as email, sms, and print. That is, it generates the notice based on what is put in the content of the slips and notices module, just like all the transports except itiva. Koha does nothing with these notices. If you were to set up phone notices in Koha, they would remain pending forever. The idea is to have plugins to handle sending phone notices and updating the status of those notices. A plugin that utilises Twilio to make phone notices calls is already available, but we could also have plugins for things like ShoutBomb, PBXs like Asterisk.
misc/devel/get-prepared-letter.pl --help
gulp po:create [--lang xx-XX]
or gulp po:update [--lang xx-XX]
The old method using misc/translator/translate create|update
still works, but is deprecated.perlcritic <modified_file.pl>
to check. We encounter only one issue that we would face with Perl 7 and we fixed it. Indirect object notation will be forbidden by default in Perl 7. You must now write My::Class->new instead of new My::Class
mandatory
subdirectory (installer/data/mysql/) ([23895])If you are maintaining the translation of a language under installer/data/mysql, you should consider removing it and use the usual workflow for translation instead (using translate.koha-community.org).
An accessibility audit on the OPAC took place during the cycle which resulted in a number of bugs being reported, and subsequently fixed.
<input type="number">
to apply ACC2 coding guideline.In order to properly use our API for server-side rendering of DataTables, a wrapper has been introduced. This wrapper has been added columns settings support. The libraries and cities pages are using this wrapper to render using the API and use server-side pagination and filtering. They can be used as sample implementations. A more complex example can be found on bug [20212] which is expected to land on the next cycle.
4 new plugin's hooks are available:
after_hold_create
Once a hold has been placed, the 'after_hold_create' plugin hook is called. Each implementing plugin will be passed the related Koha::Hold object as parameter.
after_circ_action
After circulation actions take place, the 'after_circ_action' hook is called. Each implementing plugin will be passed a data structure like this:
{ action => <string describing the action>, payload => { hashref with relevant information } }
Here' s a list of the possible actions and the payload they carry (this should be a table, with columns type, payload):
checkout:
{ type => 'onsite_checkout' | 'issue', checkout => Koha::Checkout object }
checkin:
{ checkin => Koha::Checkout object }
renewal:
{ checkout => Koha::Checkout object }
opac_results_xslt_variables
and opac_detail_xslt_variables
These hooks will be called when rendering the search results and detail page in the OPAC, respectively. The implemented methods on the plugin, need to return a hashref with key:value pairs. No nested structures are expected. Those variables will be injected into the XSLT pipeline so people tweaking their XSLTs can take advantage of them. As an example, take a look at the following link: https://bugs.koha-community.org/bugzilla3/attachment.cgi?id=107477
We have announced the deprecation of OpacGroupResults ([20410]) on the mailing list. https://lists.katipo.co.nz/pipermail/koha/2020-November/055362.html
Also, the PayPal logic code will be removed from Koha ([23215]). When the plugin hooks for payment plugins were introduced, many payment plugins were written and distributed. PayPal is not different than any of those, and there is an implementation already. The PayPal plugin provides interesting new features as it moved forward: support for per-library configurations, including minimum theresholds, credentials, etc. As of now, the core PayPal payments feature is considered deprecated and is marked for removal on the next release (21.05). Instructions for migrating your current configuration into the plugin's can be found on the plugin site(https://gitlab.com/thekesolutions/plugins/koha-plugin-pay-via-paypal).
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 20.11.00 is
Release Manager: Jonathan Druart
Release Manager assistants:
QA Manager: Katrin Fischer
QA Team:
Topic Experts:
Bug Wranglers:
Packaging Manager: Mason James
Documentation Managers:
Documentation Team:
Translation Manager: Bernardo González Kriegel
Release Maintainers:
Release Maintainer mentors:
We thank the following libraries, companies, and other institutions who are known to have sponsored new features in Koha 20.11.00
We thank the following individuals who contributed patches to Koha 20.11.00
We thank the following libraries, companies, and other institutions who contributed patches to Koha 20.11.00
We also especially thank the following individuals who tested patches for Koha
And people who contributed to the Koha manual during the release cycle of Koha 20.11.00
We thank the following individuals who mentored new contributors to the Koha project
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.
I would like to thank the whole development core team for our constant communication improvement.
We managed to better focus on the same topics at the same time and we are going to enhance Koha quicker and greatly in the next cycle.
I am really looking forward to continue what we started over the last 6 months!
Mason, our package manager, did an impressive work the last couple of cycles to improve our packaging system, thanks to him!
Thanks to BibLibre, ByWater Solution and PTFS Europe for their continuous support and trust in me.
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 27 Nov 2020 13:45:33.