From 21ed943df682861de1cf3352d41b2b36241cc624 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. --- 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 d84b51c..eded225 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 c964bc1..1db7acc 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.1.4