Bug 37614: Printing patron cards from patron lists should be a GET

There's no creating, updating, or deleting about printing patron cards, and
the only time there's a lot of data (selecting individual patrons in a card
creator batch), it doesn't matter if the "Export selected" URL exceeds the
maxlength for Apache since the actual link to create the PDF also will.

Test plan:
 1. Without the patch, Tools - Patron lists - New patron list - Name it and
    Save
 2. Type three characters in the Patron search form (mar works well) to get
    at least three patrons. Click on each of three, then click Add patrons
 3. You can only print cards from the list of lists, so back to Tools -
    Patron lists
 4. In the Actions menu choose Print patron cards, in the popup click Export
 5. Watch the throbber spin around for a while (it will never stop), then
    close the popup, apply the patch, restart_all
 6. Tools - Patron lists - Actions menu - Print patron cards - Export
 7. Click the PDF link, make sure it has all three of your patrons
 8. Tools - Patron card creator - New - Card batch
 9. Without putting anything in the textarea, click Add patrons, in the
    search popup search for your three characters (mar) again, and click
    the checkboxes to the left of three of the names, then Add selected
    patrons, then Close, then Add patrons
10. Click the checkboxes for two of the three patrons, then Export selected
    card(s), then Export in the popup
11. Hover the link to the PDF, verify that it doesn't have stray 'amp;'
    after the & and before label_id= anymore
12. Click the PDF link, verify it has your two patrons
13. Back at the card batch, click Export card batch, then Export
14. Check the PDF to verify it has all three of your patrons
15. Tools - Patron lists - click your list's name to open it
16. Click the card number for a patron, then the Patron lists tab in Checkout
17. Actions menu - Print patron cards - Export, verify the PDF has all three
    patrons

Signed-off-by: David Nind <david@davidnind.com>

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
This commit is contained in:
Phil Ringnalda 2024-08-15 17:44:20 -07:00 committed by Katrin Fischer
parent 5a06bd0d73
commit 0f255728c5
Signed by: kfischer
GPG key ID: 0EF6E2C03357A834
2 changed files with 7 additions and 8 deletions

View file

@ -61,9 +61,8 @@
[% IF ( multi_batch_count == 1 ) %]<span>1 batch to export</span>[% ELSE %]<span>[% multi_batch_count | html %] batches to export</span>[% END %]
[% END %]
</h3>
<form id="exportingf" name="exporting" method="post" action="/cgi-bin/koha/patroncards/print.pl">
[% INCLUDE 'csrf-token.inc' %]
<input type="hidden" name="op" value="cud-export" />
<form id="exportingf" name="exporting" method="get" action="/cgi-bin/koha/patroncards/print.pl">
<input type="hidden" name="op" value="export" />
<input type="hidden" name="referer" value="[% referer | html %]" />
[% FOREACH batch_id IN batch_ids %]
<input type="hidden" name="batch_id" value="[% batch_id.batch_id | html %]" />

View file

@ -56,10 +56,10 @@ my $multi_batch_count = scalar(@batch_ids);
my $card_count = scalar(@label_ids);
my $borrower_count = scalar(@borrower_numbers);
if ($op eq 'cud-export') { #FIXME Seems like a GET operation?
if ($op eq 'export') {
if (@label_ids) {
my $label_id_param = '&amp;label_id=';
$label_id_param .= join ('&amp;label_id=',@label_ids);
my $label_id_param = '&label_id=';
$label_id_param .= join ('&label_id=',@label_ids);
push (@batches, {create_script => ($output_format eq 'pdf' ? 'create-pdf.pl' : 'create-csv.pl'), #FIXME csv not supported, no script?
batch_id => $batch_ids[0],
template_id => $template_id,
@ -75,8 +75,8 @@ if ($op eq 'cud-export') { #FIXME Seems like a GET operation?
);
}
elsif (@borrower_numbers) {
my $borrower_number_param = '&amp;borrower_number=';
$borrower_number_param .= join ('&amp;borrower_number=',@borrower_numbers);
my $borrower_number_param = '&borrower_number=';
$borrower_number_param .= join ('&borrower_number=',@borrower_numbers);
push (@batches, {create_script => ($output_format eq 'pdf' ? 'create-pdf.pl' : 'create-csv.pl'), #FIXME csv not supported, no script?
template_id => $template_id,
layout_id => $layout_id,