This patch adds the possibility to print patron cards from patron lists.
To test:
- Go to Home > Tools > Patron card creator
- Prepare a patron card and create some cards using the batch functionality
- Apply patch
- Prepare a patron list e.g. from patron search
- Go to Home > Tools > Patron card creator > Manage batches
- Below the list of batches you have a dropdown to select a patron list
- Select your list and hit "Export from patron list"
- Select template and layout as you would do with batches
- Hit "Export"
- Download PDF
Modified patch to work with Bug 14676 changes. Functionality unchanged.
Signed-off-by: Nick Clemens <nick@quecheelibrary.org>
Signed-off-by: Liz <wizzyrea@gmail.com>
(Amended to make it apply on current master)
Signed-off-by: Brendan Gallagher brendan@bywatersolutions.com
}
return GB_showCenter(_("Export patron cards"), "/cgi-bin/koha/patroncards/print.pl?" + getstr, 400, 800);
};
- function selected_layouts(op) {
+
+ function XportPatronlist() {
+ if ( patron_list_id.value.length < 1 ) {
+ alert(_("Please select a patron list."));
+ return; // no patron list selected
+ }
+ getstr = 'patronlist_id='+patron_list_id.value;
+ return GB_showCenter(_("Export patron cards from list"), "/cgi-bin/koha/patroncards/print.pl?" + getstr, 700, 800);
+ };
+
+ function selected_layout(op) {
if (document.layouts.action.length) {
var selected = new Array();
for (i=0;i<document.layouts.action.length;i++){
Xport();
return false;
});
+ $("#printlist").click(function(){
+ XportPatronlist();
+ return false;
+ });
});
//]]>
</script>
<fieldset class="action">
[% IF ( print ) %]<input class="btn btn-sm" type="button" id="print" value="Export selected batches" />[% END %]
</fieldset>
+ [% IF patron_lists %]
+ <fieldset class="rows">
+ <legend>Or use a patron list</legend>
+ <ol>
+ <li>
+ <label for="patron_list_id">Patron list: </label>
+ <select id="patron_list_id" name="patron_list_id">
+ <option value=""></option>
+ [% FOREACH pl IN patron_lists %]
+ <option value="[% pl.patron_list_id %]">[% pl.name %]</option>
+ [% END %]
+ </select>
+ </li>
+ </ol>
+ </fieldset>
+ <fieldset class="action">
+ <input type="button" id="printlist" value="Export from patron list" />
+ </fieldset>
+ [% END %]
</form>
+
[% ELSE %]
<div class="dialog message">
<h4>There are no [% PROCESS translate_card_element element=card_element_title %] currently available.</h4>
<input type="button" class="btn btn-default submit" id="done" onclick="parent.parent.GB_hide();" value="Done" />
</fieldset>
</form>
+ [% ELSIF ( patronlist_id && template_id && layout_id ) %]
+ <h3>Click on the link to download the patron cards from the patron list.</h3>
+ <p>
+ <a class="document pdf" href="/cgi-bin/koha/patroncards/create-pdf.pl?patronlist_id=[% patronlist_id %]&template_id=[% template_id %]&layout_id=[% layout_id %]&start_card=[% start_card %]">label_patronlist_[% patronlist_id %].pdf</a>
+ </p>
[% ELSE %]
<h3>
[% IF ( label_ids ) %]
[% IF ( card_count == 1 ) %]Exporting [% card_count %] patron card[% ELSE %]Exporting [% card_count %] patron cards[% END %]
[% ELSIF ( borrower_numbers ) %]
[% IF ( borrower_count == 1 ) %]Exporting [% borrower_count %] patron card[% ELSE %]Exporting [% borrower_count %] patron cards[% END %]
+ [% ELSIF ( patronlist_id ) %] Exporting from patron list
[% ELSE %]
[% IF ( multi_batch_count == 1 ) %][% multi_batch_count %] batch to export[% ELSE %][% multi_batch_count %] batches to export[% END %]
[% END %]
[% FOREACH borrower_number IN borrower_numbers %]
<input type="hidden" name="borrower_number" value="[% borrower_number.borrower_number %]" />
[% END %]
+ [% IF (patronlist_id) %] <input type="hidden" name="patronlist_id" value="[% patronlist_id %]" /> [% END %]
<fieldset class="rows">
<ol>
<li>
use autouse 'C4::Members' => qw(GetPatronImage GetMember);
use C4::Creators;
use C4::Patroncards;
+use Koha::List::Patron;
my $cgi = new CGI;
my $start_card = $cgi->param('start_card') || 1;
my @label_ids = $cgi->param('label_id') if $cgi->param('label_id');
my @borrower_numbers = $cgi->param('borrower_number') if $cgi->param('borrower_number');
+my $patronlist_id = $cgi->param('patronlist_id');
my $items = undef; # items = cards
my $new_page = 0;
push(@{$items}, {borrower_number => $_});
} @borrower_numbers;
}
+elsif ( $patronlist_id ) {
+ my ($list) = GetPatronLists( { patron_list_id => $patronlist_id } );
+ my @borrowerlist = $list->patron_list_patrons()->search_related('borrowernumber')
+ ->get_column('borrowernumber')->all();
+ grep {
+ push(@{$items}, {borrower_number => $_});
+ } @borrowerlist;
+}
else {
$items = $batch->get_attr('items');
}
use C4::Creators;
use C4::Patroncards;
use C4::Labels;
+use Koha::List::Patron;
my $cgi = new CGI;
my ( $template, $loggedinuser, $cookie ) = get_template_and_user(
my $table = html_table($display_columns->{$card_element}, $db_rows);
$template->param(print => 1) if ($card_element eq 'batch');
+$template->param( patron_lists => [ GetPatronLists() ] ) if ($card_element eq 'batch');
+
$template->param(
error => $errstr,
);
my $op = $cgi->param('op') || 'none';
my @label_ids = $cgi->param('label_id') if $cgi->param('label_id'); # this will handle individual card printing; we use label_id to maintain consistency with the column names in the creator_batches table
my @batch_ids = $cgi->param('batch_id') if $cgi->param('batch_id');
+my $patronlist_id = $cgi->param('patronlist_id') || undef;
my $layout_id = $cgi->param('layout_id') || undef;
my $template_id = $cgi->param('template_id') || undef;
my $start_card = $cgi->param('start_card') || 1;
referer => $referer,
);
}
+ elsif ($patronlist_id ) {
+ $template->param(
+ patronlist_id => $patronlist_id,
+ template_id => $template_id,
+ layout_id => $layout_id,
+ start_card => $start_card,
+ referer => $referer,
+ );
+ }
}
elsif ($op eq 'none') {
# setup select menus for selecting layout and template for this run...
batch_ids => \@batch_ids,
label_ids => \@label_ids,
borrower_numbers => \@borrower_numbers,
+ patronlist_id => $patronlist_id,
templates => $templates,
layouts => $layouts,
output_formats => $output_formats,