From 92a6638fa52c5e6584bb87258a41cb6a2b2ec712 Mon Sep 17 00:00:00 2001 From: Martin Renvoize Date: Tue, 23 Apr 2024 13:42:46 +0100 Subject: [PATCH] Bug 33237: (QA follow-up) Clarify tests and Mock This patch tries to clarify the tests a little and expand their coverage whilst also adding some defualt translated includes to the test area and mocking the config to allow the tests to run without installing translations. Signed-off-by: Martin Renvoize Signed-off-by: Katrin Fischer (cherry picked from commit a773770f738fe1b23d6c5b7cbafade636000374f) Signed-off-by: Fridolin Somers --- t/db_dependent/Letters.t | 30 +- .../prog/en/includes/accounts.inc | 61 + .../intranet-tmpl/prog/en/modules/about.tt | 1342 +++++++++++++++++ .../prog/fr-CA/includes/accounts.inc | 61 + .../intranet-tmpl/prog/fr-CA/modules/about.tt | 1342 +++++++++++++++++ 5 files changed, 2827 insertions(+), 9 deletions(-) create mode 100644 t/mock_templates/intranet-tmpl/prog/en/includes/accounts.inc create mode 100644 t/mock_templates/intranet-tmpl/prog/en/modules/about.tt create mode 100644 t/mock_templates/intranet-tmpl/prog/fr-CA/includes/accounts.inc create mode 100644 t/mock_templates/intranet-tmpl/prog/fr-CA/modules/about.tt diff --git a/t/db_dependent/Letters.t b/t/db_dependent/Letters.t index 4257ad4fed..93e2fe9c18 100755 --- a/t/db_dependent/Letters.t +++ b/t/db_dependent/Letters.t @@ -870,7 +870,7 @@ subtest 'GetPreparedLetter' => sub { subtest 'TranslateNotices' => sub { - plan tests => 7; + plan tests => 10; t::lib::Mocks::mock_preference( 'TranslateNotices', '1' ); @@ -893,6 +893,7 @@ subtest 'TranslateNotices' => sub { 'a test', 'GetPreparedLetter should return the default one if the lang parameter is not provided' ); + # Note: What about includes, which language should be assumed 'default' here? $letter = C4::Letters::GetPreparedLetter( module => 'test', @@ -932,6 +933,8 @@ subtest 'TranslateNotices' => sub { is( $letter->{title}, 'a test', 'GetPreparedLetter should return the default notice if pref disabled but additional language exists' ); + t::lib::Mocks::mock_preference( 'TranslateNotices', '1' ); + my $amount = -20; my $accountline = $builder->build( { @@ -947,25 +950,30 @@ subtest 'TranslateNotices' => sub { $dbh->do( q| INSERT INTO letter (module, code, branchcode, name, title, content, message_transport_type, lang) VALUES - ('test_payment', 'code', '', 'Account payment', 'Account payment', "[% PROCESS 'accounts.inc' %][% PROCESS account_type_description account=credit %][% credit.description %]", 'print', 'default'); + ('test', 'payment', '', 'Paiement du compte', 'Paiement du compte', "[% PROCESS 'accounts.inc' %][% PROCESS account_type_description account=credit %][% credit.description %]", 'print', 'fr-CA'), + ('test', 'payment', '', 'Default payment notice', 'Default payment notice', "[% PROCESS 'accounts.inc' %][% PROCESS account_type_description account=credit %][% credit.description %]", 'print', 'default'); | ); + t::lib::Mocks::mock_config( 'intrahtdocs', '/kohadevbox/koha/t/mock_templates/intranet-tmpl' ); + $tables = { borrowers => $borrowernumber, credits => $accountline->{accountlines_id}, }; $letter = C4::Letters::GetPreparedLetter( - module => 'test_payment', - letter_code => 'code', + module => 'test', + letter_code => 'payment', message_transport_type => 'print', tables => $tables, lang => 'fr-CA', ); + is( $letter->{title}, 'Paiement du compte', + 'GetPreparedLetter should return the notice in patron\'s preferred language' ); like( $letter->{content}, qr/Paiement/, - 'GetPreparedLetter should return the notice in patron\'s preferred language' + 'Template includes should use the patron\'s preferred language too' ); my $context = Test::MockModule->new('C4::Context'); @@ -975,23 +983,27 @@ subtest 'TranslateNotices' => sub { t::lib::Mocks::mock_preference( 'language', 'fr-CA,en' ); $letter = C4::Letters::GetPreparedLetter( - module => 'test_payment', - letter_code => 'code', + module => 'test', + letter_code => 'payment', message_transport_type => 'print', tables => $tables, lang => 'default', ); + is( $letter->{title}, 'Default payment notice', + 'GetPreparedLetter should return the notice in default language' ); like( $letter->{content}, qr/Paiement/, 'GetPreparedLetter should return the notice in the interface language' ); $context->mock( 'interface', 'cron' ); $letter = C4::Letters::GetPreparedLetter( - module => 'test_payment', - letter_code => 'code', + module => 'test', + letter_code => 'payment', message_transport_type => 'print', tables => $tables, lang => 'default' ); + is( $letter->{title}, 'Default payment notice', + 'GetPreparedLetter should return the notice in default language' ); like( $letter->{content}, qr/Paiement/, 'GetPreparedLetter should return the notice in the first language in language system preference' diff --git a/t/mock_templates/intranet-tmpl/prog/en/includes/accounts.inc b/t/mock_templates/intranet-tmpl/prog/en/includes/accounts.inc new file mode 100644 index 0000000000..50742d5b29 --- /dev/null +++ b/t/mock_templates/intranet-tmpl/prog/en/includes/accounts.inc @@ -0,0 +1,61 @@ +[%- BLOCK account_type_description -%] + [%- IF account.credit_type_code -%] + [%- PROCESS credit_type_description credit_type = account.credit_type -%] + [%- ELSIF account.debit_type_code -%] + [%- PROCESS debit_type_description debit_type = account.debit_type -%] + [%- END -%] + [%- PROCESS account_status_description account=account -%] +[%- END -%] + +[%- BLOCK debit_type_description -%] + [%- SWITCH debit_type.code -%] + [%- CASE 'ACCOUNT' -%]Account creation fee + [%- CASE 'ACCOUNT_RENEW' -%]Account renewal fee + [%- CASE 'ARTICLE_REQUEST' -%]Article request fee + [%- CASE 'LOST' -%]Lost item + [%- CASE 'MANUAL' -%]Manual fee + [%- CASE 'NEW_CARD' -%]New card + [%- CASE 'OVERDUE' -%]Fine + [%- CASE 'PROCESSING' -%]Lost item processing fee + [%- CASE 'RENT' -%]Rental fee + [%- CASE 'RENT_DAILY' -%]Daily rental fee + [%- CASE 'RENT_RENEW' -%]Renewal of rental item + [%- CASE 'RENT_DAILY_RENEW' -%]Renewal of daily rental item + [%- CASE 'RESERVE' -%]Hold fee + [%- CASE 'RESERVE_EXPIRED' -%]Hold waiting too long + [%- CASE 'PAYOUT' -%]Payment from library to patron + [%- CASE 'VOID' -%]Credit has been voided + [%- CASE -%][% debit_type.description | html %] + [%- END -%] +[%- END -%] + +[%- BLOCK credit_type_description -%] + [%- SWITCH credit_type.code -%] + [%- CASE 'CANCELLATION' -%]Cancelled charge + [%- CASE 'CREDIT' -%]Credit + [%- CASE 'DISCOUNT' -%]Discount + [%- CASE 'FORGIVEN' -%]Forgiven + [%- CASE 'LOST_FOUND' -%]Lost item fee refund + [%- CASE 'OVERPAYMENT' -%]Overpayment refund + [%- CASE 'PAYMENT' -%]Payment + [%- CASE 'PROCESSING_FOUND' -%]Lost item processing fee refund + [%- CASE 'PURCHASE' -%]Purchase + [%- CASE 'REFUND' -%]Refund + [%- CASE 'WRITEOFF' -%]Writeoff + [%- CASE -%][% credit_type.description | html %] + [%- END -%] +[%- END -%] + +[%- BLOCK account_status_description -%] + [%- SWITCH account.status -%] + [%- CASE 'UNRETURNED' -%] (Accruing) + [%- CASE 'RETURNED' -%] (Returned) + [%- CASE 'REPLACED' -%] (Replaced) + [%- CASE 'REFUNDED' -%] (Refunded) + [%- CASE 'FORGIVEN' -%] (Forgiven) + [%- CASE 'VOID' -%] (Voided) + [%- CASE 'LOST' -%] (Lost) + [%- CASE 'CANCELLED' -%] (Cancelled) + [%- CASE -%] + [%- END -%] +[%- END -%] diff --git a/t/mock_templates/intranet-tmpl/prog/en/modules/about.tt b/t/mock_templates/intranet-tmpl/prog/en/modules/about.tt new file mode 100644 index 0000000000..0f5675a5f8 --- /dev/null +++ b/t/mock_templates/intranet-tmpl/prog/en/modules/about.tt @@ -0,0 +1,1342 @@ +[% USE raw %] +[% USE HtmlTags %] +[% USE Koha %] +[% USE Asset %] +[% USE KohaDates %] +[% PROCESS 'i18n.inc' %] +[% SET footerjs = 1 %] +[% INCLUDE 'doc-head-open.inc' %] +[% FILTER collapse %] + [% t("About Koha") | html %] › + [% t("Koha") | html %] +[% END %] +[% INCLUDE 'doc-head-close.inc' %] + + +[% INCLUDE 'header.inc' %] +[% PROCESS 'about-team.inc' %] + +[% WRAPPER 'sub-header.inc' %] + [% WRAPPER breadcrumbs %] + [% WRAPPER breadcrumb_item %] + About Koha + [% END %] + [% END %] +[% END %] + +
+
+
+ [% INCLUDE 'messages.inc' %] + +

About Koha

+ + [% WRAPPER tabs id= "abouttabs" %] + [% WRAPPER tabs_nav %] + [% WRAPPER tab_item linktab = 1 tabname = "about" bt_active = tab == "about" %] Server information [% END %] + [% WRAPPER tab_item linktab = 1 tabname = "perl" bt_active = tab == "perl" %] Perl modules [% END %] + [% WRAPPER tab_item linktab = 1 tabname = "sysinfo" bt_active = tab == "sysinfo" %] System information [% END %] + [% WRAPPER tab_item linktab = 1 tabname = "team" bt_active = tab == "team" %] Koha team [% END %] + [% WRAPPER tab_item linktab = 1 tabname = "licenses" bt_active = tab == "licenses" %] Licenses [% END %] + [% WRAPPER tab_item linktab = 1 tabname = "translations" bt_active = tab == "translations" %] Translations [% END %] + [% WRAPPER tab_item linktab = 1 tabname = "history" bt_active = tab == "history" %] Timeline [% END %] + [% WRAPPER tab_item linktab = 1 tabname = "dedications" bt_active = tab == "dedications" %] Dedications [% END %] + [% END %] + [% WRAPPER tab_panels %] + [% SWITCH tab %] + [% CASE 'about' %] [% PROCESS about_panel %] + [% CASE 'perl' %] [% PROCESS perl_panel %] + [% CASE 'sysinfo' %] [% PROCESS sysinfo_panel %] + [% CASE 'team' %] [% PROCESS team_panel %] + [% CASE 'licenses' %] [% PROCESS licenses_panel %] + [% CASE 'translations' %] [% PROCESS translations_panel %] + [% CASE 'history' %] [% PROCESS history_panel %] + [% CASE 'dedications' %] [% PROCESS dedications_panel %] + [% CASE %] [% PROCESS about_panel %] + [% END %] + [% END %] + [% END # /WRAPPER abouttabs %] +
+
+ +[% INCLUDE 'intranet-bottom.inc' %] + +[% BLOCK about_panel %] + [% WRAPPER tab_panel tabname= "about" bt_active = 1 %] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + [% IF (is_psgi) %] + + + + + [% END %] + [% IF Koha.Preference('SearchEngine') == 'Elasticsearch' %] + + + [% IF elasticsearch_fatal_config_error %] + + [% ELSE %] + [% IF elasticsearch_status.running %] + + [% END # /IF elasticsearch_fatal_config_error %] + + [% END %] + + + [% IF memcached_running AND is_memcached_still_active AND where_is_memcached_config == 'config_only' %] + + + + + + + + + [% IF (errZebraConnection == 10000) %] + + [% ELSIF (errZebraConnection) %] + + [% ELSE %] + + [% END %] + + + + [% IF warnConnectBroker %] + + [% ELSE %] + + [% END %] + + + + + + + [% timezone_config_class = (time_zone.config_invalid) ? 'bg-warning' : '' %] + [% timezone_env_class = (time_zone.env_invalid) ? 'bg-warning' : '' %] + + + +
Server information
Koha version: [% kohaVersion | html %][% IF kohaCodename %] [% kohaCodename | html %][% END %]
OS version ('uname -a'): [% osVersion | html %]
Perl interpreter: [% perlPath | html %]
Perl version: [% perlVersion | html %]
Perl @INC: + [% FOREACH perlIncPat IN perlIncPath %] + [% perlIncPat.perlinc | html %]
+ [% END %] +
MySQL version: [% mysqlVersion | html %]
Apache version: [% apacheVersion | html %]
PSGI: [% psgi_server | html %]
Elasticsearch: [% elasticsearch_fatal_config_error | html %] + [% ELSE %] + + [% END %] + Version: + [% elasticsearch_status.version | html %] + | + Nodes: + [% elasticsearch_status.nodes.join(' / ') | html %] + | + Status: + [% IF elasticsearch_status.running %] + running + | + Indices: + [% FOREACH index IN elasticsearch_status.indexes %] + [% index.index_name | html %] + (count: [% index.index_count | html %]) + [% UNLESS loop.last %], [% END %] + [% END %] + [% ELSE %] + not running + [% END %] +
Memcached: + [% ELSE %] + + [% END %] + Servers: + [% IF memcached_servers %] + [% memcached_servers | html %] + [% ELSE %] + undefined + [% END %] | + Namespace: + [% IF memcached_namespace %] + [% memcached_namespace | html %] + [% ELSE %] + undefined + [% END %] | + Status: + [% IF memcached_servers %] + [% IF memcached_running and is_memcached_still_active %] + running. + [% ELSE %] + not running. + [% IF is_psgi %] + Remember memcached needs to be started before Plack. + [% END %] + [% END %] + [% ELSE %] + unknown + [% END %] | + Config read from: + [% SWITCH where_is_memcached_config %] + [% CASE 'config_only' %] + koha-conf.xml + [% CASE 'ENV_only' %] + ENV Note that the right place to define the memcached config is in your $KOHA_CONF file + [% CASE 'both' %] + ENV and koha-conf.xml Note that the right place to define the memcached config is in your $KOHA_CONF file. To avoid any misunderstanding you should not export the memcached config from ENV. + [% CASE # nowhere %] + Nowhere Note that the right place to define the memcached config is in your $KOHA_CONF file. Currently you do not have a valid memcached configuration defined. + [% END %] + [% IF effective_caching_method != 'Cache::Memcached::Fast::Safe' %] + | Effective caching method: [% effective_caching_method | html %] + [% END %] +
Zebra version: [% zebraVersion | html %]
Zebra status: Zebra server seems not to be available. Is it started?Error message from Zebra: [% ( errZebraConnection ) | html %]Running
Message broker: Using SQL pollingUsing RabbitMQ
Date and time: [% current_date_and_time | $KohaDates with_hours => 1 %]
Time zone: + Used: [% time_zone.actual | html %] + [% IF time_zone.actual_bad_tz_fallback %] + (This is a fallback value due to a bad configuration) + [% END %] + | + Config: + [% IF time_zone.config != '' %] + [% time_zone.config | html %] + [% ELSE %] + Undefined + [% END %] | + Environment (TZ): + [% IF time_zone.environment != '' %] + [% time_zone.environment | html %] + [% ELSE %] + Undefined + [% END %] +
+ [% END # tab=about %] +[% END %] + +[% BLOCK perl_panel %] + [% WRAPPER tab_panel tabname= "perl" bt_active = 1 %] + + + [% FOREACH tabl IN table %] + + [% FOREACH ro IN tabl.row %] + [% IF ( ro.current ) %] + [% IF ( ro.require ) %] + + [% IF ( ro.name == '' ) %] + + [% END # /FOREACH ro %] + + [% END # /FOREACH tabl %] +
Perl modules
+ [% ELSE %] + + [% END %] + [% ELSIF ( ro.upgrade ) %] + [% IF ( ro.require ) %] + + [% ELSE %] + + [% END %] + [% ELSE %] + [% IF ( ro.name == '' ) %] + + [% ELSIF ( ro.require ) %] + + [% ELSE %] + + [% END %] + [% END # /IF ro.current %] + [% IF ( ro.name ) %] + [% ro.name | html %] + + ([% ro.reqversion | html %] + [% IF ro.maxversion %] - [% ro.maxversion | html %][% END %] + [% IF ro.excversion %][% FOR v IN ro.excversion %], ![% v | html %][% END %][% END %]) + + [% END %] + + [% ELSIF ( ro.version ) %] + [% ro.version | html %] + [% ELSE %] + Not Installed + [% END %] +
+ [% END # tab=perl %] +[% END %] + +[% BLOCK sysinfo_panel %] + [% IF Asset.css("css/staff-global.css") == "" || Asset.js("js/vue/dist/erm.js") == "" %] + [% SET warnMissingCompiledFiles = 1 %] + [% END %] + [% WRAPPER tab_panel tabname= "sysinfo" bt_active = 1 %] + [% IF weasyprint_missing || warnPrefRequireChoosingExistingAuthority || warnPrefEasyAnalyticalRecords || warnPrefAnonymousPatronOPACPrivacy || warnPrefAnonymousPatronAnonSuggestions || warnPrefAnonymousPatronOPACPrivacy_PatronDoesNotExist || warnPrefAnonymousPatronAnonSuggestions_PatronDoesNotExist || warnPrefKohaAdminEmailAddress || warnPrefOpacHiddenItems || warnPrefPatronSelfRegistrationDefaultCategory || invalid_yesno.count || warnNoActiveCurrency || warnIsRootUser || xml_config_warnings.size || warnI18nMissing || AutoSelfCheckPatronDoesNotHaveSelfCheckPerm || AutoSelfCheckPatronHasTooManyPerm || warnStatisticsFieldsError || warnNoTemplateCaching || warnILLConfiguration || has_ai_issues || oauth2_missing_deps || bad_yaml_prefs || warnRelationships || log4perl_errors || config_bcrypt_settings_no_set || warnHiddenBiblionumbers.size || warnConnectBroker || elasticsearch_has_missing || warnMissingCompiledFiles || warnDbRowFormat %] + [% IF ( warnDbRowFormat ) %] +

Database row format incorrect

+

Database tables with a row format other than 'DYNAMIC': [% warnDbRowFormat | html %]

+

You may experience problems upgrading to newer versions of Koha unless you update the row format for your database tables.

+

To know how to avoid this problem see the related wiki page: + Database row format +

+ [% END %] + + [% IF (warnIsRootUser) %] +

Warning regarding current user

+

You are logged in as the database administrative user. This is not recommended because some parts of Koha will not function as expected when using this account.

+

Please log in instead with a regular staff account. To create a staff account, create a library, a patron category 'Staff' and add a new patron. Then give this patron permissions from 'More' in the toolbar.

+ [% END # /IF warnIsRootUser %] + + [% IF has_ai_issues %] +

Data problems

+

+ Some of your tables have problems with their auto_increment values which may lead to data loss. +

+

+ You should not ignore this warning. +

+

+ The problem is that InnoDB does not keep auto_increment across SQL server restarts (it is only set in memory). So on server startup the auto_increment values are set to max(table.id)+1. +

+

To know how to avoid this problem see the related wiki page: + DBMS auto increment fix +

+ +

Problems found

+ [% IF ai_patrons %] +

Patrons

+

The following IDs exist in both tables [% "borrowers" | $HtmlTags tag="strong" %] and [% "deletedborrowers" | $HtmlTags tag="strong" %]:

+

+ [% FOR p IN ai_patrons %] + [% p.borrowernumber | html %] + [% UNLESS loop.last %], [% END %] + [% END %] +

+ [% END %] + [% IF ai_biblios %] +

Bibliographic records

+

The following IDs exist in both tables [% "biblio" | $HtmlTags tag="strong" %] and [% "deletedbiblio" | $HtmlTags tag="strong" %]:

+

+ [% FOR b IN ai_biblios %] + [% b.biblionumber | html %] + [% UNLESS loop.last %], [% END %] + [% END %] +

+ [% END %] + [% IF ai_biblioitems %] +

Bibliographic records

+

The following IDs exist in both tables [% "biblio" | $HtmlTags tag="strong" %] and [% "deletedbiblioitems" | $HtmlTags tag="strong" %]:

+

+ [% FOR b IN ai_biblioitems %] + [% b.biblioitemnumber | html %] + [% UNLESS loop.last %], [% END %] + [% END %] +

+ [% END %] + [% IF ai_items %] +

Items

+

The following IDs exist in both tables [% "items" | $HtmlTags tag="strong" %] and [% "deleteditems" | $HtmlTags tag="strong" %]:

+

+ [% FOR i IN ai_items %] + [% i.itemnumber | html %] + [% UNLESS loop.last %], [% END %] + [% END %] +

+ [% END %] + [% IF ai_checkouts %] +

Checkouts

+

The following IDs exist in both tables [% "issues" | $HtmlTags tag="strong" %] and [% "old_issues" | $HtmlTags tag="strong" %]:

+

+ [% FOR c IN ai_checkouts %] + [% c.issue_id | html %] + [% UNLESS loop.last %], [% END %] + [% END %] +

+ [% END %] + [% IF ai_holds %] +

Holds

+

The following IDs exist in both tables [% "reserves" | $HtmlTags tag="strong" %] and [% "old_reserves" | $HtmlTags tag="strong" %]:

+

+ [% FOR h IN ai_holds %] + [% h.reserve_id | html %] + [% UNLESS loop.last %], [% END %] + [% END %] +

+ [% END %] +
+ [% END # /IF has_ai_issues %] + + [% IF warnRelationships %] +

Patron relationship problems

+ [% IF bad_relationships_count %] +

Your database contained guarantee/guarantor pairs with no defined relationship. They have been set the value '_bad_data' in the [% "borrowers.relationship" | $HtmlTags tag="strong" %] and/or [% "borrower_relationships.relationship" | $HtmlTags tag="strong" %] columns. Fix them manually by recreating those relationships, or have your system's administrator correct the values.

+ [% END # /IF bad_relationships_count %] + + [% IF wrong_relationships %] +

The following values have been used for guarantee/guarantor relationships, but do not exist in the 'borrowerRelationship' system preference:

+
    + [% FOR rel IN wrong_relationships %] +
  • [% rel.0 | html %]
  • + [% END %] +
+

If the relationship is one you want, please add it to the 'borrowerRelationship' system preference, otherwise have your system's administrator correct the values in [% "borrowers.relationship" | $HtmlTags tag="strong" %] and/or [% "borrower_relationships.relationship" | $HtmlTags tag="strong" %] in the database.

+ [% END # /IF wrong_relationships %] + [% END # /IF warnRelationships %] + + [% IF log4perl_errors %] +

Logging system does not behave correctly

+ [% FOR e IN log4perl_errors %] + [% SWITCH e %] + [% CASE 'missing_config_entry' %]There is no 'log4perl_conf' entry in the config file. + [% CASE 'cannot_read_config_file' %]The log4perl config file cannot be opened. + [% CASE 'logfile_not_writable' %]One of the logfiles listed in the config file is not writable. + [% CASE 'cannot_init_module' %]The Koha::Logger module cannot be initiated correctly (check the log file). + [% CASE %]Unknown error '[% e | html %]'. + [% END %] + [% END # /FOR e %] + [% END # /IF log4perl_errors %] + + [% IF warnConnectBroker %] +

Impossible to connect to the message broker

+ There is an error when trying to connect to the message broker (RabbitMQ), check the Koha log files. +
+ Maybe it is not installed and configured correctly? +
+ Contact your system administrator. + [% END # /IF warnConnectBroker %] + + [% IF weasyprint_missing || warnPrefRequireChoosingExistingAuthority || warnPrefEasyAnalyticalRecords || warnPrefAnonymousPatronOPACPrivacy || warnPrefAnonymousPatronAnonSuggestions || warnPrefAnonymousPatronOPACPrivacy_PatronDoesNotExist || warnPrefAnonymousPatronAnonSuggestions_PatronDoesNotExist || warnPrefKohaAdminEmailAddress || warnPrefOpacHiddenItems || warnPrefPatronSelfRegistrationDefaultCategory || invalid_yesno.count || warnNoActiveCurrency || AutoSelfCheckPatronDoesNotHaveSelfCheckPerm || AutoSelfCheckPatronHasTooManyPerm || warnStatisticsFieldsError || warnNoTemplateCaching || warnILLConfiguration || warnXSLT || oauth2_missing_deps || bad_yaml_prefs || warnIssuingRules || config_bcrypt_settings_no_set || warnHiddenBiblionumbers.size || warnFastCataloging %] +

Warnings regarding the system configuration

+ + + [% IF (warnFastCataloging) %] + + + + + [% END %] + [% IF (warnPrefRequireChoosingExistingAuthority) %] + + + + + [% END %] + [% IF (warnPrefEasyAnalyticalRecords) %] + + + + + [% END %] + [% IF warnPrefAnonymousPatronOPACPrivacy %] + + + + + [% END %] + [% IF warnPrefAnonymousPatronAnonSuggestions %] + + + + + [% END %] + [% IF warnPrefAnonymousPatronOPACPrivacy_PatronDoesNotExist %] + + + + + [% END %] + [% IF warnPrefAnonymousPatronAnonSuggestions_PatronDoesNotExist %] + + + + + [% END %] + [% IF warnPrefKohaAdminEmailAddress %] + + + + + [% END %] + [% IF warnPrefOpacHiddenItems %] + + + + [% END %] + [% IF warnPrefPatronSelfRegistrationDefaultCategory %] + + [% END %] + [% IF warnXSLT %] + [% FOR p IN warnXSLT %] + + + + [% END %] + [% END %] + [% IF invalid_yesno.count %] + [% FOR p IN invalid_yesno %] + + + + + [% END %] + [% END %] + [% IF warnNoActiveCurrency %] + + + + + [% END %] + [% IF warnStatisticsFieldsError %] + + + + + [% END %] + [% IF AutoSelfCheckPatronDoesNotHaveSelfCheckPerm %] + + + + + [% END %] + [% IF AutoSelfCheckPatronHasTooManyPerm %] + + + + + [% END %] + [% IF warnNoTemplateCaching %] + + + + + [% END %] + [% IF warnI18nMissing %] + + + + + [% END %] + [% IF warnILLConfiguration %] + [% IF no_ill_backends %] + + + + + [% END %] + [% IF ill_partner_code_not_defined %] + + + + + [% END %] + [% IF ill_partner_code_no_patrons %] + + + + + [% END %] + [% IF ill_branch_not_defined %] + + + + + [% END %] + [% IF ill_partner_code_doesnt_exist %] + + + + + [% END %] + [% END %] + + [% IF weasyprint_missing %] + + [% END %] + + [% IF oauth2_missing_deps %] + + + + + [% END %] + [% IF bad_yaml_prefs %] + + + + + [% END %] + [% IF config_bcrypt_settings_no_set %] + + + + + [% END %] + [% IF warnHiddenBiblionumbers.size %] + + + + + [% END %] + [% IF Koha.Preference('SearchEngine') == 'Elasticsearch' && elasticsearch_status.version.substr(0,1) < 6 %] + + + + + [% END %] +
Preferences and parameters
Warning There is no "Fast add" (FA) framework defined in administration->MARC frameworks. This disables the 'Fast cataloging' feature in cataloging/circulation.
Warning System preference 'RequireChoosingExistingAuthority' is disabled, but needs 'AutoCreateAuthorites' enabled. Otherwise catalogers can add headings that will not be linked to authorities.
Warning System preference 'EasyAnalyticalRecords' set, but UseControlNumber preference is set to 'Use'. Set it to 'Don't use' or else the 'Show analytics' links in the staff interface and the OPAC will be broken.
Error System preference 'OPACPrivacy' set, but AnonymousPatron preference is set to '0'. Set it to a valid borrower number or checkins for these patrons will fail.
Warning System preference 'AnonSuggestions' set, but AnonymousPatron preference is set to '0'. Set it to a valid borrower number if you want that this feature works correctly.
Error Some patrons have requested privacy after their items are checked in, but the AnonymousPatron preference is not set correctly. Set it to a valid borrower number or checkins for these patrons will fail.
Warning System preference 'AnonSuggestions' set, but AnonymousPatron preference is not set correctly. Set it to a valid borrower number if you want that this feature works correctly.
Warning System preference 'KohaAdminEmailAddress' does not contain a valid email address. Emails will not be sent.
Warning System preference 'OpacHiddenItems' generates a warning and will produce unexpected behaviors: [% warnPrefOpacHiddenItems | html %]
Warning System preference 'PatronSelfRegistration' is set, but 'PatronSelfRegistrationDefaultCategory' does not contain a valid patron category code. Patron self-registration is disabled.
Warning System preference '[% p.syspref | html %]' is '[% p.value | html %]', but the file '[% p.filename | html %]' does not exist.
Warning System preference '[% p.variable | html %]' must be '0' or '1', but is [% IF p.value.defined %]'[% p.value | html%]'[% ELSE %]NULL[% END %].
Warning No active currency is defined. Please go to Administration > Currencies and exchange rates and mark one currency as active.
Warning System preference 'StatisticsFields' contains field names not belonging to the items database table: [% warnStatisticsFieldsError | html %]
Warning + The patron used for the self checkout module at the OPAC does not have the self_check => self_checkout_module permission. +
Warning + The patron used for the self checkout module at the OPAC has too many permissions. They should only have self_check => self_checkout_module. +
Warning + You are missing the <template_cache_dir> entry in your koha-conf.xml file. + That will bring a performance boost to enable it. +
Warning + The PO directory has not been found. See the dedicated wiki page for more information. +
Warning + The ILL module is enabled, but there are no backends available. +
Warning + The ILL module is enabled, but ILLPartnerCode system preference is empty. Falling back to the hardcoded 'IL'. +
Warning + The ILL module is enabled and ILLPartnerCode system preference configured, but there are no patrons in [% ill_partner_code_no_patrons | html %] category. +
Warning + The ILL module is enabled, but no 'branch' block is defined in koha-conf.xml. You must define this block before use. +
Warning + The ILL module is enabled, but the configured ILLPartnerCode ([% ill_partner_code_doesnt_exist | html %]) is not defined on the system. +
Warning + The weasyprint tool is not installed. +
Warning + System preference 'RESTOAuth2ClientCredentials' is set, but the required Net::OAuth2::AuthorizationServer dependency is missing. The feature is disabled. +
Warning + Some system preferences have badly formatted YAML content: [% bad_yaml_prefs.join(', ') | html %] +
Warning + System preference 'Pseudonymization' is set, but there is not 'bcrypt_settings' entry defined in the $KOHA_CONF file. +
Warning + [% FOR w IN warnHiddenBiblionumbers %] + Bibliographic framework "[% w.frameworkcode | html %]" has the biblionumber field hidden at the interface [% w.interface | html %]
+ [% END %] +
Deprecation warning + Elasticsearch version 5.x is not supported in Koha 20.11 and greater. Please upgrade your Elasticsearch cluster +
+ [% END # /IF warnPrefRequireChoosingExistingAuthority %] + + [% IF xml_config_warnings.size %] + + + [% FOREACH config_entry IN xml_config_warnings %] + [% IF config_entry.error == 'zebra_bib_index_mode_is_grs1' %] + + + + + [% ELSIF config_entry.error == 'zebra_auth_index_mode_is_grs1' %] + + + + + [% ELSIF config_entry.error == 'use_zebra_facets_entry_missing' %] + + + + + [% ELSIF config_entry.error == 'log4perl_entry_missing' %] + + + + + [% ELSIF config_entry.error == 'lockdir_entry_missing' %] + + + + + [% ELSIF config_entry.error == 'lockdir_not_writable' %] + + + + + [% ELSIF config_entry.error == 'uploadpath_entry_missing' %] + + + + + [% ELSIF config_entry.error == 'uploadpath_and_opacbaseurl_entry_missing' %] + + + + + [% ELSIF config_entry.error == 'tmp_path_missing' %] + + + + + [% ELSIF config_entry.error == 'encryption_key_missing' %] + + + + + [% END # /IF config_entry.error %] + [% END # /FOREACH config_entry %] +
XML configuration file
Warning + The <zebra_bib_index_mode> entry set to 'grs1', which is no longer supported. + Please use DOM instead. To switch follow this page of wiki: + Switching to dom indexing +
Warning + The <zebra_auth_index_mode> entry set to 'grs1', which is no longer supported. + Please use DOM instead. To switch follow this page of wiki: + Switching to dom indexing +
Warning + The <use_zebra_facets> entry is missing in your configuration file. Falling back + to legacy facet calculation. +
Warning + You are missing the <log4perl_conf> entry in your koha-conf.xml file. Please + add it, pointing to the log4perl.conf file for your Koha instance. +
Warning + You are missing the <lockdir> entry in your koha-conf.xml file. Please + add it, pointing to your Koha instance's lock dir. +
Warning + The configured <lockdir> entry in your koha-conf.xml file points to a + non-writable directory ([% config_entry.lockdir | html %]). +
Warning + You are missing the <upload_path> entry in your koha-conf.xml file. Please + add it, pointing to the configured file upload directory for your Koha instance. +
Warning + You are missing the <upload_path> entry in your koha-conf.xml file. Please + add it, pointing to the configured file upload directory for your Koha instance. + Also note that you need to properly set the OPACBaseURL preference for the file upload plugin to work. +
Warning + You are missing the <tmp_path> entry in your koha-conf.xml file. Please + add it, pointing to the configured temporary directory for your Koha instance. + The effective temporary directory is '[% config_entry.effective_tmp_dir | html %]'. +
Warning + You are missing the <encryption_key> entry in your koha-conf.xml file. + Please generate a key. We recommend one of at least 32 bytes. (You might use 'pwgen 32' to do so.) +
+ [% END # /IF xml_config_warnings.size %] + + [% IF warnIssuingRules %] + + + [% FOREACH unit IN ir_units %] + + + + + [% END # /FOREACH unit %] +
Issuing rules
Warning + The [% unit.branchcode || 'branchcode=default' | html %], [% unit.categorycode || 'categorycode=default' | html %], [% unit.itemtype || 'itemtype=default' | html %]issuingrule will fallback to 'days' for 'lengthunit' as it is incorrectly defined as [% unit.rule_value | html %]. +
+ [% END # /IF warnIssuingRules %] + + [% IF elasticsearch_has_missing %] + + + [% FOREACH index IN elasticsearch_status.indexes %] + [% IF index.missing_count %] + + + + + [% END %] + [% END %] +
Records are not indexed in Elasticsearch
Warning + [% index.missing_count | html %] record(s) missing on a total of [% index.index_count | html %] in index [% index.index_name | html %]. +
+ [% END # /IF elasticsearch_has_missing %] + + [% IF warnMissingCompiledFiles %] + Error + Compiled CSS and/or JS files are not present. Please run `yarn build` to generate them. + + [% END # /IF warnMissingCompiledFiles %] + + [% ELSE %] +

No warnings.

+ [% END # /IF warnRequireChoosingExistingAuthority... %] + [% END # tab=sysinfo %] +[% END %] + +[% BLOCK team_panel %] + [% WRAPPER tab_panel tabname= "team" bt_active = 1 %] +

Special thanks to the following organizations

+ + +

Koha release teams

+ [% IF maintenance_team %] +
+
+

Koha [% short_version | html %][% IF kohaCodename %] ([% kohaCodename | html %])[% END %] release team

+ [% IF development_version %] +

You are running a development version of Koha

+ [% ELSE %] + [% INCLUDE team t=release_team v='release' %] + [% END %] +
+ +
+

Current maintenance team

+ [% INCLUDE team t=maintenance_team v=short_version %] + [% IF development_version %] +
  • Release maintainers: +
      + [% FOREACH m IN maintenance_team.maintainer %] +
    • [% m.version | html %] - [% INCLUDE person p=m %]
    • + [% IF maintenance_team.maintainer_assistants %] + [% FOREACH ma IN maintenance_team.maintainer_assistants %] + [% IF ma.version == ( m.version ) %] +
      • Assistant: [% INCLUDE person p=ma %]
      + [% END %] + [% END %] + [% END %] + + [% IF maintenance_team.maintainer_mentors %] + [% FOREACH mm IN maintenance_team.maintainer_mentors %] + [% IF m.version == ( mm.version ) %] +
      • Mentor: [% INCLUDE person p=mm %]
      + [% END %] + [% END %] + [% END %] + [% END %] +
    +
  • + [% END %] +
    +
    + [% ELSE %] +
    + Could not read the teams.yaml file. Please make sure <docdir> is correctly defined in koha-conf.xml. +
    + [% END # /maintenance_team %] + +

    Koha development team

    + [% IF contributors.size %] +
      + [% FOREACH contributor IN contributors %] +
    • [% INCLUDE person p=contributor %][% INCLUDE contributions p=contributor %]
    • + [% END %] +
    + [% ELSE %] +
    + Could not read the contributors.yaml file. Please make sure <docdir> is correctly defined in koha-conf.xml. +
    + [% END # /IF contributors.size %] +
    + +

    Contributing companies and institutions

    +
      +
    • Allen Ginsberg Library, USA
    • +
    • AlingsÃ¥s Public Library, Sweden
    • +
    • American Numismatic Society, USA
    • +
    • Arcadia Public Library, USA
    • +
    • Athens County Public Libraries, USA
    • +
    • BdP de la Meuse, France
    • +
    • BibLibre, France
    • +
    • Biblioteca Provincial Fr. Mamerto Esquiú (Provincia Franciscana de la Asunción), Argentina
    • +
    • Bibliotheksservice-Zentrum Baden-Württemberg (BSZ), Germany
    • +
    • Briar Cliff University, USA
    • +
    • Brimbank City Council, Australia
    • +
    • Brooklyn Law School Library, USA
    • +
    • Bibliothèque Universitaire des Langues et Civilisations (BULAC), France
    • +
    • ByWater Solutions, USA
    • +
    • California College of the Arts, USA
    • +
    • Camden County, USA
    • +
    • Carnegie Stout Library, USA
    • +
    • Calyx, Australia
    • +
    • Catalyst IT, New Zealand
    • +
    • Central Kansas Library System (CKLS), USA
    • +
    • Centre collégial des services regroupés (CCSR), Canada
    • +
    • Cheshire Libraries, United Kingdom
    • +
    • Coeur d'Alene Public Library, USA
    • +
    • Corpus Christi Public Libraries, USA
    • +
    • C & P Bibliography Services, USA
    • +
    • Dataly Tech, Greece
    • +
    • Devinim, Turkey
    • +
    • Do Space, USA
    • +
    • DoverNet, USA
    • +
    • doXulting
    • +
    • Duchesne County Library, USA
    • +
    • Escuela de Orientacion Lacaniana, Argentina
    • +
    • Fenway Library Organization, USA
    • +
    • Fargo Public Library, USA
    • +
    • Farmington Public Library, USA
    • +
    • FIT
    • +
    • Foundations Bible College & Seminary, USA
    • +
    • Goethe-Institut, Germany
    • +
    • Gothenburg University Library, Sweden
    • +
    • Halland County Library, Sweden
    • +
    • Harrison Carmel Public Library, USA
    • +
    • Hauraki District Libraries, New Zealand
    • +
    • Higher Education Libraries of Massachusetts, USA
    • +
    • Hochschule für Gesundheit (hsg), Germany
    • +
    • Hotchkiss School, USA
    • +
    • Katipo Communications, New Zealand
    • +
    • KEEP SOLUTIONS, Portugal
    • +
    • KohaAloha, New Zealand
    • +
    • Koha-Suomi Oy, Finland
    • +
    • LibLime, USA
    • +
    • Library of the Józef Piłsudski Institute of America, USA
    • +
    • Libriotech, Norway
    • +
    • Los Gatos Public Library, USA
    • +
    • Lund University Library, Sweden
    • +
    • MassCat, USA
    • +
    • Middletown Township Public Library, USA
    • +
    • National Library of Finland, Finland
    • +
    • Newcastle City Council, United Kingdom
    • +
    • New Zealand Central Agencies Library, New Zealand
    • +
    • New Zealand Ministry of Education Library, New Zealand
    • +
    • North Central Regional Library (NCRL), USA
    • +
    • Northeast Kansas Library System (NEKLS), USA
    • +
    • OPUS
    • +
    • Orex Digital, Spain
    • +
    • Oslo Public Library, Norway
    • +
    • Plano Independent School, USA
    • +
    • Plant and Food Research Limited, New Zealand
    • +
    • Prosentient Systems, Australia
    • +
    • PTFS, Maryland, USA
    • +
    • PTFS Europe Ltd, United Kingdom
    • +
    • Rijksmuseum, Amsterdam, The Netherlands
    • +
    • Rolling Hills Consolidated Libraries, USA
    • +
    • Round Rock Public Library, USA
    • +
    • SAN-Ouest Provence, France
    • +
    • Sefton Council, United Kingdom
    • +
    • software.coop, United Kingdom
    • +
    • South-East Kansas Library System (SEKLS), USA
    • +
    • South Taranaki District Council, New Zealand
    • +
    • Stockholm University Library, Sweden
    • +
    • SWITCH Library Consortium, USA
    • +
    • Talking Tech, Global
    • +
    • Tamil, France
    • +
    • Theke Solutions, Argentina
    • +
    • Tulong Aklatan, Philippines
    • +
    • Uintah Library System, USA
    • +
    • Universidad de El Salvador, El Salvador
    • +
    • Universidad Empresarial Siglo 21, Argentina
    • +
    • Universidad Nacional de Córdoba, Argentina
    • +
    • Universidad ORT Uruguay
    • +
    • Université d'Aix-Marseille, France
    • +
    • Université de Lyon 3, France
    • +
    • Université de Rennes 2, France
    • +
    • Université de St Etienne, France
    • +
    • University of the Arts London, United Kingdom
    • +
    • Vaara-kirjastot, Finland
    • +
    • Vanier College, Canada
    • +
    • Vermont Organization of Koha Automated Libraries (VOKAL), USA
    • +
    • Ville de Victoriaville, Canada
    • +
    • Virginia Tech, USA
    • +
    • Washoe County Library System, USA
    • +
    • Xercode, Spain
    • +
    + +

    Additional thanks to...

    +
      +
    • Irma Birchall
    • +
    • Rachel Hamilton-Williams (Kaitiaki from 2004 to present)
    • +
    • Stephen Hedges (early Documentation Manager)
    • +
    • Brooke Johnson
    • +
    • Jo Ransom
    • +
    • Nicholas Rosasco (Documentation Compiler)
    • +
    • Regula Sebastiao
    • +
    + [% END # tab=team %] +[% END %] + +[% BLOCK licenses_panel %] + [% WRAPPER tab_panel tabname= "licenses" bt_active = 1 %] +

    Koha

    +

    + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. +

    + +

    Bootstrap

    +

    + Bootstrap, Glyphicons Free: MIT License +

    + +

    Bootstrap Icons

    +

    + Bootstrap Icons: MIT License +

    + +

    Bridge Material Type Icon Set

    +

    + Bridge Material Type Icons Project: Creative Commons Attribution-ShareAlike 2.5 License +

    + +

    Chocolat.js

    +

    + Chocolat.js v1.1.2: GNU General Public License v3.0 +

    + +

    CodeMirror

    +

    + CodeMirror v5.40.2: MIT License +

    + +

    C3.js

    +

    + C3.js D3-based reusable chart library v0.4.11: MIT Licence +

    + +

    CSSLint

    +

    + CSSLint v0.9.8: License +

    + +

    D3

    +

    + D3 JavaScript library for visualizing data v3.5.17: ISC Licence +

    + +

    DataTables

    +

    + DataTables v.1.10.18: MIT Licence +

    + +

    Day.js

    +

    + Day.js v1.11.2: MIT License +

    + +

    Enquire.js

    +

    + Enquire.js v2.1.6: MIT License +

    + +

    FamFamFam icons

    +

    + FamFamFam Silk icons: Creative Commons Attribution 2.5 License +

    + +

    FileSaver.js

    +

    + FileSaver.js v2.0.4: MIT License

    + +

    Flatpicker

    +

    + Flatpickr v4.6.9: MIT License +

    + +

    Font Awesome

    +

    + Font Awesome v6.3.0: Creative Commons Attribution 4.0 International License, SIL Open Font License Version 1.1, MIT License +

    + +

    Font Face Observer

    +

    + Font Face Observer JavaScript library v2.3.0: BSD 2-Clause "Simplified" License +

    + +

    GreyBox

    +

    + GreyBox JavaScript Library v5.54: GNU Lesser General Public License, version 2.1 +

    + +

    HC Sticky

    +

    + HC Sticky JavaScript library v2.2.7: MIT License +

    + +

    Highlight

    +

    + Highlight jQuery Plugin v5.0: MIT License +

    + +

    HTMLHint

    +

    + HTMLHint v0.9.12: MIT License +

    + +

    Humanized Messages

    +

    + Humanized Messages v1.0: Apache License, Version 2.0 +

    + +

    JavaScript Cookie

    +

    + JavaScript Cookie v3.0.1: MIT License +

    + +

    JavaScript Diff Algorithm

    +

    + JavaScript Diff Algorithm: MIT License +

    + +

    jQuery, jQuery Migrate, and jQuery UI

    +

    + jQuery v3.6.0, jQuery Migrate, jQuery UI v1.13.2: MIT License +

    + +

    jQuery Bar Rating Plugin

    +

    + jQuery Bar Rating plugin v1.2.2: MIT License +

    + +

    jQuery Emojiarea Plugin

    +

    + Emojiarea plugin for jQuery: Apache License, Version 2.0 +

    + +

    jQuery insertAtCaret Plugin

    +

    + jQuery insertAtCaret Plugin v1.0 by the phpMyAdmin development team: GNU General Public License +

    + +

    jQuery jEditable

    +

    + jQuery jEditable: MIT Licence +

    + +

    jQuery jsTree Plugin

    +

    + jQuery jsTree Plugin v3.3.12: MIT License +

    + +

    jQuery Multiple Select Plugin

    +

    + jQuery Multiple Select plugin v1.6.0: MIT License +

    + +

    jQuery TableDnD Plugin

    +

    + Table drag and drop JQuery plugin: MIT License +

    + +

    jQuery Treetable Plugin

    +

    + jQuery Treetable Plugin 3.1.0: GNU General Public License v2.0, MIT License +

    + +

    jQuery Validation Plugin

    +

    + jQuery Validation Plugin v1.19.3: MIT License +

    + +

    JS-YAML

    +

    + JS-YAML v3.13.1: MIT License +

    + +

    JSHint

    +

    + JSHint v2.9.7: MIT License +

    + +

    JSZip

    +

    + JSZip JavaScript library v3.1.3: MIT License, GNU General Public License v3.0 +

    + +

    kjua

    +

    + kjua JavaScript library v0.6.0: MIT License +

    + +

    Leaflet

    +

    + Leaflet JavaScript library v1.0.3: BSD License +

    + +

    Noto fonts

    +

    + Noto: SIL Open Font License Version 1.1 +

    + +

    OAI XSLT stylesheet

    +

    + Adapted from the DSpace project: BSD License +

    + +

    OpenAPI 2.0 schema

    +

    + JSON Schema for Swagger 2.0 API: Apache License, Version 2.0, OpenAPI Initiative (OAI) +

    + +

    OpenJS Keyboard Shortcuts Library

    +

    + OpenJS keyboard shortcuts library: BSD License +

    + +

    RequireJS

    +

    + RequireJS JavaScript file and module loader v2.1.8: BSD License or MIT License +

    + +

    Select2

    +

    + Select2 library v4.0.13: Apache License, Version 2.0 or GNU General Public License v2.0 +

    + +

    Sortable

    +

    + Sortable JavaScript Library v1.15.0: MIT Licence +

    + +

    TinyMCE WYSIWYG Editor

    +

    + TinyMCE WYSIWYG editor v5.9.2: GNU Lesser General Public License v2.1 +

    + +

    Verovio

    +

    + Verovio: GNU General Public License v3.0, GNU Lesser General Public License v3.0 +

    + +

    Virtual Keyboard

    +

    + Virtual Keyboard v1.30.1: MIT Licence +

    + + [% END # tab=licenses %] +[% END %] + +[% BLOCK translations_panel %] + [% WRAPPER tab_panel tabname= "translations" bt_active = 1 %] +

    Translation

    +
      +
    • العربية (Arabic) Version 3.2 to 3.4, 3.16 & 3.18 by KnowledgeWare Technologies; Versions 3.6 to 3.14 by Arabic Koha support team: Karam Qubsi, Kouider Bounama, Sham Bajaa, Ghofran Alshami, Chrestian Aboud, Fatema Salem and Duaa Bazzazi. +
    • አማርኛ (Amharic) Getway II Ethiopia Co. (Yohannes Mulugeta (Team Leader), Tegene Assefa, Abiyot Bayou)
    • +
    • Armenian Tigran Zargaryan
    • +
    • Български (Bulgarian) Radoslav Kolev
    • +
    • euskara (Basque) Fernando Berrizbeitia, the librarians of Eima Katalogoa, Tabakalera International Contemporary Culture Centre, and Nere Erkiaga
    • +
    • বাংলা (Bengali) Parthasarathi Mukhopadhyay
    • +
    • 中文 (Chinese)
    • +
    • Hrvatski (Croatian)
    • +
    • čeština (Czech)
    • +
    • Dænsk (Danish)
    • +
    • Nederlands-Nederland (Dutch-The Netherlands) Ronald Wijlens, Saxion University
    • +
    • Nederlands-België (Dutch-Belgium)
    • +
    • English
    • +
    • suomi, suomen kieli (Finnish) Pasi Korkalo
    • +
    • Français (French) Kohala, Pascale Nalon (ENSMP), and many more
    • +
    • Galego (Galician) Ignacio Javier
    • +
    • Deutsch (German) Friedrich zur Hellen, Robert Hillig, Katrin Fischer, Beda Szukics, Mirko Tietgen and Marc Véron
    • +
    • ελληνικά (Greek, Modern [1453- ]) Koha Hellenic Users' Group (Georgia Katsarou, Dimitris Antonakis, Eugenios Papadopoulos), Theodoros Theodoropoulos, Panoraia Gaitanou and Kiriaki Roditi
    • +
    • עברית (Hebrew)
    • +
    • हिन्दी (Hindi)
    • +
    • Magyar (Hungarian)Agnes Imecs
    • +
    • Norsk BokmÃ¥l (Norwegian) Axel Bojer and Thomas Gramstad
    • +
    • Norsk Nynorsk (Norwegian) Unni Knutsen and Marit Kristine Ådland
    • +
    • (Indonesian)
    • +
    • Italiano (Italian) for 3.2: Zeno Tajoli, Pietro Gozzetti and Paolo Pozzan; for 3.4 and more: Zeno Tajoli, Stefano Bargioni, Paolo Bizzarri
    • +
    • 日本語 (Japanese)
    • +
    • 한국어 (Korean)
    • +
    • ಕನ್ನಡ (kannaḍa)
    • +
    • Latina (Latin)
    • +
    • Lao Anousak Anthony Souphavanh
    • +
    • Māori
    • +
    • മലയാളം (Malayalam)
    • +
    • فارسى (Persian)
    • +
    • ଓଡ଼ିଆ (ōṛiyā)
    • +
    • Polski (Polish)
    • +
    • Português (Portuguese)
    • +
    • Română (Romanian)
    • +
    • Русский (Russian) Victor Titarchuk and Serhij Dubyk
    • +
    • Español (Spanish) Bernardo González Kriegel, Héctor Castro and Tomás Cohen Arazi, with the help of the koha-es community.
    • +
    • Svenska (Swedish)
    • +
    • Tetun (Tetum) Karen Myers
    • +
    • ภาษาไทย (Thai)
    • +
    • Türkçe (Turkish) pre-3.8: Selma Aslan; for 3.8+, Suleyman Demirel University (Ugur Bulgan, Onur Erdem, Kemal Caner Bayrakci, and Alper Tutunsatar)
    • +
    • اردو(Urdu) Ata ur Rehman
    • +
    • Українська (Ukrainian) Victor Titarchuk and Serhij Dubyk
    • +
    + [% END #tab=translations %] +[% END %] + +[% BLOCK history_panel %] + [% WRAPPER tab_panel tabname= "history" bt_active = 1 %] +

    Koha history timeline

    + [% IF ! timeline_read_error %] + + + + + + + + [% FOREACH tabl IN table2 %] + + [% FOREACH ro IN tabl.row2 %] + + + [% END %] + + [% END %] +
    DateDescription
    [% ro.date | html %][% ro.desc | html %]
    + [% ELSE %] +
    + Could not read the history.txt file. Please make sure <docdir> is correctly defined in koha-conf.xml. +
    + [% END %] + [% END %] +[% END %] + +[% BLOCK dedications_panel %] + [% WRAPPER tab_panel tabname= "dedications" bt_active = 1 %] +

    22.11

    +

    + The Koha Community would like to dedicate the release of Koha 22.11 to Rosalie Blake. +

    +

    + Rosalie was the Head Librarian at Horowhenua Library Trust when Koha was started and without her Koha + would not exist. She was an inspiring leader and innovator and took the risk of her career entrusting + Chris, Joanne, Rachel and Simon to deliver the original project that became the international sensation + we all know and love. +

    +

    + She was also a practicing Justice of the Peace, a stalwart of the Levin Pottery Club and much loved + mother of Simon and Jeremy, and grandmother of Ben, Toby, Anna, Charlotte and Billy. +

    + [% END # tab=dedications %] +[% END %] \ No newline at end of file diff --git a/t/mock_templates/intranet-tmpl/prog/fr-CA/includes/accounts.inc b/t/mock_templates/intranet-tmpl/prog/fr-CA/includes/accounts.inc new file mode 100644 index 0000000000..b8376d3032 --- /dev/null +++ b/t/mock_templates/intranet-tmpl/prog/fr-CA/includes/accounts.inc @@ -0,0 +1,61 @@ +[%- BLOCK account_type_description -%] + [%- IF account.credit_type_code -%] + [%- PROCESS credit_type_description credit_type = account.credit_type -%] + [%- ELSIF account.debit_type_code -%] + [%- PROCESS debit_type_description debit_type = account.debit_type -%] + [%- END -%] + [%- PROCESS account_status_description account=account -%] +[%- END -%] + +[%- BLOCK debit_type_description -%] + [%- SWITCH debit_type.code -%] + [%- CASE 'ACCOUNT' -%]Frais d'abonnement + [%- CASE 'ACCOUNT_RENEW' -%]Frais de renouvellement d'abonnement + [%- CASE 'ARTICLE_REQUEST' -%]Frais de demande d'article + [%- CASE 'LOST' -%]Document perdu + [%- CASE 'MANUAL' -%]Frais manuel + [%- CASE 'NEW_CARD' -%]Nouvelle carte + [%- CASE 'OVERDUE' -%]Amende + [%- CASE 'PROCESSING' -%]Frais de traitement pour exemplaire perdu + [%- CASE 'RENT' -%]Frais de location + [%- CASE 'RENT_DAILY' -%]Frais quotidien de location + [%- CASE 'RENT_RENEW' -%]Renouvellement d'une location + [%- CASE 'RENT_DAILY_RENEW' -%]Renouvellement d'une location quotidienne + [%- CASE 'RESERVE' -%]Frais de réservation + [%- CASE 'RESERVE_EXPIRED' -%]Réservation en attente depuis trop longtemps + [%- CASE 'PAYOUT' -%]Paiement de la bibliothèque à l'utilisateur + [%- CASE 'VOID' -%]Le crédit a été annulé + [%- CASE -%][% debit_type.description | html %] + [%- END -%] +[%- END -%] + +[%- BLOCK credit_type_description -%] + [%- SWITCH credit_type.code -%] + [%- CASE 'CANCELLATION' -%]Frais annulé + [%- CASE 'CREDIT' -%]Crédit + [%- CASE 'DISCOUNT' -%]Rabais + [%- CASE 'FORGIVEN' -%]Amnistié + [%- CASE 'LOST_FOUND' -%]Remboursement de frais d'exemplaire perdu + [%- CASE 'OVERPAYMENT' -%]Remboursement pour paiement en trop + [%- CASE 'PAYMENT' -%]Paiement + [%- CASE 'PROCESSING_FOUND' -%]Remboursement de frais d'administration pour document perdu + [%- CASE 'PURCHASE' -%]Achat + [%- CASE 'REFUND' -%]Remboursement + [%- CASE 'WRITEOFF' -%]Amnistie + [%- CASE -%][% credit_type.description | html %] + [%- END -%] +[%- END -%] + +[%- BLOCK account_status_description -%] + [%- SWITCH account.status -%] + [%- CASE 'UNRETURNED' -%] (En accumulation) + [%- CASE 'RETURNED' -%] (Retourné) + [%- CASE 'REPLACED' -%] (Remplacé) + [%- CASE 'REFUNDED' -%] (Remboursé) + [%- CASE 'FORGIVEN' -%] (Amnistié) + [%- CASE 'VOID' -%] (Annulé) + [%- CASE 'LOST' -%] (Perdu) + [%- CASE 'CANCELLED' -%] (Annulé) + [%- CASE -%] + [%- END -%] +[%- END -%] diff --git a/t/mock_templates/intranet-tmpl/prog/fr-CA/modules/about.tt b/t/mock_templates/intranet-tmpl/prog/fr-CA/modules/about.tt new file mode 100644 index 0000000000..0f5675a5f8 --- /dev/null +++ b/t/mock_templates/intranet-tmpl/prog/fr-CA/modules/about.tt @@ -0,0 +1,1342 @@ +[% USE raw %] +[% USE HtmlTags %] +[% USE Koha %] +[% USE Asset %] +[% USE KohaDates %] +[% PROCESS 'i18n.inc' %] +[% SET footerjs = 1 %] +[% INCLUDE 'doc-head-open.inc' %] +[% FILTER collapse %] + [% t("About Koha") | html %] › + [% t("Koha") | html %] +[% END %] +[% INCLUDE 'doc-head-close.inc' %] + + +[% INCLUDE 'header.inc' %] +[% PROCESS 'about-team.inc' %] + +[% WRAPPER 'sub-header.inc' %] + [% WRAPPER breadcrumbs %] + [% WRAPPER breadcrumb_item %] + About Koha + [% END %] + [% END %] +[% END %] + +
    +
    +
    + [% INCLUDE 'messages.inc' %] + +

    About Koha

    + + [% WRAPPER tabs id= "abouttabs" %] + [% WRAPPER tabs_nav %] + [% WRAPPER tab_item linktab = 1 tabname = "about" bt_active = tab == "about" %] Server information [% END %] + [% WRAPPER tab_item linktab = 1 tabname = "perl" bt_active = tab == "perl" %] Perl modules [% END %] + [% WRAPPER tab_item linktab = 1 tabname = "sysinfo" bt_active = tab == "sysinfo" %] System information [% END %] + [% WRAPPER tab_item linktab = 1 tabname = "team" bt_active = tab == "team" %] Koha team [% END %] + [% WRAPPER tab_item linktab = 1 tabname = "licenses" bt_active = tab == "licenses" %] Licenses [% END %] + [% WRAPPER tab_item linktab = 1 tabname = "translations" bt_active = tab == "translations" %] Translations [% END %] + [% WRAPPER tab_item linktab = 1 tabname = "history" bt_active = tab == "history" %] Timeline [% END %] + [% WRAPPER tab_item linktab = 1 tabname = "dedications" bt_active = tab == "dedications" %] Dedications [% END %] + [% END %] + [% WRAPPER tab_panels %] + [% SWITCH tab %] + [% CASE 'about' %] [% PROCESS about_panel %] + [% CASE 'perl' %] [% PROCESS perl_panel %] + [% CASE 'sysinfo' %] [% PROCESS sysinfo_panel %] + [% CASE 'team' %] [% PROCESS team_panel %] + [% CASE 'licenses' %] [% PROCESS licenses_panel %] + [% CASE 'translations' %] [% PROCESS translations_panel %] + [% CASE 'history' %] [% PROCESS history_panel %] + [% CASE 'dedications' %] [% PROCESS dedications_panel %] + [% CASE %] [% PROCESS about_panel %] + [% END %] + [% END %] + [% END # /WRAPPER abouttabs %] +
    +
    + +[% INCLUDE 'intranet-bottom.inc' %] + +[% BLOCK about_panel %] + [% WRAPPER tab_panel tabname= "about" bt_active = 1 %] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + [% IF (is_psgi) %] + + + + + [% END %] + [% IF Koha.Preference('SearchEngine') == 'Elasticsearch' %] + + + [% IF elasticsearch_fatal_config_error %] + + [% ELSE %] + [% IF elasticsearch_status.running %] + + [% END # /IF elasticsearch_fatal_config_error %] + + [% END %] + + + [% IF memcached_running AND is_memcached_still_active AND where_is_memcached_config == 'config_only' %] + + + + + + + + + [% IF (errZebraConnection == 10000) %] + + [% ELSIF (errZebraConnection) %] + + [% ELSE %] + + [% END %] + + + + [% IF warnConnectBroker %] + + [% ELSE %] + + [% END %] + + + + + + + [% timezone_config_class = (time_zone.config_invalid) ? 'bg-warning' : '' %] + [% timezone_env_class = (time_zone.env_invalid) ? 'bg-warning' : '' %] + + + +
    Server information
    Koha version: [% kohaVersion | html %][% IF kohaCodename %] [% kohaCodename | html %][% END %]
    OS version ('uname -a'): [% osVersion | html %]
    Perl interpreter: [% perlPath | html %]
    Perl version: [% perlVersion | html %]
    Perl @INC: + [% FOREACH perlIncPat IN perlIncPath %] + [% perlIncPat.perlinc | html %]
    + [% END %] +
    MySQL version: [% mysqlVersion | html %]
    Apache version: [% apacheVersion | html %]
    PSGI: [% psgi_server | html %]
    Elasticsearch: [% elasticsearch_fatal_config_error | html %] + [% ELSE %] + + [% END %] + Version: + [% elasticsearch_status.version | html %] + | + Nodes: + [% elasticsearch_status.nodes.join(' / ') | html %] + | + Status: + [% IF elasticsearch_status.running %] + running + | + Indices: + [% FOREACH index IN elasticsearch_status.indexes %] + [% index.index_name | html %] + (count: [% index.index_count | html %]) + [% UNLESS loop.last %], [% END %] + [% END %] + [% ELSE %] + not running + [% END %] +
    Memcached: + [% ELSE %] + + [% END %] + Servers: + [% IF memcached_servers %] + [% memcached_servers | html %] + [% ELSE %] + undefined + [% END %] | + Namespace: + [% IF memcached_namespace %] + [% memcached_namespace | html %] + [% ELSE %] + undefined + [% END %] | + Status: + [% IF memcached_servers %] + [% IF memcached_running and is_memcached_still_active %] + running. + [% ELSE %] + not running. + [% IF is_psgi %] + Remember memcached needs to be started before Plack. + [% END %] + [% END %] + [% ELSE %] + unknown + [% END %] | + Config read from: + [% SWITCH where_is_memcached_config %] + [% CASE 'config_only' %] + koha-conf.xml + [% CASE 'ENV_only' %] + ENV Note that the right place to define the memcached config is in your $KOHA_CONF file + [% CASE 'both' %] + ENV and koha-conf.xml Note that the right place to define the memcached config is in your $KOHA_CONF file. To avoid any misunderstanding you should not export the memcached config from ENV. + [% CASE # nowhere %] + Nowhere Note that the right place to define the memcached config is in your $KOHA_CONF file. Currently you do not have a valid memcached configuration defined. + [% END %] + [% IF effective_caching_method != 'Cache::Memcached::Fast::Safe' %] + | Effective caching method: [% effective_caching_method | html %] + [% END %] +
    Zebra version: [% zebraVersion | html %]
    Zebra status: Zebra server seems not to be available. Is it started?Error message from Zebra: [% ( errZebraConnection ) | html %]Running
    Message broker: Using SQL pollingUsing RabbitMQ
    Date and time: [% current_date_and_time | $KohaDates with_hours => 1 %]
    Time zone: + Used: [% time_zone.actual | html %] + [% IF time_zone.actual_bad_tz_fallback %] + (This is a fallback value due to a bad configuration) + [% END %] + | + Config: + [% IF time_zone.config != '' %] + [% time_zone.config | html %] + [% ELSE %] + Undefined + [% END %] | + Environment (TZ): + [% IF time_zone.environment != '' %] + [% time_zone.environment | html %] + [% ELSE %] + Undefined + [% END %] +
    + [% END # tab=about %] +[% END %] + +[% BLOCK perl_panel %] + [% WRAPPER tab_panel tabname= "perl" bt_active = 1 %] + + + [% FOREACH tabl IN table %] + + [% FOREACH ro IN tabl.row %] + [% IF ( ro.current ) %] + [% IF ( ro.require ) %] + + [% IF ( ro.name == '' ) %] + + [% END # /FOREACH ro %] + + [% END # /FOREACH tabl %] +
    Perl modules
    + [% ELSE %] + + [% END %] + [% ELSIF ( ro.upgrade ) %] + [% IF ( ro.require ) %] + + [% ELSE %] + + [% END %] + [% ELSE %] + [% IF ( ro.name == '' ) %] + + [% ELSIF ( ro.require ) %] + + [% ELSE %] + + [% END %] + [% END # /IF ro.current %] + [% IF ( ro.name ) %] + [% ro.name | html %] + + ([% ro.reqversion | html %] + [% IF ro.maxversion %] - [% ro.maxversion | html %][% END %] + [% IF ro.excversion %][% FOR v IN ro.excversion %], ![% v | html %][% END %][% END %]) + + [% END %] + + [% ELSIF ( ro.version ) %] + [% ro.version | html %] + [% ELSE %] + Not Installed + [% END %] +
    + [% END # tab=perl %] +[% END %] + +[% BLOCK sysinfo_panel %] + [% IF Asset.css("css/staff-global.css") == "" || Asset.js("js/vue/dist/erm.js") == "" %] + [% SET warnMissingCompiledFiles = 1 %] + [% END %] + [% WRAPPER tab_panel tabname= "sysinfo" bt_active = 1 %] + [% IF weasyprint_missing || warnPrefRequireChoosingExistingAuthority || warnPrefEasyAnalyticalRecords || warnPrefAnonymousPatronOPACPrivacy || warnPrefAnonymousPatronAnonSuggestions || warnPrefAnonymousPatronOPACPrivacy_PatronDoesNotExist || warnPrefAnonymousPatronAnonSuggestions_PatronDoesNotExist || warnPrefKohaAdminEmailAddress || warnPrefOpacHiddenItems || warnPrefPatronSelfRegistrationDefaultCategory || invalid_yesno.count || warnNoActiveCurrency || warnIsRootUser || xml_config_warnings.size || warnI18nMissing || AutoSelfCheckPatronDoesNotHaveSelfCheckPerm || AutoSelfCheckPatronHasTooManyPerm || warnStatisticsFieldsError || warnNoTemplateCaching || warnILLConfiguration || has_ai_issues || oauth2_missing_deps || bad_yaml_prefs || warnRelationships || log4perl_errors || config_bcrypt_settings_no_set || warnHiddenBiblionumbers.size || warnConnectBroker || elasticsearch_has_missing || warnMissingCompiledFiles || warnDbRowFormat %] + [% IF ( warnDbRowFormat ) %] +

    Database row format incorrect

    +

    Database tables with a row format other than 'DYNAMIC': [% warnDbRowFormat | html %]

    +

    You may experience problems upgrading to newer versions of Koha unless you update the row format for your database tables.

    +

    To know how to avoid this problem see the related wiki page: + Database row format +

    + [% END %] + + [% IF (warnIsRootUser) %] +

    Warning regarding current user

    +

    You are logged in as the database administrative user. This is not recommended because some parts of Koha will not function as expected when using this account.

    +

    Please log in instead with a regular staff account. To create a staff account, create a library, a patron category 'Staff' and add a new patron. Then give this patron permissions from 'More' in the toolbar.

    + [% END # /IF warnIsRootUser %] + + [% IF has_ai_issues %] +

    Data problems

    +

    + Some of your tables have problems with their auto_increment values which may lead to data loss. +

    +

    + You should not ignore this warning. +

    +

    + The problem is that InnoDB does not keep auto_increment across SQL server restarts (it is only set in memory). So on server startup the auto_increment values are set to max(table.id)+1. +

    +

    To know how to avoid this problem see the related wiki page: + DBMS auto increment fix +

    + +

    Problems found

    + [% IF ai_patrons %] +

    Patrons

    +

    The following IDs exist in both tables [% "borrowers" | $HtmlTags tag="strong" %] and [% "deletedborrowers" | $HtmlTags tag="strong" %]:

    +

    + [% FOR p IN ai_patrons %] + [% p.borrowernumber | html %] + [% UNLESS loop.last %], [% END %] + [% END %] +

    + [% END %] + [% IF ai_biblios %] +

    Bibliographic records

    +

    The following IDs exist in both tables [% "biblio" | $HtmlTags tag="strong" %] and [% "deletedbiblio" | $HtmlTags tag="strong" %]:

    +

    + [% FOR b IN ai_biblios %] + [% b.biblionumber | html %] + [% UNLESS loop.last %], [% END %] + [% END %] +

    + [% END %] + [% IF ai_biblioitems %] +

    Bibliographic records

    +

    The following IDs exist in both tables [% "biblio" | $HtmlTags tag="strong" %] and [% "deletedbiblioitems" | $HtmlTags tag="strong" %]:

    +

    + [% FOR b IN ai_biblioitems %] + [% b.biblioitemnumber | html %] + [% UNLESS loop.last %], [% END %] + [% END %] +

    + [% END %] + [% IF ai_items %] +

    Items

    +

    The following IDs exist in both tables [% "items" | $HtmlTags tag="strong" %] and [% "deleteditems" | $HtmlTags tag="strong" %]:

    +

    + [% FOR i IN ai_items %] + [% i.itemnumber | html %] + [% UNLESS loop.last %], [% END %] + [% END %] +

    + [% END %] + [% IF ai_checkouts %] +

    Checkouts

    +

    The following IDs exist in both tables [% "issues" | $HtmlTags tag="strong" %] and [% "old_issues" | $HtmlTags tag="strong" %]:

    +

    + [% FOR c IN ai_checkouts %] + [% c.issue_id | html %] + [% UNLESS loop.last %], [% END %] + [% END %] +

    + [% END %] + [% IF ai_holds %] +

    Holds

    +

    The following IDs exist in both tables [% "reserves" | $HtmlTags tag="strong" %] and [% "old_reserves" | $HtmlTags tag="strong" %]:

    +

    + [% FOR h IN ai_holds %] + [% h.reserve_id | html %] + [% UNLESS loop.last %], [% END %] + [% END %] +

    + [% END %] +
    + [% END # /IF has_ai_issues %] + + [% IF warnRelationships %] +

    Patron relationship problems

    + [% IF bad_relationships_count %] +

    Your database contained guarantee/guarantor pairs with no defined relationship. They have been set the value '_bad_data' in the [% "borrowers.relationship" | $HtmlTags tag="strong" %] and/or [% "borrower_relationships.relationship" | $HtmlTags tag="strong" %] columns. Fix them manually by recreating those relationships, or have your system's administrator correct the values.

    + [% END # /IF bad_relationships_count %] + + [% IF wrong_relationships %] +

    The following values have been used for guarantee/guarantor relationships, but do not exist in the 'borrowerRelationship' system preference:

    +
      + [% FOR rel IN wrong_relationships %] +
    • [% rel.0 | html %]
    • + [% END %] +
    +

    If the relationship is one you want, please add it to the 'borrowerRelationship' system preference, otherwise have your system's administrator correct the values in [% "borrowers.relationship" | $HtmlTags tag="strong" %] and/or [% "borrower_relationships.relationship" | $HtmlTags tag="strong" %] in the database.

    + [% END # /IF wrong_relationships %] + [% END # /IF warnRelationships %] + + [% IF log4perl_errors %] +

    Logging system does not behave correctly

    + [% FOR e IN log4perl_errors %] + [% SWITCH e %] + [% CASE 'missing_config_entry' %]There is no 'log4perl_conf' entry in the config file. + [% CASE 'cannot_read_config_file' %]The log4perl config file cannot be opened. + [% CASE 'logfile_not_writable' %]One of the logfiles listed in the config file is not writable. + [% CASE 'cannot_init_module' %]The Koha::Logger module cannot be initiated correctly (check the log file). + [% CASE %]Unknown error '[% e | html %]'. + [% END %] + [% END # /FOR e %] + [% END # /IF log4perl_errors %] + + [% IF warnConnectBroker %] +

    Impossible to connect to the message broker

    + There is an error when trying to connect to the message broker (RabbitMQ), check the Koha log files. +
    + Maybe it is not installed and configured correctly? +
    + Contact your system administrator. + [% END # /IF warnConnectBroker %] + + [% IF weasyprint_missing || warnPrefRequireChoosingExistingAuthority || warnPrefEasyAnalyticalRecords || warnPrefAnonymousPatronOPACPrivacy || warnPrefAnonymousPatronAnonSuggestions || warnPrefAnonymousPatronOPACPrivacy_PatronDoesNotExist || warnPrefAnonymousPatronAnonSuggestions_PatronDoesNotExist || warnPrefKohaAdminEmailAddress || warnPrefOpacHiddenItems || warnPrefPatronSelfRegistrationDefaultCategory || invalid_yesno.count || warnNoActiveCurrency || AutoSelfCheckPatronDoesNotHaveSelfCheckPerm || AutoSelfCheckPatronHasTooManyPerm || warnStatisticsFieldsError || warnNoTemplateCaching || warnILLConfiguration || warnXSLT || oauth2_missing_deps || bad_yaml_prefs || warnIssuingRules || config_bcrypt_settings_no_set || warnHiddenBiblionumbers.size || warnFastCataloging %] +

    Warnings regarding the system configuration

    + + + [% IF (warnFastCataloging) %] + + + + + [% END %] + [% IF (warnPrefRequireChoosingExistingAuthority) %] + + + + + [% END %] + [% IF (warnPrefEasyAnalyticalRecords) %] + + + + + [% END %] + [% IF warnPrefAnonymousPatronOPACPrivacy %] + + + + + [% END %] + [% IF warnPrefAnonymousPatronAnonSuggestions %] + + + + + [% END %] + [% IF warnPrefAnonymousPatronOPACPrivacy_PatronDoesNotExist %] + + + + + [% END %] + [% IF warnPrefAnonymousPatronAnonSuggestions_PatronDoesNotExist %] + + + + + [% END %] + [% IF warnPrefKohaAdminEmailAddress %] + + + + + [% END %] + [% IF warnPrefOpacHiddenItems %] + + + + [% END %] + [% IF warnPrefPatronSelfRegistrationDefaultCategory %] + + [% END %] + [% IF warnXSLT %] + [% FOR p IN warnXSLT %] + + + + [% END %] + [% END %] + [% IF invalid_yesno.count %] + [% FOR p IN invalid_yesno %] + + + + + [% END %] + [% END %] + [% IF warnNoActiveCurrency %] + + + + + [% END %] + [% IF warnStatisticsFieldsError %] + + + + + [% END %] + [% IF AutoSelfCheckPatronDoesNotHaveSelfCheckPerm %] + + + + + [% END %] + [% IF AutoSelfCheckPatronHasTooManyPerm %] + + + + + [% END %] + [% IF warnNoTemplateCaching %] + + + + + [% END %] + [% IF warnI18nMissing %] + + + + + [% END %] + [% IF warnILLConfiguration %] + [% IF no_ill_backends %] + + + + + [% END %] + [% IF ill_partner_code_not_defined %] + + + + + [% END %] + [% IF ill_partner_code_no_patrons %] + + + + + [% END %] + [% IF ill_branch_not_defined %] + + + + + [% END %] + [% IF ill_partner_code_doesnt_exist %] + + + + + [% END %] + [% END %] + + [% IF weasyprint_missing %] + + [% END %] + + [% IF oauth2_missing_deps %] + + + + + [% END %] + [% IF bad_yaml_prefs %] + + + + + [% END %] + [% IF config_bcrypt_settings_no_set %] + + + + + [% END %] + [% IF warnHiddenBiblionumbers.size %] + + + + + [% END %] + [% IF Koha.Preference('SearchEngine') == 'Elasticsearch' && elasticsearch_status.version.substr(0,1) < 6 %] + + + + + [% END %] +
    Preferences and parameters
    Warning There is no "Fast add" (FA) framework defined in administration->MARC frameworks. This disables the 'Fast cataloging' feature in cataloging/circulation.
    Warning System preference 'RequireChoosingExistingAuthority' is disabled, but needs 'AutoCreateAuthorites' enabled. Otherwise catalogers can add headings that will not be linked to authorities.
    Warning System preference 'EasyAnalyticalRecords' set, but UseControlNumber preference is set to 'Use'. Set it to 'Don't use' or else the 'Show analytics' links in the staff interface and the OPAC will be broken.
    Error System preference 'OPACPrivacy' set, but AnonymousPatron preference is set to '0'. Set it to a valid borrower number or checkins for these patrons will fail.
    Warning System preference 'AnonSuggestions' set, but AnonymousPatron preference is set to '0'. Set it to a valid borrower number if you want that this feature works correctly.
    Error Some patrons have requested privacy after their items are checked in, but the AnonymousPatron preference is not set correctly. Set it to a valid borrower number or checkins for these patrons will fail.
    Warning System preference 'AnonSuggestions' set, but AnonymousPatron preference is not set correctly. Set it to a valid borrower number if you want that this feature works correctly.
    Warning System preference 'KohaAdminEmailAddress' does not contain a valid email address. Emails will not be sent.
    Warning System preference 'OpacHiddenItems' generates a warning and will produce unexpected behaviors: [% warnPrefOpacHiddenItems | html %]
    Warning System preference 'PatronSelfRegistration' is set, but 'PatronSelfRegistrationDefaultCategory' does not contain a valid patron category code. Patron self-registration is disabled.
    Warning System preference '[% p.syspref | html %]' is '[% p.value | html %]', but the file '[% p.filename | html %]' does not exist.
    Warning System preference '[% p.variable | html %]' must be '0' or '1', but is [% IF p.value.defined %]'[% p.value | html%]'[% ELSE %]NULL[% END %].
    Warning No active currency is defined. Please go to Administration > Currencies and exchange rates and mark one currency as active.
    Warning System preference 'StatisticsFields' contains field names not belonging to the items database table: [% warnStatisticsFieldsError | html %]
    Warning + The patron used for the self checkout module at the OPAC does not have the self_check => self_checkout_module permission. +
    Warning + The patron used for the self checkout module at the OPAC has too many permissions. They should only have self_check => self_checkout_module. +
    Warning + You are missing the <template_cache_dir> entry in your koha-conf.xml file. + That will bring a performance boost to enable it. +
    Warning + The PO directory has not been found. See the dedicated wiki page for more information. +
    Warning + The ILL module is enabled, but there are no backends available. +
    Warning + The ILL module is enabled, but ILLPartnerCode system preference is empty. Falling back to the hardcoded 'IL'. +
    Warning + The ILL module is enabled and ILLPartnerCode system preference configured, but there are no patrons in [% ill_partner_code_no_patrons | html %] category. +
    Warning + The ILL module is enabled, but no 'branch' block is defined in koha-conf.xml. You must define this block before use. +
    Warning + The ILL module is enabled, but the configured ILLPartnerCode ([% ill_partner_code_doesnt_exist | html %]) is not defined on the system. +
    Warning + The weasyprint tool is not installed. +
    Warning + System preference 'RESTOAuth2ClientCredentials' is set, but the required Net::OAuth2::AuthorizationServer dependency is missing. The feature is disabled. +
    Warning + Some system preferences have badly formatted YAML content: [% bad_yaml_prefs.join(', ') | html %] +
    Warning + System preference 'Pseudonymization' is set, but there is not 'bcrypt_settings' entry defined in the $KOHA_CONF file. +
    Warning + [% FOR w IN warnHiddenBiblionumbers %] + Bibliographic framework "[% w.frameworkcode | html %]" has the biblionumber field hidden at the interface [% w.interface | html %]
    + [% END %] +
    Deprecation warning + Elasticsearch version 5.x is not supported in Koha 20.11 and greater. Please upgrade your Elasticsearch cluster +
    + [% END # /IF warnPrefRequireChoosingExistingAuthority %] + + [% IF xml_config_warnings.size %] + + + [% FOREACH config_entry IN xml_config_warnings %] + [% IF config_entry.error == 'zebra_bib_index_mode_is_grs1' %] + + + + + [% ELSIF config_entry.error == 'zebra_auth_index_mode_is_grs1' %] + + + + + [% ELSIF config_entry.error == 'use_zebra_facets_entry_missing' %] + + + + + [% ELSIF config_entry.error == 'log4perl_entry_missing' %] + + + + + [% ELSIF config_entry.error == 'lockdir_entry_missing' %] + + + + + [% ELSIF config_entry.error == 'lockdir_not_writable' %] + + + + + [% ELSIF config_entry.error == 'uploadpath_entry_missing' %] + + + + + [% ELSIF config_entry.error == 'uploadpath_and_opacbaseurl_entry_missing' %] + + + + + [% ELSIF config_entry.error == 'tmp_path_missing' %] + + + + + [% ELSIF config_entry.error == 'encryption_key_missing' %] + + + + + [% END # /IF config_entry.error %] + [% END # /FOREACH config_entry %] +
    XML configuration file
    Warning + The <zebra_bib_index_mode> entry set to 'grs1', which is no longer supported. + Please use DOM instead. To switch follow this page of wiki: + Switching to dom indexing +
    Warning + The <zebra_auth_index_mode> entry set to 'grs1', which is no longer supported. + Please use DOM instead. To switch follow this page of wiki: + Switching to dom indexing +
    Warning + The <use_zebra_facets> entry is missing in your configuration file. Falling back + to legacy facet calculation. +
    Warning + You are missing the <log4perl_conf> entry in your koha-conf.xml file. Please + add it, pointing to the log4perl.conf file for your Koha instance. +
    Warning + You are missing the <lockdir> entry in your koha-conf.xml file. Please + add it, pointing to your Koha instance's lock dir. +
    Warning + The configured <lockdir> entry in your koha-conf.xml file points to a + non-writable directory ([% config_entry.lockdir | html %]). +
    Warning + You are missing the <upload_path> entry in your koha-conf.xml file. Please + add it, pointing to the configured file upload directory for your Koha instance. +
    Warning + You are missing the <upload_path> entry in your koha-conf.xml file. Please + add it, pointing to the configured file upload directory for your Koha instance. + Also note that you need to properly set the OPACBaseURL preference for the file upload plugin to work. +
    Warning + You are missing the <tmp_path> entry in your koha-conf.xml file. Please + add it, pointing to the configured temporary directory for your Koha instance. + The effective temporary directory is '[% config_entry.effective_tmp_dir | html %]'. +
    Warning + You are missing the <encryption_key> entry in your koha-conf.xml file. + Please generate a key. We recommend one of at least 32 bytes. (You might use 'pwgen 32' to do so.) +
    + [% END # /IF xml_config_warnings.size %] + + [% IF warnIssuingRules %] + + + [% FOREACH unit IN ir_units %] + + + + + [% END # /FOREACH unit %] +
    Issuing rules
    Warning + The [% unit.branchcode || 'branchcode=default' | html %], [% unit.categorycode || 'categorycode=default' | html %], [% unit.itemtype || 'itemtype=default' | html %]issuingrule will fallback to 'days' for 'lengthunit' as it is incorrectly defined as [% unit.rule_value | html %]. +
    + [% END # /IF warnIssuingRules %] + + [% IF elasticsearch_has_missing %] + + + [% FOREACH index IN elasticsearch_status.indexes %] + [% IF index.missing_count %] + + + + + [% END %] + [% END %] +
    Records are not indexed in Elasticsearch
    Warning + [% index.missing_count | html %] record(s) missing on a total of [% index.index_count | html %] in index [% index.index_name | html %]. +
    + [% END # /IF elasticsearch_has_missing %] + + [% IF warnMissingCompiledFiles %] + Error + Compiled CSS and/or JS files are not present. Please run `yarn build` to generate them. + + [% END # /IF warnMissingCompiledFiles %] + + [% ELSE %] +

    No warnings.

    + [% END # /IF warnRequireChoosingExistingAuthority... %] + [% END # tab=sysinfo %] +[% END %] + +[% BLOCK team_panel %] + [% WRAPPER tab_panel tabname= "team" bt_active = 1 %] +

    Special thanks to the following organizations

    + + +

    Koha release teams

    + [% IF maintenance_team %] +
    +
    +

    Koha [% short_version | html %][% IF kohaCodename %] ([% kohaCodename | html %])[% END %] release team

    + [% IF development_version %] +

    You are running a development version of Koha

    + [% ELSE %] + [% INCLUDE team t=release_team v='release' %] + [% END %] +
    + +
    +

    Current maintenance team

    + [% INCLUDE team t=maintenance_team v=short_version %] + [% IF development_version %] +
  • Release maintainers: +
      + [% FOREACH m IN maintenance_team.maintainer %] +
    • [% m.version | html %] - [% INCLUDE person p=m %]
    • + [% IF maintenance_team.maintainer_assistants %] + [% FOREACH ma IN maintenance_team.maintainer_assistants %] + [% IF ma.version == ( m.version ) %] +
      • Assistant: [% INCLUDE person p=ma %]
      + [% END %] + [% END %] + [% END %] + + [% IF maintenance_team.maintainer_mentors %] + [% FOREACH mm IN maintenance_team.maintainer_mentors %] + [% IF m.version == ( mm.version ) %] +
      • Mentor: [% INCLUDE person p=mm %]
      + [% END %] + [% END %] + [% END %] + [% END %] +
    +
  • + [% END %] +
    +
    + [% ELSE %] +
    + Could not read the teams.yaml file. Please make sure <docdir> is correctly defined in koha-conf.xml. +
    + [% END # /maintenance_team %] + +

    Koha development team

    + [% IF contributors.size %] +
      + [% FOREACH contributor IN contributors %] +
    • [% INCLUDE person p=contributor %][% INCLUDE contributions p=contributor %]
    • + [% END %] +
    + [% ELSE %] +
    + Could not read the contributors.yaml file. Please make sure <docdir> is correctly defined in koha-conf.xml. +
    + [% END # /IF contributors.size %] +
    + +

    Contributing companies and institutions

    +
      +
    • Allen Ginsberg Library, USA
    • +
    • AlingsÃ¥s Public Library, Sweden
    • +
    • American Numismatic Society, USA
    • +
    • Arcadia Public Library, USA
    • +
    • Athens County Public Libraries, USA
    • +
    • BdP de la Meuse, France
    • +
    • BibLibre, France
    • +
    • Biblioteca Provincial Fr. Mamerto Esquiú (Provincia Franciscana de la Asunción), Argentina
    • +
    • Bibliotheksservice-Zentrum Baden-Württemberg (BSZ), Germany
    • +
    • Briar Cliff University, USA
    • +
    • Brimbank City Council, Australia
    • +
    • Brooklyn Law School Library, USA
    • +
    • Bibliothèque Universitaire des Langues et Civilisations (BULAC), France
    • +
    • ByWater Solutions, USA
    • +
    • California College of the Arts, USA
    • +
    • Camden County, USA
    • +
    • Carnegie Stout Library, USA
    • +
    • Calyx, Australia
    • +
    • Catalyst IT, New Zealand
    • +
    • Central Kansas Library System (CKLS), USA
    • +
    • Centre collégial des services regroupés (CCSR), Canada
    • +
    • Cheshire Libraries, United Kingdom
    • +
    • Coeur d'Alene Public Library, USA
    • +
    • Corpus Christi Public Libraries, USA
    • +
    • C & P Bibliography Services, USA
    • +
    • Dataly Tech, Greece
    • +
    • Devinim, Turkey
    • +
    • Do Space, USA
    • +
    • DoverNet, USA
    • +
    • doXulting
    • +
    • Duchesne County Library, USA
    • +
    • Escuela de Orientacion Lacaniana, Argentina
    • +
    • Fenway Library Organization, USA
    • +
    • Fargo Public Library, USA
    • +
    • Farmington Public Library, USA
    • +
    • FIT
    • +
    • Foundations Bible College & Seminary, USA
    • +
    • Goethe-Institut, Germany
    • +
    • Gothenburg University Library, Sweden
    • +
    • Halland County Library, Sweden
    • +
    • Harrison Carmel Public Library, USA
    • +
    • Hauraki District Libraries, New Zealand
    • +
    • Higher Education Libraries of Massachusetts, USA
    • +
    • Hochschule für Gesundheit (hsg), Germany
    • +
    • Hotchkiss School, USA
    • +
    • Katipo Communications, New Zealand
    • +
    • KEEP SOLUTIONS, Portugal
    • +
    • KohaAloha, New Zealand
    • +
    • Koha-Suomi Oy, Finland
    • +
    • LibLime, USA
    • +
    • Library of the Józef Piłsudski Institute of America, USA
    • +
    • Libriotech, Norway
    • +
    • Los Gatos Public Library, USA
    • +
    • Lund University Library, Sweden
    • +
    • MassCat, USA
    • +
    • Middletown Township Public Library, USA
    • +
    • National Library of Finland, Finland
    • +
    • Newcastle City Council, United Kingdom
    • +
    • New Zealand Central Agencies Library, New Zealand
    • +
    • New Zealand Ministry of Education Library, New Zealand
    • +
    • North Central Regional Library (NCRL), USA
    • +
    • Northeast Kansas Library System (NEKLS), USA
    • +
    • OPUS
    • +
    • Orex Digital, Spain
    • +
    • Oslo Public Library, Norway
    • +
    • Plano Independent School, USA
    • +
    • Plant and Food Research Limited, New Zealand
    • +
    • Prosentient Systems, Australia
    • +
    • PTFS, Maryland, USA
    • +
    • PTFS Europe Ltd, United Kingdom
    • +
    • Rijksmuseum, Amsterdam, The Netherlands
    • +
    • Rolling Hills Consolidated Libraries, USA
    • +
    • Round Rock Public Library, USA
    • +
    • SAN-Ouest Provence, France
    • +
    • Sefton Council, United Kingdom
    • +
    • software.coop, United Kingdom
    • +
    • South-East Kansas Library System (SEKLS), USA
    • +
    • South Taranaki District Council, New Zealand
    • +
    • Stockholm University Library, Sweden
    • +
    • SWITCH Library Consortium, USA
    • +
    • Talking Tech, Global
    • +
    • Tamil, France
    • +
    • Theke Solutions, Argentina
    • +
    • Tulong Aklatan, Philippines
    • +
    • Uintah Library System, USA
    • +
    • Universidad de El Salvador, El Salvador
    • +
    • Universidad Empresarial Siglo 21, Argentina
    • +
    • Universidad Nacional de Córdoba, Argentina
    • +
    • Universidad ORT Uruguay
    • +
    • Université d'Aix-Marseille, France
    • +
    • Université de Lyon 3, France
    • +
    • Université de Rennes 2, France
    • +
    • Université de St Etienne, France
    • +
    • University of the Arts London, United Kingdom
    • +
    • Vaara-kirjastot, Finland
    • +
    • Vanier College, Canada
    • +
    • Vermont Organization of Koha Automated Libraries (VOKAL), USA
    • +
    • Ville de Victoriaville, Canada
    • +
    • Virginia Tech, USA
    • +
    • Washoe County Library System, USA
    • +
    • Xercode, Spain
    • +
    + +

    Additional thanks to...

    +
      +
    • Irma Birchall
    • +
    • Rachel Hamilton-Williams (Kaitiaki from 2004 to present)
    • +
    • Stephen Hedges (early Documentation Manager)
    • +
    • Brooke Johnson
    • +
    • Jo Ransom
    • +
    • Nicholas Rosasco (Documentation Compiler)
    • +
    • Regula Sebastiao
    • +
    + [% END # tab=team %] +[% END %] + +[% BLOCK licenses_panel %] + [% WRAPPER tab_panel tabname= "licenses" bt_active = 1 %] +

    Koha

    +

    + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. +

    + +

    Bootstrap

    +

    + Bootstrap, Glyphicons Free: MIT License +

    + +

    Bootstrap Icons

    +

    + Bootstrap Icons: MIT License +

    + +

    Bridge Material Type Icon Set

    +

    + Bridge Material Type Icons Project: Creative Commons Attribution-ShareAlike 2.5 License +

    + +

    Chocolat.js

    +

    + Chocolat.js v1.1.2: GNU General Public License v3.0 +

    + +

    CodeMirror

    +

    + CodeMirror v5.40.2: MIT License +

    + +

    C3.js

    +

    + C3.js D3-based reusable chart library v0.4.11: MIT Licence +

    + +

    CSSLint

    +

    + CSSLint v0.9.8: License +

    + +

    D3

    +

    + D3 JavaScript library for visualizing data v3.5.17: ISC Licence +

    + +

    DataTables

    +

    + DataTables v.1.10.18: MIT Licence +

    + +

    Day.js

    +

    + Day.js v1.11.2: MIT License +

    + +

    Enquire.js

    +

    + Enquire.js v2.1.6: MIT License +

    + +

    FamFamFam icons

    +

    + FamFamFam Silk icons: Creative Commons Attribution 2.5 License +

    + +

    FileSaver.js

    +

    + FileSaver.js v2.0.4: MIT License

    + +

    Flatpicker

    +

    + Flatpickr v4.6.9: MIT License +

    + +

    Font Awesome

    +

    + Font Awesome v6.3.0: Creative Commons Attribution 4.0 International License, SIL Open Font License Version 1.1, MIT License +

    + +

    Font Face Observer

    +

    + Font Face Observer JavaScript library v2.3.0: BSD 2-Clause "Simplified" License +

    + +

    GreyBox

    +

    + GreyBox JavaScript Library v5.54: GNU Lesser General Public License, version 2.1 +

    + +

    HC Sticky

    +

    + HC Sticky JavaScript library v2.2.7: MIT License +

    + +

    Highlight

    +

    + Highlight jQuery Plugin v5.0: MIT License +

    + +

    HTMLHint

    +

    + HTMLHint v0.9.12: MIT License +

    + +

    Humanized Messages

    +

    + Humanized Messages v1.0: Apache License, Version 2.0 +

    + +

    JavaScript Cookie

    +

    + JavaScript Cookie v3.0.1: MIT License +

    + +

    JavaScript Diff Algorithm

    +

    + JavaScript Diff Algorithm: MIT License +

    + +

    jQuery, jQuery Migrate, and jQuery UI

    +

    + jQuery v3.6.0, jQuery Migrate, jQuery UI v1.13.2: MIT License +

    + +

    jQuery Bar Rating Plugin

    +

    + jQuery Bar Rating plugin v1.2.2: MIT License +

    + +

    jQuery Emojiarea Plugin

    +

    + Emojiarea plugin for jQuery: Apache License, Version 2.0 +

    + +

    jQuery insertAtCaret Plugin

    +

    + jQuery insertAtCaret Plugin v1.0 by the phpMyAdmin development team: GNU General Public License +

    + +

    jQuery jEditable

    +

    + jQuery jEditable: MIT Licence +

    + +

    jQuery jsTree Plugin

    +

    + jQuery jsTree Plugin v3.3.12: MIT License +

    + +

    jQuery Multiple Select Plugin

    +

    + jQuery Multiple Select plugin v1.6.0: MIT License +

    + +

    jQuery TableDnD Plugin

    +

    + Table drag and drop JQuery plugin: MIT License +

    + +

    jQuery Treetable Plugin

    +

    + jQuery Treetable Plugin 3.1.0: GNU General Public License v2.0, MIT License +

    + +

    jQuery Validation Plugin

    +

    + jQuery Validation Plugin v1.19.3: MIT License +

    + +

    JS-YAML

    +

    + JS-YAML v3.13.1: MIT License +

    + +

    JSHint

    +

    + JSHint v2.9.7: MIT License +

    + +

    JSZip

    +

    + JSZip JavaScript library v3.1.3: MIT License, GNU General Public License v3.0 +

    + +

    kjua

    +

    + kjua JavaScript library v0.6.0: MIT License +

    + +

    Leaflet

    +

    + Leaflet JavaScript library v1.0.3: BSD License +

    + +

    Noto fonts

    +

    + Noto: SIL Open Font License Version 1.1 +

    + +

    OAI XSLT stylesheet

    +

    + Adapted from the DSpace project: BSD License +

    + +

    OpenAPI 2.0 schema

    +

    + JSON Schema for Swagger 2.0 API: Apache License, Version 2.0, OpenAPI Initiative (OAI) +

    + +

    OpenJS Keyboard Shortcuts Library

    +

    + OpenJS keyboard shortcuts library: BSD License +

    + +

    RequireJS

    +

    + RequireJS JavaScript file and module loader v2.1.8: BSD License or MIT License +

    + +

    Select2

    +

    + Select2 library v4.0.13: Apache License, Version 2.0 or GNU General Public License v2.0 +

    + +

    Sortable

    +

    + Sortable JavaScript Library v1.15.0: MIT Licence +

    + +

    TinyMCE WYSIWYG Editor

    +

    + TinyMCE WYSIWYG editor v5.9.2: GNU Lesser General Public License v2.1 +

    + +

    Verovio

    +

    + Verovio: GNU General Public License v3.0, GNU Lesser General Public License v3.0 +

    + +

    Virtual Keyboard

    +

    + Virtual Keyboard v1.30.1: MIT Licence +

    + + [% END # tab=licenses %] +[% END %] + +[% BLOCK translations_panel %] + [% WRAPPER tab_panel tabname= "translations" bt_active = 1 %] +

    Translation

    +
      +
    • العربية (Arabic) Version 3.2 to 3.4, 3.16 & 3.18 by KnowledgeWare Technologies; Versions 3.6 to 3.14 by Arabic Koha support team: Karam Qubsi, Kouider Bounama, Sham Bajaa, Ghofran Alshami, Chrestian Aboud, Fatema Salem and Duaa Bazzazi. +
    • አማርኛ (Amharic) Getway II Ethiopia Co. (Yohannes Mulugeta (Team Leader), Tegene Assefa, Abiyot Bayou)
    • +
    • Armenian Tigran Zargaryan
    • +
    • Български (Bulgarian) Radoslav Kolev
    • +
    • euskara (Basque) Fernando Berrizbeitia, the librarians of Eima Katalogoa, Tabakalera International Contemporary Culture Centre, and Nere Erkiaga
    • +
    • বাংলা (Bengali) Parthasarathi Mukhopadhyay
    • +
    • 中文 (Chinese)
    • +
    • Hrvatski (Croatian)
    • +
    • čeština (Czech)
    • +
    • Dænsk (Danish)
    • +
    • Nederlands-Nederland (Dutch-The Netherlands) Ronald Wijlens, Saxion University
    • +
    • Nederlands-België (Dutch-Belgium)
    • +
    • English
    • +
    • suomi, suomen kieli (Finnish) Pasi Korkalo
    • +
    • Français (French) Kohala, Pascale Nalon (ENSMP), and many more
    • +
    • Galego (Galician) Ignacio Javier
    • +
    • Deutsch (German) Friedrich zur Hellen, Robert Hillig, Katrin Fischer, Beda Szukics, Mirko Tietgen and Marc Véron
    • +
    • ελληνικά (Greek, Modern [1453- ]) Koha Hellenic Users' Group (Georgia Katsarou, Dimitris Antonakis, Eugenios Papadopoulos), Theodoros Theodoropoulos, Panoraia Gaitanou and Kiriaki Roditi
    • +
    • עברית (Hebrew)
    • +
    • हिन्दी (Hindi)
    • +
    • Magyar (Hungarian)Agnes Imecs
    • +
    • Norsk BokmÃ¥l (Norwegian) Axel Bojer and Thomas Gramstad
    • +
    • Norsk Nynorsk (Norwegian) Unni Knutsen and Marit Kristine Ådland
    • +
    • (Indonesian)
    • +
    • Italiano (Italian) for 3.2: Zeno Tajoli, Pietro Gozzetti and Paolo Pozzan; for 3.4 and more: Zeno Tajoli, Stefano Bargioni, Paolo Bizzarri
    • +
    • 日本語 (Japanese)
    • +
    • 한국어 (Korean)
    • +
    • ಕನ್ನಡ (kannaḍa)
    • +
    • Latina (Latin)
    • +
    • Lao Anousak Anthony Souphavanh
    • +
    • Māori
    • +
    • മലയാളം (Malayalam)
    • +
    • فارسى (Persian)
    • +
    • ଓଡ଼ିଆ (ōṛiyā)
    • +
    • Polski (Polish)
    • +
    • Português (Portuguese)
    • +
    • Română (Romanian)
    • +
    • Русский (Russian) Victor Titarchuk and Serhij Dubyk
    • +
    • Español (Spanish) Bernardo González Kriegel, Héctor Castro and Tomás Cohen Arazi, with the help of the koha-es community.
    • +
    • Svenska (Swedish)
    • +
    • Tetun (Tetum) Karen Myers
    • +
    • ภาษาไทย (Thai)
    • +
    • Türkçe (Turkish) pre-3.8: Selma Aslan; for 3.8+, Suleyman Demirel University (Ugur Bulgan, Onur Erdem, Kemal Caner Bayrakci, and Alper Tutunsatar)
    • +
    • اردو(Urdu) Ata ur Rehman
    • +
    • Українська (Ukrainian) Victor Titarchuk and Serhij Dubyk
    • +
    + [% END #tab=translations %] +[% END %] + +[% BLOCK history_panel %] + [% WRAPPER tab_panel tabname= "history" bt_active = 1 %] +

    Koha history timeline

    + [% IF ! timeline_read_error %] + + + + + + + + [% FOREACH tabl IN table2 %] + + [% FOREACH ro IN tabl.row2 %] + + + [% END %] + + [% END %] +
    DateDescription
    [% ro.date | html %][% ro.desc | html %]
    + [% ELSE %] +
    + Could not read the history.txt file. Please make sure <docdir> is correctly defined in koha-conf.xml. +
    + [% END %] + [% END %] +[% END %] + +[% BLOCK dedications_panel %] + [% WRAPPER tab_panel tabname= "dedications" bt_active = 1 %] +

    22.11

    +

    + The Koha Community would like to dedicate the release of Koha 22.11 to Rosalie Blake. +

    +

    + Rosalie was the Head Librarian at Horowhenua Library Trust when Koha was started and without her Koha + would not exist. She was an inspiring leader and innovator and took the risk of her career entrusting + Chris, Joanne, Rachel and Simon to deliver the original project that became the international sensation + we all know and love. +

    +

    + She was also a practicing Justice of the Peace, a stalwart of the Levin Pottery Club and much loved + mother of Simon and Jeremy, and grandmother of Ben, Toby, Anna, Charlotte and Billy. +

    + [% END # tab=dedications %] +[% END %] \ No newline at end of file -- 2.39.5