Bugzilla – Attachment 30980 Details for
Bug 11603
Gather print notices: add csv and ods export
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 11603: Preparation step, cleaning up
Bug-11603-Preparation-step-cleaning-up.patch (text/plain), 7.12 KB, created by
Jonathan Druart
on 2014-08-19 13:00:54 UTC
(
hide
)
Description:
Bug 11603: Preparation step, cleaning up
Filename:
MIME Type:
Creator:
Jonathan Druart
Created:
2014-08-19 13:00:54 UTC
Size:
7.12 KB
patch
obsolete
>From 43ef5c441722163c3c611b257d784400517bd639 Mon Sep 17 00:00:00 2001 >From: Jonathan Druart <jonathan.druart@biblibre.com> >Date: Wed, 22 Jan 2014 11:42:41 +0100 >Subject: [PATCH] Bug 11603: Preparation step, cleaning up > >This patch refactores and adds some good practices: >- use Modern::Perl >- use Pod::Usage >- add POD >--- > misc/cronjobs/gather_print_notices.pl | 162 +++++++++++++++++++--------------- > 1 file changed, 92 insertions(+), 70 deletions(-) > >diff --git a/misc/cronjobs/gather_print_notices.pl b/misc/cronjobs/gather_print_notices.pl >index 5903659..0328e0c 100755 >--- a/misc/cronjobs/gather_print_notices.pl >+++ b/misc/cronjobs/gather_print_notices.pl >@@ -1,24 +1,6 @@ > #!/usr/bin/perl -w > >-# Copyright 2009 Jesse Weaver >-# >-# This file is part of Koha. >-# >-# Koha is free software; you can redistribute it and/or modify it under the >-# terms of the GNU General Public License as published by the Free Software >-# Foundation; either version 2 of the License, or (at your option) any later >-# version. >-# >-# Koha is distributed in the hope that it will be useful, but WITHOUT ANY >-# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR >-# A PARTICULAR PURPOSE. See the GNU General Public License for more details. >-# >-# You should have received a copy of the GNU General Public License along >-# with Koha; if not, write to the Free Software Foundation, Inc., >-# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. >- >-use strict; >-use warnings; >+use Modern::Perl; > > BEGIN { > # find Koha's Perl modules >@@ -35,34 +17,26 @@ use C4::Debug; > use C4::Letters; > use C4::Templates; > use File::Spec; >+use Pod::Usage; > use Getopt::Long; >- >-sub usage { >- print STDERR <<USAGE; >-Usage: $0 OUTPUT_DIRECTORY >- Will print all waiting print notices to >- OUTPUT_DIRECTORY/notices-CURRENT_DATE.html . >- >- -s --split Split messages into separate file by borrower home library to OUTPUT_DIRECTORY/notices-CURRENT_DATE-BRANCHCODE.html >-USAGE >- exit $_[0]; >-} >+use Koha::DateUtils; > > my ( $stylesheet, $help, $split ); > > GetOptions( > 'h|help' => \$help, > 's|split' => \$split, >-) || usage(1); >+) || pod2usage(1); > >-usage(0) if ($help); >+pod2usage(0) if $help; > > my $output_directory = $ARGV[0]; > > if ( !$output_directory || !-d $output_directory || !-w $output_directory ) { >- print STDERR >-"Error: You must specify a valid and writeable directory to dump the print notices in.\n"; >- usage(1); >+ pod2usage({ >+ -exitval => 1, >+ -msg => qq{\nError: You must specify a valid and writeable directory to dump the print notices in.\n}, >+ }); > } > > my $today = C4::Dates->new(); >@@ -79,18 +53,27 @@ foreach my $message (@all_messages) { > > my $OUTPUT; > >-if ($split) { >- my %messages_by_branch; >- foreach my $message (@all_messages) { >- push( @{ $messages_by_branch{ $message->{'branchcode'} } }, $message ); >+print_notices_html({ messages => \@all_messages, split => $split }); >+ >+sub print_notices_html { >+ my ( $params ) = @_; >+ >+ my $messages = $params->{messages}; >+ my $split = $params->{split}; >+ >+ my $messages_by_branch; >+ if ( $split ) { >+ foreach my $message (@$messages) { >+ push( @{ $messages_by_branch->{ $message->{'branchcode'} } }, $message ); >+ } >+ } else { >+ $messages_by_branch->{all_branches} = $messages; > } > >- foreach my $branchcode ( keys %messages_by_branch ) { >- my @messages = @{ $messages_by_branch{$branchcode} }; >- my $output_file = File::Spec->catdir( $output_directory, >- "holdnotices-" . $today->output('iso') . "-$branchcode.html" ); >- open $OUTPUT, '>', $output_file >- or die "Could not open $output_file: $!"; >+ while ( my ( $branchcode, $branch_messages ) = each %$messages_by_branch ) { >+ my $filename = $split >+ ? 'holdnotices-' . $today->output('iso') . "-$branchcode.html" >+ : 'holdnotices-' . $today->output('iso') . ".html"; > > my $template = > C4::Templates::gettemplate( 'batch/print-notices.tt', 'intranet', >@@ -99,43 +82,82 @@ if ($split) { > $template->param( > stylesheet => C4::Context->preference("NoticeCSS"), > today => $today->output(), >- messages => \@messages, >+ messages => $branch_messages, > ); > >+ my $output_file = File::Spec->catdir( $output_directory, $filename ) >+ open my $OUTPUT, '>', $output_file >+ or die "Could not open $output_file: $!"; > print $OUTPUT $template->output; >+ close $OUTPUT; > >- foreach my $message (@messages) { >+ foreach my $message ( @$branch_messages ) { > C4::Letters::_set_message_status( >- { message_id => $message->{'message_id'}, status => 'sent' } ); >+ { >+ message_id => $message->{'message_id'}, >+ status => 'sent' >+ } >+ ); > } >- >- close $OUTPUT; > } > } >-else { >- my $output_file = File::Spec->catdir( $output_directory, >- "holdnotices-" . $today->output('iso') . ".html" ); >- open $OUTPUT, '>', $output_file >- or die "Could not open $output_file: $!"; > >+=head1 NAME > >- my $template = >- C4::Templates::gettemplate( 'batch/print-notices.tt', 'intranet', >- new CGI ); >+gather_print_notices - Print waiting print notices > >- $template->param( >- stylesheet => C4::Context->preference("NoticeCSS"), >- today => $today->output(), >- messages => \@all_messages, >- ); >+=head1 SYNOPSIS > >- print $OUTPUT $template->output; >+gather_print_notices output_directory [-s|--split] [-h|--help] > >- foreach my $message (@all_messages) { >- C4::Letters::_set_message_status( >- { message_id => $message->{'message_id'}, status => 'sent' } ); >- } >+Will print all waiting print notices to the output_directory. > >- close $OUTPUT; >+The generated filename will be holdnotices-TODAY.html or holdnotices-TODAY-BRANCHCODE.html if the --split parameter is given. > >-} >+=head1 OPTIONS >+ >+=over >+ >+=item B<output_directory> >+ >+Define the output directory where the files will be generated. >+ >+=item B<-s|--split> >+ >+Split messages into separate file by borrower home library to OUTPUT_DIRECTORY/notices-CURRENT_DATE-BRANCHCODE.html >+ >+=item B<-h|--help> >+ >+Print a brief help message >+ >+=back >+ >+=head1 AUTHOR >+ >+Jesse Weaver <pianohacker@gmail.com> >+ >+Jonathan Druart <jonathan.druart@biblibre.com> >+ >+=head1 COPYRIGHT >+ >+Copyright 2009 Jesse Weaver >+ >+Copyright 2014 BibLibre >+ >+=head1 LICENSE >+This file is part of Koha. >+ >+Koha is free software; you can redistribute it and/or modify it >+under the terms of the GNU General Public License as published by >+the Free Software Foundation; either version 3 of the License, or >+(at your option) any later version. >+ >+Koha is distributed in the hope that it will be useful, but >+WITHOUT ANY WARRANTY; without even the implied warranty of >+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the >+GNU General Public License for more details. >+ >+You should have received a copy of the GNU General Public License >+along with Koha; if not, see <http://www.gnu.org/licenses>. >+ >+=cut >-- >2.0.0.rc2
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
|
Splinter Review
Attachments on
bug 11603
:
25021
|
25022
|
25023
|
25024
|
25640
|
25642
|
30980
|
30981
|
30982
|
30983
|
37799
|
37812
|
37813
|
37814
|
37815
|
37816
|
37817
|
37829
|
37830
|
37831
|
37832
|
37833
|
37834
|
37837
|
38381
|
38385
|
38386
|
38387
|
38388
|
38389
|
38390
|
38391
|
38392
|
38403
|
38411
|
38412
|
38413
|
38414
|
38415
|
38416
|
38417
|
38418
|
38419
|
39033
|
39034
|
39035
|
39036
|
39037
|
39038
|
39039
|
39040
|
39041