From 5d3ab46203be4f8afa2a34428ac18d3c5cf2a1f1 Mon Sep 17 00:00:00 2001 From: Martin Renvoize Date: Tue, 24 Apr 2018 14:15:22 +0100 Subject: [PATCH] Bug 20639: Add ILLOpacbackends syspref This adds the ILLOpacbackends syspref, allowing users to refine the ill backends available to opac users for initiating ill requests Remove default assignment for backends We don't need a default assignment for the ILLOpacbackends assignment, if the pref isn't set, it returns undef anyway. Also, having this default assignment actually breaks the fetching of the preference Signed-off-by: Niamh.Walker-Headon@it-tallaght.ie Signed-off-by: Katrin Fischer --- Koha/Illrequest/Config.pm | 9 +++++++-- .../atomicupdate/bug_20639-add_ILLOpacbackends_syspref.perl | 11 +++++++++++ installer/data/mysql/sysprefs.sql | 1 + .../prog/en/modules/admin/preferences/circulation.pref | 5 +++++ opac/opac-illrequests.pl | 3 ++- 5 files changed, 26 insertions(+), 3 deletions(-) create mode 100644 installer/data/mysql/atomicupdate/bug_20639-add_ILLOpacbackends_syspref.perl diff --git a/Koha/Illrequest/Config.pm b/Koha/Illrequest/Config.pm index 7db926e681..a64b29b69a 100644 --- a/Koha/Illrequest/Config.pm +++ b/Koha/Illrequest/Config.pm @@ -104,16 +104,21 @@ sub backend_dir { =head3 available_backends -Return a list of available backends. + $backends = $config->available_backends; + $backends = $config->abailable_backends($reduced); + +Return a list of available backends, if passed a | delimited list it +will filter those backends down to only those present in the list. =cut sub available_backends { - my ( $self ) = @_; + my ( $self, $reduce ) = @_; my $backend_dir = $self->backend_dir; my @backends = (); @backends = glob "$backend_dir/*" if ( $backend_dir ); @backends = map { basename($_) } @backends; + @backends = grep { $_ =~ /$reduce/ } @backends if $reduce; return \@backends; } diff --git a/installer/data/mysql/atomicupdate/bug_20639-add_ILLOpacbackends_syspref.perl b/installer/data/mysql/atomicupdate/bug_20639-add_ILLOpacbackends_syspref.perl new file mode 100644 index 0000000000..d74b368533 --- /dev/null +++ b/installer/data/mysql/atomicupdate/bug_20639-add_ILLOpacbackends_syspref.perl @@ -0,0 +1,11 @@ +$DBversion = 'XXX'; # will be replaced by the RM +if( CheckVersion( $DBversion ) ) { + $dbh->do(q| + INSERT IGNORE INTO systempreferences (variable,value,explanation,options,type) + VALUES ('ILLOpacbackends',NULL,NULL,'ILL backends to enabled for OPAC initiated requests','multiple'); + |); + + # Always end with this (adjust the bug info) + SetVersion( $DBversion ); + print "Upgrade to $DBversion done (Bug 20639 - Add ILLOpacbackends syspref)\n"; +} diff --git a/installer/data/mysql/sysprefs.sql b/installer/data/mysql/sysprefs.sql index d142b14a0e..be111b6a65 100644 --- a/installer/data/mysql/sysprefs.sql +++ b/installer/data/mysql/sysprefs.sql @@ -218,6 +218,7 @@ INSERT INTO systempreferences ( `variable`, `value`, `options`, `explanation`, ` ('IdRef','0','','Disable/enable the IdRef webservice from the OPAC detail page.','YesNo'), ('ILLModule','0','If ON, enables the interlibrary loans module.','','YesNo'), ('ILLModuleCopyrightClearance','','70|10','Enter text to enable the copyright clearance stage of request creation. Text will be displayed','Textarea'), +('ILLOpacbackends',NULL,NULL,'ILL backends to enabled for OPAC initiated requests','multiple'), ('ILS-DI','0','','Enables ILS-DI services at OPAC.','YesNo'), ('ILS-DI:AuthorizedIPs','','Restricts usage of ILS-DI to some IPs','.','Free'), ('ImageLimit','5','','Limit images stored in the database by the Patron Card image manager to this number.','Integer'), diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/circulation.pref b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/circulation.pref index 2d80bdd5c7..d1c7072ce8 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/circulation.pref +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/circulation.pref @@ -796,6 +796,11 @@ Circulation: - pref: ILLModuleCopyrightClearance type: textarea class: long + - + - "ILL backends to enabled for OPAC initiated requests:" + - pref: ILLOpacbackends + class: multi + - (separated with |). Fines Policy: - - Calculate fines based on days overdue diff --git a/opac/opac-illrequests.pl b/opac/opac-illrequests.pl index 1b7807cb34..0ba9e0bce3 100755 --- a/opac/opac-illrequests.pl +++ b/opac/opac-illrequests.pl @@ -50,7 +50,8 @@ my ( $template, $loggedinuser, $cookie ) = get_template_and_user({ }); # Are we able to actually work? -my $backends = Koha::Illrequest::Config->new->available_backends; +my $reduced = C4::Context->preference('ILLOpacbackends'); +my $backends = Koha::Illrequest::Config->new->available_backends($reduced); my $backends_available = ( scalar @{$backends} > 0 ); $template->param( backends_available => $backends_available ); -- 2.11.0