use C4::Installer;
use Koha;
-use Koha::Borrowers;
+use Koha::Acquisition::Currencies;
+use Koha::Patrons;
+use Koha::Caches;
use Koha::Config::SysPrefs;
+use C4::Members::Statistics;
#use Smart::Comments '####';
}
);
-my $kohaVersion = Koha::version();
-my $osVersion = `uname -a`;
my $perl_path = $^X;
if ($^O ne 'VMS') {
$perl_path .= $Config{_exe} unless $perl_path =~ m/$Config{_exe}$/i;
}
-my $perlVersion = $];
-my $mysqlVersion = `mysql -V`;
-# Get Apache version
-my $apacheVersion = (`apache2ctl -v`)[0];
-$apacheVersion = `httpd2 -v 2> /dev/null` unless $apacheVersion;
-$apacheVersion = `httpd -v 2> /dev/null` unless $apacheVersion;
+
my $zebraVersion = `zebraidx -V`;
# Check running PSGI env
);
}
+# Memcached configuration
+my $memcached_servers = $ENV{MEMCACHED_SERVERS} || C4::Context->config('memcached_servers');
+my $memcached_namespace = $ENV{MEMCACHED_NAMESPACE} || C4::Context->config('memcached_namespace') // 'koha';
+
+my $cache = Koha::Caches->get_instance;
+my $effective_caching_method = ref($cache->cache);
+# Memcached may have been running when plack has been initialized but could have been stopped since
+# FIXME What are the consequences of that??
+my $is_memcached_still_active = $cache->set_in_cache('test_for_about_page', "just a simple value");
+
+my $where_is_memcached_config = 'nowhere';
+if ( $ENV{MEMCACHED_SERVERS} and C4::Context->config('memcached_servers') ) {
+ $where_is_memcached_config = 'both';
+} elsif ( $ENV{MEMCACHED_SERVERS} and not C4::Context->config('memcached_servers') ) {
+ $where_is_memcached_config = 'ENV_only';
+} elsif ( C4::Context->config('memcached_servers') ) {
+ $where_is_memcached_config = 'config_only';
+}
+
+$template->param(
+ effective_caching_method => $effective_caching_method,
+ memcached_servers => $memcached_servers,
+ memcached_namespace => $memcached_namespace,
+ is_memcached_still_active => $is_memcached_still_active,
+ where_is_memcached_config => $where_is_memcached_config,
+ memcached_running => Koha::Caches->get_instance->memcached_cache,
+);
+
# Additional system information for warnings
+
+my $warnStatisticsFieldsError;
+my $prefStatisticsFields = C4::Context->preference('StatisticsFields');
+if ($prefStatisticsFields) {
+ $warnStatisticsFieldsError = $prefStatisticsFields
+ unless ( $prefStatisticsFields eq C4::Members::Statistics->get_fields() );
+}
+
my $prefAutoCreateAuthorities = C4::Context->preference('AutoCreateAuthorities');
my $prefBiblioAddsAuthorities = C4::Context->preference('BiblioAddsAuthorities');
my $warnPrefBiblioAddsAuthorities = ( $prefAutoCreateAuthorities && ( !$prefBiblioAddsAuthorities) );
and not C4::Context->preference('AnonymousPatron')
);
-my $anonymous_patron = Koha::Borrowers->find( C4::Context->preference('AnonymousPatron') );
-my $warnPrefAnonymousPatron_PatronDoesNotExist = ( not $anonymous_patron and Koha::Borrowers->search({ privacy => 2 })->count );
+my $anonymous_patron = Koha::Patrons->find( C4::Context->preference('AnonymousPatron') );
+my $warnPrefAnonymousPatron_PatronDoesNotExist = ( not $anonymous_patron and Koha::Patrons->search({ privacy => 2 })->count );
my $errZebraConnection = C4::Context->Zconn("biblioserver",0)->errcode();
my $warnIsRootUser = (! $loggedinuser);
-my $warnNoActiveCurrency = (! defined C4::Budgets->GetCurrency());
+my $warnNoActiveCurrency = (! defined Koha::Acquisition::Currencies->get_active);
+
my @xml_config_warnings;
my $context = new C4::Context;
AutoSelfCheckPatronDoesNotHaveSelfCheckPerm => not ( $has_self_checkout_perm ),
AutoSelfCheckPatronHasTooManyPerm => $has_other_permissions,
);
+}
-
+{
+ my $dbh = C4::Context->dbh;
+ my $patrons = $dbh->selectall_arrayref(
+ q|select b.borrowernumber from borrowers b join deletedborrowers db on b.borrowernumber=db.borrowernumber|,
+ { Slice => {} }
+ );
+ my $biblios = $dbh->selectall_arrayref(
+ q|select b.biblionumber from biblio b join deletedbiblio db on b.biblionumber=db.biblionumber|,
+ { Slice => {} }
+ );
+ my $items = $dbh->selectall_arrayref(
+ q|select i.itemnumber from items i join deleteditems di on i.itemnumber=di.itemnumber|,
+ { Slice => {} }
+ );
+ my $checkouts = $dbh->selectall_arrayref(
+ q|select i.issue_id from issues i join old_issues oi on i.issue_id=oi.issue_id|,
+ { Slice => {} }
+ );
+ my $holds = $dbh->selectall_arrayref(
+ q|select r.reserve_id from reserves r join old_reserves o on r.reserve_id=o.reserve_id|,
+ { Slice => {} }
+ );
+ if ( @$patrons or @$biblios or @$items or @$checkouts or @$holds ) {
+ $template->param(
+ has_ai_issues => 1,
+ ai_patrons => $patrons,
+ ai_biblios => $biblios,
+ ai_items => $items,
+ ai_checkouts => $checkouts,
+ ai_holds => $holds,
+ );
+ }
}
+my %versions = C4::Context::get_versions();
$template->param(
- kohaVersion => $kohaVersion,
- osVersion => $osVersion,
+ kohaVersion => $versions{'kohaVersion'},
+ osVersion => $versions{'osVersion'},
perlPath => $perl_path,
- perlVersion => $perlVersion,
+ perlVersion => $versions{'perlVersion'},
perlIncPath => [ map { perlinc => $_ }, @INC ],
- mysqlVersion => $mysqlVersion,
- apacheVersion => $apacheVersion,
+ mysqlVersion => $versions{'mysqlVersion'},
+ apacheVersion => $versions{'apacheVersion'},
zebraVersion => $zebraVersion,
prefBiblioAddsAuthorities => $prefBiblioAddsAuthorities,
prefAutoCreateAuthorities => $prefAutoCreateAuthorities,
errZebraConnection => $errZebraConnection,
warnIsRootUser => $warnIsRootUser,
warnNoActiveCurrency => $warnNoActiveCurrency,
+ warnNoTemplateCaching => ( C4::Context->config('template_cache_dir') ? 0 : 1 ),
xml_config_warnings => \@xml_config_warnings,
+ warnStatisticsFieldsError => $warnStatisticsFieldsError,
);
my @components = ();
my $perl_modules = C4::Installer::PerlModules->new;
-$perl_modules->version_info;
+$perl_modules->versions_info;
my @pm_types = qw(missing_pm upgrade_pm current_pm);
shift @lines; #remove header row
foreach (@lines) {
- my ( $date, $desc, $tag ) = split(/\t/);
+ my ( $epoch, $date, $desc, $tag ) = split(/\t/);
if(!$desc && $date=~ /(?<=\d{4})\s+/) {
($date, $desc)= ($`, $');
}