From c91ea9044f66992bb67e07b56e4675a017b066ce Mon Sep 17 00:00:00 2001 From: remi Date: Tue, 28 Jul 2015 12:10:59 -0400 Subject: [PATCH] Bug13287 - Add a system preference to define the number of days used in purge_suggestions.pl MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The system preferences value is used whenever purge_suggestions.pl is called without the 'days' parameter. This patch uses the preference description suggested by comment #9. This version should now be cleanly applicable. I Apply the patch II Run updatedatabase.pl a) Run purge_suggestions.pl without the days parameter - validate that there is an error message b) Run purge_suggestions.pl with the days parameter - validate that there is no error message c) Insert a number of days in the system variable PurgeSuggestionsOlderThan d) Run purge_suggestions.pl without the days parameter - validate that there is no error message Signed-off-by: Liz Rea Tested per plan, all tests pass. Signed-off-by: Marc VĂ©ron --- installer/data/mysql/sysprefs.sql | 1 + .../prog/en/modules/admin/preferences/opac.pref | 8 ++++ misc/cronjobs/purge_suggestions.pl | 44 ++++++++++++++++------ 3 files changed, 41 insertions(+), 12 deletions(-) diff --git a/installer/data/mysql/sysprefs.sql b/installer/data/mysql/sysprefs.sql index c9c86a2..3880dda 100644 --- a/installer/data/mysql/sysprefs.sql +++ b/installer/data/mysql/sysprefs.sql @@ -418,6 +418,7 @@ INSERT INTO systempreferences ( `variable`, `value`, `options`, `explanation`, ` ('previousIssuesDefaultSortOrder','asc','asc|desc','Specify the sort order of Previous Issues on the circulation page','Choice'), ('printcirculationslips','1','','If ON, enable printing circulation receipts','YesNo'), ('PrintNoticesMaxLines','0','','If greater than 0, sets the maximum number of lines an overdue notice will print. If the number of items is greater than this number, the notice will end with a warning asking the borrower to check their online account for a full list of overdue items.','Integer'), +('PurgeSuggestionsOlderThan', '', NULL, 'If this script is called without the days parameter', 'Integer'), ('QueryAutoTruncate','1',NULL,'If ON, query truncation is enabled by default','YesNo'), ('QueryFuzzy','1',NULL,'If ON, enables fuzzy option for searches','YesNo'), ('QueryStemming','1',NULL,'If ON, enables query stemming','YesNo'), 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 e64cb43..8546b5f 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 @@ -606,6 +606,14 @@ OPAC: - pref: MaxOpenSuggestions 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. + - pref: PurgeSuggestionsOlderThan + class: integer + - days. + -
WARNING - Leave this field empty if you don't want to activate this automatic feature. + - "
Example: [30] Sets purgation of suggestions for those older than 30 days." + -
(Used when the cronjob purge_suggestions.pl is active and called without a specific number of days) Privacy: - - pref: StoreLastBorrower diff --git a/misc/cronjobs/purge_suggestions.pl b/misc/cronjobs/purge_suggestions.pl index ee3da2e..2b69170 100755 --- a/misc/cronjobs/purge_suggestions.pl +++ b/misc/cronjobs/purge_suggestions.pl @@ -33,6 +33,7 @@ use Getopt::Long; use Pod::Usage; use C4::Suggestions; use C4::Log; +use C4::Context; my ($help, $days); @@ -41,22 +42,41 @@ GetOptions( 'days=s' => \$days, ); -if($help or not $days){ - print <preference('PurgeSuggestionsOlderThan') || ''; + if($purge_sugg_days ne '' 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($days){ +if(defined($days) && $days > 0 && $days ne ''){ cronlogaction(); DelSuggestionsOlderThan($days); } +elsif(defined($days) && $days == 0) { + print << 'ERROR'; + This script is not executed with 0 days. Aborted. +ERROR +} +else { + print << 'ERROR'; + This script requires a positive number of days. Aborted. +ERROR +} \ No newline at end of file -- 1.9.1