From c91b16bd9e82588c7625f69e37d6435dd378915e Mon Sep 17 00:00:00 2001 From: Mark Tompsett Date: Sat, 4 Jun 2016 11:11:00 -0400 Subject: [PATCH] Bug 16637: Dependency for C4::Tags not listed Added optional dependency, so as to explain why testing explodes when the Enhanced Content system preference TagsExternalDictionary is set. It is optional, because not only does TagsExternalDictionary have to be set, but TagsEnabled must be 'Allow'. Also tweaked C4/Tags.pm to ignore TagsExternalDictionary, if Lingua::Ispell is not installed. A warning is given. TEST PLAN --------- 1) Set the Enhanced Content system preference TagsExternalDictionary to /usr/bin/ispell 2) sudo apt-get install liblingua-ispell-perl -- should be a new install 3) prove t/db_dependent/Tags.t -- should work fine 4) sudo apt-get remove liblingua-ispell-perl 5) prove t/db_dependent/Tags.t -- should explode 6) Clear the Enhanced Content system preference TagsExternalDictionary 7) prove t/db_dependent/Tags.t -- should work fine 8) apply patch 9) prove t/db_dependent/Tags.t -- should work fine 10) Set the Enhanced Content system preference TagsExternalDictionary to /usr/bin/ispell 11) prove t/db_dependent/Tags.t -- should work, with warning. 12) sudo apt-get install liblingua-ispell-perl 13) prove t/db_dependent/Tags.t -- should work fine 14) run koha qa test tools. Signed-off-by: Marcel de Rooy Post-hackfest hotel Olympia lobby signoff. Kalimera! Works as expected. At this moment the Tags.t test does not need the database btw, but the module should have much more test coverage. Signed-off-by: Jonathan Druart Signed-off-by: Kyle M Hall --- C4/Installer/PerlDependencies.pm | 5 +++++ C4/Tags.pm | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/C4/Installer/PerlDependencies.pm b/C4/Installer/PerlDependencies.pm index 8302995736..c397e498ab 100644 --- a/C4/Installer/PerlDependencies.pm +++ b/C4/Installer/PerlDependencies.pm @@ -802,6 +802,11 @@ our $PERL_DEPS = { 'required' => '1', 'min_ver' => '0.14', }, + 'Lingua::Ispell' => { + 'usage' => 'Enhanced Content - Tagging', + 'required' => '0', + 'min_ver' => '0.07' + }, }; 1; diff --git a/C4/Tags.pm b/C4/Tags.pm index c964bc1f6f..1db7accc06 100644 --- a/C4/Tags.pm +++ b/C4/Tags.pm @@ -25,6 +25,7 @@ use Exporter; use C4::Context; use C4::Debug; +use Module::Load::Conditional qw/check_install/; #use Data::Dumper; use constant TAG_FIELDS => qw(tag_id borrowernumber biblionumber term language date_created); use constant TAG_SELECT => "SELECT " . join(',', TAG_FIELDS) . "\n FROM tags_all\n"; @@ -50,6 +51,10 @@ BEGIN { ); # %EXPORT_TAGS = (); my $ext_dict = C4::Context->preference('TagsExternalDictionary'); + if ( $ext_dict && ! check_install( module => 'Lingua::Ispell' ) ) { + warn "Ignoring TagsExternalDictionary, because Lingua::Ispell is not installed."; + $ext_dict = q{}; + } if ($debug) { require Data::Dumper; import Data::Dumper qw(:DEFAULT); -- 2.20.1