From 9998177a81b38ddafce7ce2b574f21e39def4126 Mon Sep 17 00:00:00 2001
From: Mark Tompsett <mtompset@hotmail.com>
Date: Tue, 23 Feb 2016 19:29:36 -0500
Subject: [PATCH] Bug 13287: QA Follow up
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Added missing upgrade SQL system preference.
Corrected system preference screen message
Fixes on purge_suggestions.pl
- perlcritic friendlier
- address $PERL5LIB comment by using $PROGRAM_NAME (comment #10)
- used STDERR (comment #10)
- perltidy

TEST PLAN
---------
$ ./installer/data/mysql/updatedatabase.pl
-- should run upgrade and generate new systempreference in table
$ ./misc/cronjobs/purge_suggestions.pl --help
-- should give help with a real path used instead of $PERL5LIB.
$ ./misc/cronjobs/purge_suggestions.pl -days -1
-- should give error message as expected
$ ./misc/cronjobs/purge_suggestions.pl -days 0
-- should give error message as expected

Go to OPAC system preferences tab and check the
PurgeSuggestionsOlderThan system preference
-- message should be as expected (see comment #9)

run koha qa test tools
-- all should pass

Signed-off-by: Marc Véron <veron@veron.ch>
---
 ...dPurgeSuggestionsOlderThan_SystemPreference.sql |  2 ++
 .../prog/en/modules/admin/preferences/opac.pref    |  2 +-
 misc/cronjobs/purge_suggestions.pl                 | 37 +++++++++++-----------
 3 files changed, 21 insertions(+), 20 deletions(-)
 create mode 100644 installer/data/mysql/atomicupdate/bug_13287_AddPurgeSuggestionsOlderThan_SystemPreference.sql

diff --git a/installer/data/mysql/atomicupdate/bug_13287_AddPurgeSuggestionsOlderThan_SystemPreference.sql b/installer/data/mysql/atomicupdate/bug_13287_AddPurgeSuggestionsOlderThan_SystemPreference.sql
new file mode 100644
index 0000000..6c66bbc
--- /dev/null
+++ b/installer/data/mysql/atomicupdate/bug_13287_AddPurgeSuggestionsOlderThan_SystemPreference.sql
@@ -0,0 +1,2 @@
+INSERT IGNORE INTO systempreferences ( `variable`, `value`, `options`, `explanation`, `type` ) VALUES
+('PurgeSuggestionsOlderThan', '', NULL, 'If this script is called without the days parameter', 'Integer');
diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/opac.pref b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/opac.pref
index 8546b5f..0e13ecf 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/opac.pref
+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/opac.pref
@@ -607,7 +607,7 @@ OPAC:
               class: integer
             - "open suggestions. Leave empty for no limit. **Note: this setting does not affect anonymous suggestions"
         -
-            - Keep accepted or rejected purchase suggestions for a period of [   ] days.
+            - Keep accepted or rejected purchase suggestions for a period of
             - pref: PurgeSuggestionsOlderThan
               class: integer
             - days.
diff --git a/misc/cronjobs/purge_suggestions.pl b/misc/cronjobs/purge_suggestions.pl
index 2b69170..6dff5db 100755
--- a/misc/cronjobs/purge_suggestions.pl
+++ b/misc/cronjobs/purge_suggestions.pl
@@ -17,8 +17,7 @@
 # You should have received a copy of the GNU General Public License
 # along with Koha; if not, see <http://www.gnu.org/licenses>.
 
-use strict;
-use warnings;
+use Modern::Perl;
 use utf8;
 
 BEGIN {
@@ -35,11 +34,11 @@ use C4::Suggestions;
 use C4::Log;
 use C4::Context;
 
-my ($help, $days);
+my ( $help, $days );
 
 GetOptions(
-    'help|?'         => \$help,
-    'days=s'         => \$days,
+    'help|?' => \$help,
+    'days=s' => \$days,
 );
 
 my $usage = << 'ENDUSAGE';
@@ -49,34 +48,34 @@ Parameters:
 -days TTT to define the age of suggestions to delete
 
 Example:
-$PERL5LIB/misc/cronjobs/purge_suggestions.pl -days 30
 ENDUSAGE
+$usage .= $0 . " -days 30\n";
 
 # If this script is called without the 'days' parameter, we use the system preferences value instead.
-if ( ! defined($days) and not $help) {
-    my $purge_sugg_days = C4::Context->preference('PurgeSuggestionsOlderThan') || '';
-    if($purge_sugg_days ne '' and $purge_sugg_days >= 0) {
+if ( !defined($days) && !$help ) {
+    my $purge_sugg_days =
+      C4::Context->preference('PurgeSuggestionsOlderThan') || q{};
+    if ( $purge_sugg_days ne q{} and $purge_sugg_days >= 0 ) {
         $days = $purge_sugg_days;
     }
 }
+
 # If this script is called with the 'help' parameter, we show up the help message and we leave the script without doing anything.
 if ($help) {
     print $usage;
     exit;
 }
 
-if(defined($days) && $days > 0 && $days ne ''){
+if ( defined($days) && $days ne q{} && $days > 0 ) {
     cronlogaction();
     DelSuggestionsOlderThan($days);
 }
-
-elsif(defined($days) && $days == 0) {
-    print << 'ERROR';
-    This script is not executed with 0 days. Aborted.
-ERROR
+elsif (!defined($days)){
+    print $usage;
+}
+elsif ( $days == 0 ) {
+    warn "This script is not executed with 0 days. Aborted.\n";
 }
 else {
-    print << 'ERROR';
-    This script requires a positive number of days. Aborted.
-ERROR
-}
\ No newline at end of file
+    warn "This script requires a positive number of days. Aborted.\n";
+}
-- 
1.9.1