[Koha-patches] [PATCH] bug_8034: Restored network printer maintenance and selection
Srdjan
srdjan at catalyst.net.nz
Wed Sep 12 03:20:09 CEST 2012
This patch is just for restoring printer maintenance and selection, not
for priting itself. It is just a preparation step.
* Added UsePrintQueues syspref. If set to No, no printer info will be
displayed/used
* Database changes:
- printers table PRIMARY KEY is now printqueue. It is more natural. We
should really have a synthetic id, but printqueue is good enough
- branches.branchprinter is a FOREIGN KEY to printers.printqueue
* Created C4::Auth::get_user_printer() function that will return
appropriate printer. In order of preference:
- session selected
- logged in branch branchprinter
* Moved printer functions to C4::Printer
* Restored printer maint/selection in admin zone UsePrintQueues
permitting
* Restored printer selection in circ/selectbranchprinter.pl
UsePrintQueues permitting
Signed-off-by: Jared Camins-Esakov <jcamins at cpbibliography.com>
---
C4/Auth.pm | 49 +++++--
C4/Context.pm | 2 +-
C4/Koha.pm | 40 ------
C4/Printer.pm | 148 +++++++++++++++++++
admin/branches.pl | 30 ++--
admin/printers.pl | 152 ++++++++++----------
circ/circulation.pl | 12 +-
circ/returns.pl | 8 --
circ/selectbranchprinter.pl | 49 ++++---
installer/data/mysql/kohastructure.sql | 16 ++-
installer/data/mysql/sysprefs.sql | 1 +
installer/data/mysql/updatedatabase.pl | 12 ++
.../intranet-tmpl/prog/en/includes/admin-menu.inc | 1 +
.../intranet-tmpl/prog/en/includes/header.inc | 3 +
.../prog/en/modules/admin/admin-home.tt | 4 +-
.../prog/en/modules/admin/branches.tt | 20 +--
.../en/modules/admin/preferences/circulation.pref | 6 +
.../prog/en/modules/admin/printers.tt | 33 +----
.../prog/en/modules/circ/circulation.tt | 2 -
.../prog/en/modules/circ/selectbranchprinter.tt | 5 +-
t/db_dependent/lib/KohaTest/Koha.pm | 2 -
t/db_dependent/lib/KohaTest/Printer.pm | 26 ++++
22 files changed, 393 insertions(+), 228 deletions(-)
create mode 100644 C4/Printer.pm
create mode 100644 t/db_dependent/lib/KohaTest/Printer.pm
diff --git a/C4/Auth.pm b/C4/Auth.pm
index 59c9955..71abfb3 100644
--- a/C4/Auth.pm
+++ b/C4/Auth.pm
@@ -28,6 +28,7 @@ require Exporter;
use C4::Context;
use C4::Templates; # to get the template
use C4::Branch; # GetBranches
+use C4::Printer qw(GetPrinterDetails);
use C4::VirtualShelves;
use POSIX qw/strftime/;
use List::MoreUtils qw/ any /;
@@ -46,7 +47,8 @@ BEGIN {
$debug = $ENV{DEBUG};
@ISA = qw(Exporter);
@EXPORT = qw(&checkauth &get_template_and_user &haspermission &get_user_subpermissions);
- @EXPORT_OK = qw(&check_api_auth &get_session &check_cookie_auth &checkpw &get_all_subpermissions &get_user_subpermissions);
+ @EXPORT_OK = qw(&check_api_auth &get_session &check_cookie_auth &checkpw
+ &get_all_subpermissions &get_user_subpermissions &get_user_printer);
%EXPORT_TAGS = ( EditPermissions => [qw(get_all_subpermissions get_user_subpermissions)] );
$ldap = C4::Context->config('useldapserver') || 0;
$cas = C4::Context->preference('casAuthentication');
@@ -310,6 +312,9 @@ sub get_template_and_user {
$template->param(dateformat_iso => 1);
}
+ my $userenv = C4::Context->userenv;
+ my $userenv_branch = $userenv ? $userenv->{"branch"} : undef;
+
# these template parameters are set the same regardless of $in->{'type'}
$template->param(
"BiblioDefaultView".C4::Context->preference("BiblioDefaultView") => 1,
@@ -317,9 +322,9 @@ sub get_template_and_user {
GoogleJackets => C4::Context->preference("GoogleJackets"),
OpenLibraryCovers => C4::Context->preference("OpenLibraryCovers"),
KohaAdminEmailAddress => "" . C4::Context->preference("KohaAdminEmailAddress"),
- LoginBranchcode => (C4::Context->userenv?C4::Context->userenv->{"branch"}:"insecure"),
- LoginFirstname => (C4::Context->userenv?C4::Context->userenv->{"firstname"}:"Bel"),
- LoginSurname => C4::Context->userenv?C4::Context->userenv->{"surname"}:"Inconnu",
+ LoginBranchcode => ($userenv?$userenv_branch:"insecure"),
+ LoginFirstname => ($userenv?$userenv->{"firstname"}:"Bel"),
+ LoginSurname => $userenv?$userenv->{"surname"}:"Inconnu",
TagsEnabled => C4::Context->preference("TagsEnabled"),
hide_marc => C4::Context->preference("hide_marc"),
item_level_itypes => C4::Context->preference('item-level_itypes'),
@@ -344,7 +349,7 @@ sub get_template_and_user {
IntranetNav => C4::Context->preference("IntranetNav"),
IntranetmainUserblock => C4::Context->preference("IntranetmainUserblock"),
LibraryName => C4::Context->preference("LibraryName"),
- LoginBranchname => (C4::Context->userenv?C4::Context->userenv->{"branchname"}:"insecure"),
+ LoginBranchname => ($userenv?$userenv->{"branchname"}:"insecure"),
advancedMARCEditor => C4::Context->preference("advancedMARCEditor"),
canreservefromotherbranches => C4::Context->preference('canreservefromotherbranches'),
intranetcolorstylesheet => C4::Context->preference("intranetcolorstylesheet"),
@@ -364,6 +369,14 @@ sub get_template_and_user {
AllowMultipleCovers => C4::Context->preference('AllowMultipleCovers'),
EnableBorrowerFiles => C4::Context->preference('EnableBorrowerFiles'),
);
+ if ( C4::Context->preference('UsePrintQueues') ) {
+ my $printer = get_user_printer();
+ my $printer_rec = $printer ? GetPrinterDetails($printer) : {};
+ $template->param(
+ UsePrintQueues => 1,
+ PrinterName => $printer_rec->{printername},
+ );
+ }
}
else {
warn "template type should be OPAC, here it is=[" . $in->{'type'} . "]" unless ( $in->{'type'} eq 'opac' );
@@ -382,8 +395,8 @@ sub get_template_and_user {
my $opac_name = '';
if (($opac_search_limit =~ /branch:(\w+)/ && $opac_limit_override) || $in->{'query'}->param('limit') =~ /branch:(\w+)/){
$opac_name = $1; # opac_search_limit is a branch, so we use it.
- } elsif (C4::Context->preference("SearchMyLibraryFirst") && C4::Context->userenv && C4::Context->userenv->{'branch'}) {
- $opac_name = C4::Context->userenv->{'branch'};
+ } elsif (C4::Context->preference("SearchMyLibraryFirst") && $userenv_branch) {
+ $opac_name = $userenv_branch
}
$template->param(
opaccolorstylesheet => C4::Context->preference("opaccolorstylesheet"),
@@ -393,7 +406,7 @@ sub get_template_and_user {
CalendarFirstDayOfWeek => (C4::Context->preference("CalendarFirstDayOfWeek") eq "Sunday")?0:1,
LibraryName => "" . C4::Context->preference("LibraryName"),
LibraryNameTitle => "" . $LibraryNameTitle,
- LoginBranchname => C4::Context->userenv?C4::Context->userenv->{"branchname"}:"",
+ LoginBranchname => $userenv?$userenv->{"branchname"}:"",
OPACAmazonCoverImages => C4::Context->preference("OPACAmazonCoverImages"),
OPACFRBRizeEditions => C4::Context->preference("OPACFRBRizeEditions"),
OpacHighlightedWords => C4::Context->preference("OpacHighlightedWords"),
@@ -424,7 +437,7 @@ sub get_template_and_user {
RequestOnOpac => C4::Context->preference("RequestOnOpac"),
'Version' => C4::Context->preference('Version'),
hidelostitems => C4::Context->preference("hidelostitems"),
- mylibraryfirst => (C4::Context->preference("SearchMyLibraryFirst") && C4::Context->userenv) ? C4::Context->userenv->{'branch'} : '',
+ mylibraryfirst => (C4::Context->preference("SearchMyLibraryFirst") && $userenv) ? $userenv_branch : '',
opaclayoutstylesheet => "" . C4::Context->preference("opaclayoutstylesheet"),
opacbookbag => "" . C4::Context->preference("opacbookbag"),
opaccredits => "" . C4::Context->preference("opaccredits"),
@@ -1644,8 +1657,24 @@ sub getborrowernumber {
return 0;
}
+=head2 get_user_printer
+
+ $printer = get_user_printer();
+
+ Returns printer queue that is to be used for the logged in user
+
+=cut
+
+sub get_user_printer {
+ my $userenv = C4::Context->userenv or return;
+ if (my $printer = $userenv->{branchprinter}) {
+ return $printer;
+ }
+ my $branchname = $userenv->{branch} or return;
+ my $branch = GetBranchDetail($branchname) or return;
+ return $branch->{branchprinter};
+}
-END { } # module clean-up code here (global destructor)
1;
__END__
diff --git a/C4/Context.pm b/C4/Context.pm
index 0a56aa8..7835497 100644
--- a/C4/Context.pm
+++ b/C4/Context.pm
@@ -978,7 +978,7 @@ sub userenv {
=head2 set_userenv
C4::Context->set_userenv($usernum, $userid, $usercnum, $userfirstname,
- $usersurname, $userbranch, $userflags, $emailaddress);
+ $usersurname, $userbranch, $userflags, $emailaddress, $branchprinter);
Establish a hash of user environment variables.
diff --git a/C4/Koha.pm b/C4/Koha.pm
index 26106cf..1e1a412 100644
--- a/C4/Koha.pm
+++ b/C4/Koha.pm
@@ -39,7 +39,6 @@ BEGIN {
@EXPORT = qw(
&slashifyDate
&subfield_is_koha_internal_p
- &GetPrinters &GetPrinter
&GetItemTypes &getitemtypeinfo
&GetCcodes
&GetSupportName &GetSupportList
@@ -600,45 +599,6 @@ sub getImageSets {
return \@imagesets;
}
-=head2 GetPrinters
-
- $printers = &GetPrinters();
- @queues = keys %$printers;
-
-Returns information about existing printer queues.
-
-C<$printers> is a reference-to-hash whose keys are the print queues
-defined in the printers table of the Koha database. The values are
-references-to-hash, whose keys are the fields in the printers table.
-
-=cut
-
-sub GetPrinters {
- my %printers;
- my $dbh = C4::Context->dbh;
- my $sth = $dbh->prepare("select * from printers");
- $sth->execute;
- while ( my $printer = $sth->fetchrow_hashref ) {
- $printers{ $printer->{'printqueue'} } = $printer;
- }
- return ( \%printers );
-}
-
-=head2 GetPrinter
-
- $printer = GetPrinter( $query, $printers );
-
-=cut
-
-sub GetPrinter ($$) {
- my ( $query, $printers ) = @_; # get printer for this query from printers
- my $printer = $query->param('printer');
- my %cookie = $query->cookie('userenv');
- ($printer) || ( $printer = $cookie{'printer'} ) || ( $printer = '' );
- ( $printers->{$printer} ) || ( $printer = ( keys %$printers )[0] );
- return $printer;
-}
-
=head2 getnbpages
Returns the number of pages to display in a pagination bar, given the number
diff --git a/C4/Printer.pm b/C4/Printer.pm
new file mode 100644
index 0000000..0990bad
--- /dev/null
+++ b/C4/Printer.pm
@@ -0,0 +1,148 @@
+#!/usr/bin/perl
+
+package C4::Printer;
+
+# Copyright 2012 Catalyst IT
+#
+# 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 C4::Context;
+
+use vars qw($VERSION @ISA @EXPORT @EXPORT_OK);
+
+BEGIN {
+ $VERSION = 3.07.00.049;
+ require Exporter;
+ @ISA = qw(Exporter);
+ @EXPORT = qw(
+ );
+ @EXPORT_OK = qw(
+ &GetPrinters &SearchPrinters &GetPrinterDetails
+ &AddPrinter &UpdatePrinter &DeletePrinter
+ );
+}
+
+=head1 NAME
+
+C4::Printer - functions that deal with printer selection
+
+=head1 SYNOPSIS
+
+ use C4::Printer;
+
+=head1 DESCRIPTION
+
+This module provides functions to select printer for slips etc.
+
+TODO: Move SQL from admin/printers.pl to this module
+
+=head1 FUNCTIONS
+
+=head2 GetPrinters
+
+ $printers = &GetPrinters();
+ @queues = keys %$printers;
+
+Returns information about existing printer queues.
+
+C<$printers> is a reference-to-hash whose keys are the print queues
+defined in the printers table of the Koha database. The values are
+references-to-hash, whose keys are the fields in the printers table.
+
+=cut
+
+sub GetPrinters {
+ my %printers;
+ my $dbh = C4::Context->dbh;
+ my $sth = $dbh->prepare("select * from printers");
+ $sth->execute;
+ while ( my $printer = $sth->fetchrow_hashref ) {
+ $printers{ $printer->{'printqueue'} } = $printer;
+ }
+ return ( \%printers );
+}
+
+=head2 SearchPrinters
+
+ $printers = SearchPrinters( $searchstring );
+
+=cut
+
+sub SearchPrinters {
+ my ($searchstring)=@_;
+ $searchstring .= '%';
+ return C4::Context->dbh->selectall_arrayref("
+ SELECT * FROM printers
+ WHERE printername like ? OR printqueue like ? ORDER BY printername
+ ", {Slice => {}}, $searchstring, $searchstring);
+}
+
+=head2 GetPrinterDetails
+
+ $printer_rec = GetPrinterDetails( $printqueue );
+
+=cut
+
+sub GetPrinterDetails {
+ my ( $printer ) = @_;
+ my $dbh = C4::Context->dbh;
+ my $printername = $dbh->selectrow_hashref('SELECT * FROM printers WHERE printqueue = ?', undef, $printer);
+ return $printername;
+}
+
+=head2 AddPrinter
+
+ AddPrinter( $data );
+
+=cut
+
+sub AddPrinter {
+ my ( $data ) = @_;
+ my $dbh = C4::Context->dbh;
+ $dbh->do("INSERT INTO printers (printername,printqueue,printtype) VALUES (?,?,?)", undef,
+ $data->{printername}, $data->{printqueue}, $data->{printtype});
+}
+
+=head2 UpdatePrinter
+
+ UpdatePrinter( $printqueue, $data );
+
+=cut
+
+sub UpdatePrinter {
+ my ( $printqueue, $data ) = @_;
+ my $dbh = C4::Context->dbh;
+ $dbh->do("UPDATE printers SET printqueue = ?, printername = ?, printtype = ? WHERE printqueue = ?", undef,
+ $data->{printqueue}, $data->{printername}, $data->{printtype}, $printqueue);
+}
+
+=head2 DeletePrinter
+
+ DeletePrinter( $printqueue );
+
+=cut
+
+sub DeletePrinter {
+ my ( $printqueue ) = @_;
+ my $dbh = C4::Context->dbh;
+ $dbh->do("DELETE FROM printers WHERE printqueue = ?", undef,
+ $printqueue);
+}
+
+1;
diff --git a/admin/branches.pl b/admin/branches.pl
index d172ea6..3671f43 100755
--- a/admin/branches.pl
+++ b/admin/branches.pl
@@ -45,6 +45,7 @@ use C4::Context;
use C4::Output;
use C4::Koha;
use C4::Branch;
+use C4::Printer qw(GetPrinters);
# Fixed variables
my $script_name = "/cgi-bin/koha/admin/branches.pl";
@@ -226,12 +227,9 @@ sub default {
sub editbranchform {
my ($branchcode,$innertemplate) = @_;
- # initiate the scrolling-list to select the printers
- my $printers = GetPrinters();
- my @printerloop;
+
my $data;
my $oldprinter = "";
-
if ($branchcode) {
$data = GetBranchInfo($branchcode);
$data = $data->[0];
@@ -241,15 +239,21 @@ sub editbranchform {
_branch_to_template($data, $innertemplate);
}
- foreach my $thisprinter ( keys %$printers ) {
- push @printerloop, {
- value => $thisprinter,
- selected => ( $oldprinter eq $printers->{$thisprinter} ),
- branchprinter => $printers->{$thisprinter}->{'printqueue'},
- };
+ if ( C4::Context->preference('UsePrintQueues') ) {
+ # initiate the scrolling-list to select the printers
+ my $printers = GetPrinters();
+ my @printerloop;
+ foreach my $thisprinter ( keys %$printers ) {
+ push @printerloop, {
+ value => $thisprinter,
+ selected => ( $oldprinter eq $thisprinter ),
+ branchprinter => $printers->{$thisprinter}->{'printername'},
+ };
+ }
+
+ $innertemplate->param( printerloop => \@printerloop );
}
- $innertemplate->param( printerloop => \@printerloop );
# make the checkboxes.....
#
# We export a "categoryloop" array to the template, each element of which
@@ -308,6 +312,7 @@ sub branchinfotable {
my ($branchcode,$innertemplate) = @_;
my $branchinfo = $branchcode ? GetBranchInfo($branchcode) : GetBranchInfo();
+ my $printers = GetPrinters();
my @loop_data = ();
foreach my $branch (@$branchinfo) {
#
@@ -367,6 +372,9 @@ sub branchinfotable {
$row{'branch_name'} = $branch->{'branchname'};
$row{'branch_code'} = $branch->{'branchcode'};
$row{'value'} = $branch->{'branchcode'};
+ if (my $printer = $branch->{'branchprinter'}) {
+ $row{'branchprintername'} = $printers->{$printer}->{'printername'};
+ }
push @loop_data, \%row;
}
diff --git a/admin/printers.pl b/admin/printers.pl
index c7e7492..12e42d7 100755
--- a/admin/printers.pl
+++ b/admin/printers.pl
@@ -7,17 +7,17 @@
# ALGO :
# this script use an $op to know what to do.
# if $op is empty or none of the above values,
-# - the default screen is build (with all records, or filtered datas).
-# - the user can clic on add, modify or delete record.
+# - the default screen is build (with all records, or filtered datas).
+# - the user can clic on add, modify or delete record.
# if $op=add_form
-# - if primkey exists, this is a modification,so we read the $primkey record
-# - builds the add/modify form
+# - if primkey exists, this is a modification,so we read the $primkey record
+# - builds the add/modify form
# if $op=add_validate
-# - the user has just send datas, so we create/modify the record
+# - the user has just send datas, so we create/modify the record
# if $op=delete_form
-# - we show the record having primkey=$primkey and ask for deletion validation form
+# - we show the record having primkey=$primkey and ask for deletion validation form
# if $op=delete_confirm
-# - we delete the record having primkey=$primkey
+# - we delete the record having primkey=$primkey
# Copyright 2000-2002 Katipo Communications
@@ -43,19 +43,7 @@ use CGI;
use C4::Context;
use C4::Output;
use C4::Auth;
-
-sub StringSearch {
- my ($searchstring,$type)=@_; # why bother with $type if we don't use it?!
- $searchstring=~ s/\'/\\\'/g;
- my @data=split(' ',$searchstring);
- my $sth = C4::Context->dbh->prepare("
- SELECT printername,printqueue,printtype from printers
- WHERE (printername like ?) order by printername
- ");
- $sth->execute("$data[0]%");
- my $data=$sth->fetchall_arrayref({});
- return (scalar(@$data),$data);
-}
+use C4::Printer qw(GetPrinterDetails SearchPrinters AddPrinter UpdatePrinter DeletePrinter);
my $input = new CGI;
my $searchfield=$input->param('searchfield');
@@ -68,83 +56,95 @@ my $op = $input->param('op');
$searchfield=~ s/\,//g;
my ($template, $loggedinuser, $cookie) = get_template_and_user({
- template_name => "admin/printers.tmpl",
- query => $input,
- type => "intranet",
- authnotrequired => 0,
+ template_name => "admin/printers.tmpl",
+ query => $input,
+ type => "intranet",
+ authnotrequired => 0,
flagsrequired => {parameters => 'parameters_remaining_permissions'},
- debug => 1,
+ debug => 1,
});
-$template->param(searchfield => $searchfield,
- script_name => $script_name);
-
#start the page and read in includes
my $dbh = C4::Context->dbh;
+my $list_printers = 1;
################## ADD_FORM ##################################
# called by default. Used to create form to add or modify a record
if ($op eq 'add_form') {
- $template->param(add_form => 1);
- #---- if primkey exists, it's a modify action, so read values to modify...
- my $data;
- if ($searchfield) {
- my $sth=$dbh->prepare("SELECT printername,printqueue,printtype from printers where printername=?");
- $sth->execute($searchfield);
- $data=$sth->fetchrow_hashref;
- }
-
- $template->param(printqueue => $data->{'printqueue'},
- printtype => $data->{'printtype'});
- # END $OP eq ADD_FORM
+ $list_printers = 0;
+ $template->param(add_form => 1);
+ #---- if primkey exists, it's a modify action, so read values to modify...
+ my $data;
+ if ($searchfield) {
+ $data=GetPrinterDetails($searchfield);
+ }
+
+ $template->param(
+ printqueue => $data->{'printqueue'},
+ printername => $data->{'printername'},
+ printtype => $data->{'printtype'}
+ );
+# END $OP eq ADD_FORM
################## ADD_VALIDATE ##################################
# called by add_form, used to insert/modify data in DB
} elsif ($op eq 'add_validate') {
- $template->param(add_validate => 1);
- if ($input->param('add')){
- my $sth=$dbh->prepare("INSERT INTO printers (printername,printqueue,printtype) VALUES (?,?,?)");
- $sth->execute($input->param('printername'),$input->param('printqueue'),$input->param('printtype'));
- } else {
- my $sth=$dbh->prepare("UPDATE printers SET printqueue=?,printtype=? WHERE printername=?");
- $sth->execute($input->param('printqueue'),$input->param('printtype'),$input->param('printername'));
- }
- # END $OP eq ADD_VALIDATE
+ my $params = $input->Vars;
+ if ($input->param('add')){
+ AddPrinter($params);
+ } else {
+ UpdatePrinter($searchfield, $params);
+ }
+ $template->param(add_validate => 1);
+ $searchfield = '';
+# END $OP eq ADD_VALIDATE
################## DELETE_CONFIRM ##################################
# called by default form, used to confirm deletion of data in DB
} elsif ($op eq 'delete_confirm') {
- $template->param(delete_confirm => 1);
- my $sth=$dbh->prepare("select printername,printqueue,printtype from printers where printername=?");
- $sth->execute($searchfield);
- my $data=$sth->fetchrow_hashref;
- $template->param(printqueue => $data->{'printqueue'},
- printtype => $data->{'printtype'});
- # END $OP eq DELETE_CONFIRM
+ $list_printers = 0;
+ $template->param(delete_confirm => 1);
+ my $data=GetPrinterDetails($searchfield);
+ $template->param(
+ printqueue => $data->{'printqueue'},
+ printtype => $data->{'printtype'},
+ );
+# END $OP eq DELETE_CONFIRM
################## DELETE_CONFIRMED ##################################
# called by delete_confirm, used to effectively confirm deletion of data in DB
} elsif ($op eq 'delete_confirmed') {
- $template->param(delete_confirmed => 1);
- my $sth=$dbh->prepare("delete from printers where printername=?");
- $sth->execute($searchfield);
- # END $OP eq DELETE_CONFIRMED
+ # XXX Delete can fail
+ DeletePrinter($searchfield);
+ $template->param(delete_confirmed => 1);
+ $template->param(list_printers => 1);
+ $searchfield = '';
+# END $OP eq DELETE_CONFIRMED
################## DEFAULT ###########################################
} else { # DEFAULT
- $template->param(else => 1);
- my ($count,$results)=StringSearch($searchfield,'web');
- my $max = ($offset+$pagesize < $count) ? $offset+$pagesize : $count;
- my @loop = (@$results)[$offset..$max];
-
- $template->param(loop => \@loop);
-
- if ($offset>0) {
- $template->param(offsetgtzero => 1,
- prevpage => $offset-$pagesize);
- }
- if ($offset+$pagesize<$count) {
- $template->param(ltcount => 1,
- nextpage => $offset+$pagesize);
- }
-
+ $searchfield ||= $input->param('description') || "";
} #---- END $OP eq DEFAULT
+if ($list_printers) {
+ $template->param(list_printers => 1);
+ my $results=SearchPrinters($searchfield);
+ my $count = $results ? scalar(@$results) : 0;
+ my $max = ($offset+$pagesize < $count) ? $offset+$pagesize : $count;
+ my @loop = (@$results)[$offset..$max-1];
+
+ $template->param(loop => \@loop);
+
+ if ($offset>0) {
+ $template->param(offsetgtzero => 1,
+ prevpage => $offset-$pagesize);
+ }
+ if ($offset+$pagesize<$count) {
+ $template->param(ltcount => 1,
+ nextpage => $offset+$pagesize);
+ }
+}
+
+$template->param(
+ searchfield => $searchfield,
+ script_name => $script_name
+);
+
output_html_with_http_headers $input, $cookie, $template->output;
diff --git a/circ/circulation.pl b/circ/circulation.pl
index 78ac1a4..54138ef 100755
--- a/circ/circulation.pl
+++ b/circ/circulation.pl
@@ -29,7 +29,7 @@ use C4::Print;
use C4::Auth qw/:DEFAULT get_session/;
use C4::Dates qw/format_date/;
use C4::Branch; # GetBranches
-use C4::Koha; # GetPrinter
+use C4::Koha;
use C4::Circulation;
use C4::Overdues qw/CheckBorrowerDebarred/;
use C4::Members;
@@ -67,12 +67,6 @@ if ($branch){
$session->param('branchname', GetBranchName($branch));
}
-my $printer = $query->param('printer');
-if ($printer){
- # update our session so the userenv is updated
- $session->param('branchprinter', $printer);
-}
-
if (!C4::Context->userenv && !$branch){
if ($session->param('branch') eq 'NO_LIBRARY_SET'){
# no branch set we can't issue
@@ -102,8 +96,6 @@ $findborrower =~ s|,| |g;
my $borrowernumber = $query->param('borrowernumber');
$branch = C4::Context->userenv->{'branch'};
-$printer = C4::Context->userenv->{'branchprinter'};
-
# If AutoLocation is not activated, we show the Circulation Parameters to chage settings of librarian
if (C4::Context->preference("AutoLocation") != 1) {
@@ -665,8 +657,6 @@ $template->param(
borrowernumber => $borrowernumber,
branch => $branch,
branchname => GetBranchName($borrower->{'branchcode'}),
- printer => $printer,
- printername => $printer,
firstname => $borrower->{'firstname'},
surname => $borrower->{'surname'},
showname => $borrower->{'showname'},
diff --git a/circ/returns.pl b/circ/returns.pl
index 743bf18..0efa712 100755
--- a/circ/returns.pl
+++ b/circ/returns.pl
@@ -36,7 +36,6 @@ use C4::Context;
use C4::Auth qw/:DEFAULT get_session/;
use C4::Output;
use C4::Circulation;
-use C4::Print;
use C4::Reserves;
use C4::Biblio;
use C4::Items;
@@ -73,15 +72,10 @@ my ( $template, $librarian, $cookie ) = get_template_and_user(
#####################
#Global vars
my $branches = GetBranches();
-my $printers = GetPrinters();
-my $printer = C4::Context->userenv ? C4::Context->userenv->{'branchprinter'} : "";
my $overduecharges = (C4::Context->preference('finesMode') && C4::Context->preference('finesMode') ne 'off');
my $userenv_branch = C4::Context->userenv->{'branch'} || '';
-#
-# Some code to handle the error if there is no branch or printer setting.....
-#
# Set up the item stack ....
my %returneditems;
@@ -601,9 +595,7 @@ foreach ( sort { $a <=> $b } keys %returneditems ) {
$template->param(
riloop => \@riloop,
genbrname => $branches->{$userenv_branch}->{'branchname'},
- genprname => $printers->{$printer}->{'printername'},
branchname => $branches->{$userenv_branch}->{'branchname'},
- printer => $printer,
errmsgloop => \@errmsgloop,
exemptfine => $exemptfine,
dropboxmode => $dropboxmode,
diff --git a/circ/selectbranchprinter.pl b/circ/selectbranchprinter.pl
index b5adcfc..67034b7 100755
--- a/circ/selectbranchprinter.pl
+++ b/circ/selectbranchprinter.pl
@@ -23,10 +23,10 @@ use CGI;
use C4::Context;
use C4::Output;
-use C4::Auth qw/:DEFAULT get_session/;
-use C4::Print; # GetPrinters
+use C4::Auth qw/:DEFAULT get_session get_user_printer/;
use C4::Koha;
use C4::Branch; # GetBranches GetBranchesLoop
+use C4::Printer qw(GetPrinters);
# this will be the script that chooses branch and printer settings....
@@ -56,9 +56,10 @@ my $userenv_printer = C4::Context->userenv->{'branchprinter'} || '';
my @updated;
# $session lddines here are doing the updating
-if ($branch and $branches->{$branch}) {
+my $branch_rec = $branch ? $branches->{$branch} : undef;
+if ($branch_rec) {
if (! $userenv_branch or $userenv_branch ne $branch ) {
- my $branchname = GetBranchName($branch);
+ my $branchname = $branch_rec->{branchname};
$template->param(LoginBranchname => $branchname); # update template for new branch
$template->param(LoginBranchcode => $branch); # update template for new branch
$session->param('branchname', $branchname); # update sesssion in DB
@@ -67,6 +68,8 @@ if ($branch and $branches->{$branch}) {
updated_branch => 1,
old_branch => $userenv_branch,
};
+ $printer ||= $branch_rec->{branchprinter};
+ undef $userenv_printer;
} # else branch the same, no update
} else {
$branch = $userenv_branch; # fallback value
@@ -87,7 +90,7 @@ if ($printer) {
};
} # else printer is the same, no update
} else {
- $printer = $userenv_printer; # fallback value
+ $printer = get_user_printer(); # fallback value
}
$template->param(updated => \@updated) if (scalar @updated);
@@ -96,21 +99,6 @@ unless ($branches->{$branch}) {
$branch = (keys %$branches)[0]; # if branch didn't really exist, then replace it w/ one that does
}
-my @printkeys = sort keys %$printers;
-if (scalar(@printkeys) == 1 or not $printers->{$printer}) {
- $printer = $printkeys[0]; # if printer didn't really exist, or there is only 1 anyway, then replace it w/ one that does
-}
-
-my @printerloop;
-foreach ( @printkeys ) {
- next unless ($_); # skip printer if blank.
- push @printerloop, {
- selected => ( $_ eq $printer ),
- name => $printers->{$_}->{'printername'},
- value => $_,
- };
-}
-
my @recycle_loop;
foreach ($query->param()) {
$_ or next; # disclude blanks
@@ -133,9 +121,28 @@ if (scalar @updated and not scalar @recycle_loop) {
$template->param(
referer => $referer,
- printerloop => \@printerloop,
branchloop => GetBranchesLoop($branch),
recycle_loop=> \@recycle_loop,
);
+if ( C4::Context->preference('UsePrintQueues') ) {
+ my @printkeys = keys %$printers;
+ if (scalar(@printkeys) == 1 or not $printers->{$printer}) {
+ $printer = $printkeys[0]; # if printer didn't really exist, or there is only 1 anyway, then replace it w/ one that does
+ }
+
+ my @printerloop;
+ foreach ( @printkeys ) {
+ push @printerloop, {
+ selected => ( $_ eq $printer ),
+ name => $printers->{$_}->{'printername'},
+ value => $_,
+ };
+ }
+
+ $template->param(
+ printerloop => \@printerloop,
+ );
+}
+
output_html_with_http_headers $query, $cookie, $template->output;
diff --git a/installer/data/mysql/kohastructure.sql b/installer/data/mysql/kohastructure.sql
index 91d42a2..048a7ea 100644
--- a/installer/data/mysql/kohastructure.sql
+++ b/installer/data/mysql/kohastructure.sql
@@ -364,10 +364,11 @@ CREATE TABLE `branches` ( -- information about your libraries or branches are st
`branchurl` mediumtext, -- the URL for your library or branch's website
`issuing` tinyint(4) default NULL, -- unused in Koha
`branchip` varchar(15) default NULL, -- the IP address for your library or branch
- `branchprinter` varchar(100) default NULL, -- unused in Koha
+ `branchprinter` varchar(20) default NULL,
`branchnotes` mediumtext, -- notes related to your library or branch
opac_info text, -- HTML that displays in OPAC
PRIMARY KEY (`branchcode`)
+ FOREIGN KEY (branchprinter) REFERENCES printers (printqueue) ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
--
@@ -1570,12 +1571,13 @@ CREATE TABLE `pending_offline_operations` (
-- Table structure for table `printers`
--
-DROP TABLE IF EXISTS `printers`;
-CREATE TABLE `printers` (
- `printername` varchar(40) NOT NULL default '',
- `printqueue` varchar(20) default NULL,
- `printtype` varchar(20) default NULL,
- PRIMARY KEY (`printername`)
+DROP TABLE IF EXISTS printers;
+CREATE TABLE printers (
+ printername varchar(40) NOT NULL default '',
+ printqueue varchar(20) NOT NULL,
+ printtype varchar(20) default NULL,
+ PRIMARY KEY (printqueue),
+ UNIQUE (printername)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
--
diff --git a/installer/data/mysql/sysprefs.sql b/installer/data/mysql/sysprefs.sql
index 35f92cc..f21b071 100644
--- a/installer/data/mysql/sysprefs.sql
+++ b/installer/data/mysql/sysprefs.sql
@@ -366,6 +366,7 @@ INSERT INTO systempreferences (variable,value,options,explanation,type) VALUES (
INSERT INTO systempreferences (variable,value,explanation,type) VALUES('EnableBorrowerFiles','0','If enabled, allows librarians to upload and attach arbitrary files to a borrower record.','YesNo');
INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES('UpdateTotalIssuesOnCirc','0','Whether to update the totalissues field in the biblio on each circ.',NULL,'YesNo');
INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES('IntranetSlipPrinterJS','','Use this JavaScript for printing slips. Define at least function printThenClose(). For use e.g. with Firefox PlugIn jsPrintSetup, see http://jsprintsetup.mozdev.org/','','Free');
+INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES ('UsePrintQueues','0',NULL,NULL,'YesNo');
INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES('OpacSuppressionByIPRange','','Restrict the suppression to IP adresses outside of the IP range','','free');
INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES('PrefillItem','0','When a new item is added, should it be prefilled with last created item values?','','YesNo');
INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES ('SubfieldsToUseWhenPrefill','','Define a list of subfields to use when prefilling items (separated by space)','','Free');
diff --git a/installer/data/mysql/updatedatabase.pl b/installer/data/mysql/updatedatabase.pl
index 25cd367..3649a78 100755
--- a/installer/data/mysql/updatedatabase.pl
+++ b/installer/data/mysql/updatedatabase.pl
@@ -5696,6 +5696,18 @@ if (C4::Context->preference("Version") < TransformToNum($DBversion)) {
SetVersion($DBversion);
}
+
+
+$DBversion = "3.09.00.XXX";
+if ( C4::Context->preference("Version") < TransformToNum($DBversion) ) {
+ $dbh->do("ALTER TABLE printers DROP PRIMARY KEY, MODIFY printqueue varchar(20) NOT NULL PRIMARY KEY, ADD UNIQUE (printername)");
+ $dbh->do("ALTER TABLE branches MODIFY branchprinter varchar(20) NULL, ADD FOREIGN KEY (branchprinter) REFERENCES printers (printqueue) ON UPDATE CASCADE");
+ $dbh->do("INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES ('UsePrintQueues','0',NULL,NULL,'YesNo')");
+
+ print "Upgrade to $DBversion done (Add borrowers.default_printqueue and 'UsePrintQueues' syspref)\n";
+ SetVersion($DBversion);
+}
+
=head1 FUNCTIONS
=head2 TableExists($table)
diff --git a/koha-tmpl/intranet-tmpl/prog/en/includes/admin-menu.inc b/koha-tmpl/intranet-tmpl/prog/en/includes/admin-menu.inc
index 72162d3..7da6f1f 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/includes/admin-menu.inc
+++ b/koha-tmpl/intranet-tmpl/prog/en/includes/admin-menu.inc
@@ -59,6 +59,7 @@
<h5>Additional parameters</h5>
<ul>
+ [% IF UsePrintQueues %]<li><a href="/cgi-bin/koha/admin/printers.pl">Network Printers</a></li>[% END %]
[% IF ( NoZebra ) %]<li><a href="/cgi-bin/koha/admin/stopwords.pl">Stop words</a></li>[% END %]
<!-- <li><a href="/cgi-bin/koha/admin/printers.pl">Network Printers</a></li> -->
<li><a href="/cgi-bin/koha/admin/z3950servers.pl">Z39.50 client targets</a></li>
diff --git a/koha-tmpl/intranet-tmpl/prog/en/includes/header.inc b/koha-tmpl/intranet-tmpl/prog/en/includes/header.inc
index 3d71d45..7d3aa24 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/includes/header.inc
+++ b/koha-tmpl/intranet-tmpl/prog/en/includes/header.inc
@@ -57,6 +57,9 @@
[% LoginBranchname %]
[% END %]
</strong>
+ [% IF UsePrintQueues && PrinterName %]
+ - [% PrinterName %]
+ [% END %]
[% IF ( IndependantBranches ) %]
[% IF ( CAN_user_management || CAN_user_editcatalogue_edit_catalogue ) %]
( <a class="toplinks" href="/cgi-bin/koha/circ/selectbranchprinter.pl">Set library</a> )
diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/admin-home.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/admin-home.tt
index 3906c46..d2e0fc5 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/admin-home.tt
+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/admin-home.tt
@@ -101,8 +101,8 @@
<dl>
[% IF ( NoZebra ) %]<dt><a href="/cgi-bin/koha/admin/stopwords.pl">Stop words</a></dt>
<dd>Words ignored during search.</dd>[% END %]
- <!-- <dt><a href="/cgi-bin/koha/admin/printers.pl">Network Printers</a></dt>
- <dd>Printers (UNIX paths).</dd> -->
+ [% IF UsePrintQueues %]<dt><a href="/cgi-bin/koha/admin/printers.pl">Network Printers</a></dt>
+ <dd>Printers (UNIX paths).</dd>[% END %]
<dt><a href="/cgi-bin/koha/admin/z3950servers.pl">Z39.50 client targets</a></dt>
<dd>Define which servers to query for MARC data in the integrated Z39.50 client.</dd>
</dl>
diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/branches.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/branches.tt
index 15e8064..bcb918f 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/branches.tt
+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/branches.tt
@@ -143,10 +143,10 @@ tinyMCE.init({
<li><label for="branchurl">URL</label><input type="text" name="branchurl" id="branchurl" value="[% branchurl |html %]" /></li>
<li><label for="opac_info">OPAC info</label><textarea name="opac_info" id="opac_info">[% opac_info |html %]</textarea></li>
<li><label for="branchip">IP</label><input type="text" name="branchip" id="branchip" value="[% branchip |html %]" /> <span class="hint">Can be entered as a single IP, or a subnet such as 192.168.1.*</span></li>
- <!--
- <li><label for="branchprinter">Library Printer</label>
+[% IF UsePrintQueues %]
+ <li><label for="branchprinter">Library printer</label>
<select id="branchprinter" name="branchprinter">
- <option value="">None</option>
+ <option value="">(None)</option>
[% FOREACH printerloo IN printerloop %]
[% IF ( printerloo.selected ) %]
<option value="[% printerloo.value %]" selected="selected">[% printerloo.branchprinter %]</option>
@@ -155,7 +155,7 @@ tinyMCE.init({
[% END %]
[% END %]
</select></li>
- -->
+[% END %]
<li><label for="branchnotes">Notes</label><input type="text" name="branchnotes" id="branchnotes" value="[% branchnotes |html %]" /></li>
</ol>
</fieldset>
@@ -198,7 +198,9 @@ tinyMCE.init({
<th>Address</th>
<th>Properties</th>
<th>IP</th>
- <!-- <th>Printer</th> -->
+[% IF UsePrintQueues %]
+ <th>Printer</th>
+[% END %]
<th colspan="2"> </th>
</tr></thead><tbody>
[% FOREACH branche IN branches %]
@@ -250,9 +252,11 @@ tinyMCE.init({
<td>
[% branche.branchip %]
</td>
- <!-- <td>
- [% branche.branchprinter %]
- </td> -->
+[% IF UsePrintQueues %]
+ <td>
+ [% branche.branchprintername %]
+ </td>
+[% END %]
<td>
<a href="[% branche.action %]?op=edit&branchcode=[% branche.value |url %]">Edit</a>
</td>
diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/circulation.pref b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/circulation.pref
index a9ed6f7..23cd7ee 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/circulation.pref
+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/circulation.pref
@@ -110,6 +110,12 @@ Circulation:
yes: Do
no: "Do not"
- update a bibliographic record's total issues count whenever an item is issued (WARNING! This increases server load significantly; if performance is a concern, use the update_totalissues.pl cron job to update the total issues count).
+ -
+ - pref: UsePrintQueues
+ choices:
+ yes: "Use"
+ no: "Don't use"
+ - server print queues.
Checkout Policy:
-
- pref: AllowNotForLoanOverride
diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/printers.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/printers.tt
index 7dfb80b..06fd229 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/printers.tt
+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/printers.tt
@@ -4,7 +4,7 @@
[% IF ( add_validate ) %] Printers › Printer added[% END %]
[% IF ( delete_confirm ) %] Printers › Confirm deletion of printer '[% searchfield %]'[% END %]
[% IF ( delete_confirmed ) %] Printers › Printer deleted[% END %]
-[% IF ( else ) %]Printers[% END %]</title>
+[% IF ( list_printers ) %]Printers[% END %]</title>
[% INCLUDE 'doc-head-close.inc' %]
[% IF ( add_form ) %]<script type="text/javascript">
//<![CDATA[
@@ -71,7 +71,7 @@
[% IF ( add_validate ) %] <a href="/cgi-bin/koha/admin/printers.pl">Printers</a> › Printer added[% END %]
[% IF ( delete_confirm ) %] <a href="/cgi-bin/koha/admin/printers.pl">Printers</a> › Confirm deletion of printer '[% searchfield %]'[% END %]
[% IF ( delete_confirmed ) %] <a href="/cgi-bin/koha/admin/printers.pl">Printers</a> › Printer deleted[% END %]
-[% IF ( else ) %]Printers[% END %]</div>
+[% IF ( list_printers ) %]Printers[% END %]</div>
<div id="doc3" class="yui-t2">
@@ -89,22 +89,17 @@
<form action="[% script_name %]" name="Aform" method="post">
<input type="hidden" name="op" value="add_validate" />
[% IF ( searchfield ) %]
+ <input type="hidden" name="searchfield" value="[% searchfield %]" />
<input type="hidden" name="add" value="0" />
[% ELSE %]
<input type="hidden" name="add" value="1" />
[% END %]
<fieldset class="rows">
-<ol> [% IF ( searchfield ) %]
- <li>
- <span class="label">Printer name: </span>
- <input type="hidden" name="printername" id="" value="[% searchfield %]" />[% searchfield %]
- </li>
- [% ELSE %]
+<ol>
<li>
<label for="printername">Printer name: </label>
- <input type="text" name="printername" id="printername" size="50" maxlength="50" />
+ <input type="text" name="printername" id="printername" size="50" maxlength="50" value="[% printername %]" />
</li>
- [% END %]
<li>
<label for="printqueue">Queue: </label>
<input type="text" name="printqueue" id="printqueue" size="50" maxlength="50" value="[% printqueue %]" />
@@ -119,13 +114,6 @@
[% END %]
-[% IF ( add_validate ) %]
-<h3>Printer added</h3>
-<form action="[% script_name %]" method="post">
- <fieldset class="action"> <input type="submit" value="OK" /></fieldset>
-</form>
-[% END %]
-
[% IF ( delete_confirm ) %]
<h3>Confirm deletion of printer <em>[% searchfield %]</em></h3>
<ul>
@@ -151,14 +139,7 @@
</form>
[% END %]
-[% IF ( delete_confirmed ) %]
-<h3>Printer deleted</h3>
-<form action="[% script_name %]" method="post">
- <fieldset class="action"><input type="submit" value="OK" /></fieldset>
-</form>
-[% END %]
-
-[% IF ( else ) %]
+[% IF ( list_printers ) %]
<div id="toolbar">
<script type="text/javascript">
@@ -190,7 +171,7 @@
<td>[% loo.printername %]</td>
<td>[% loo.printqueue %]</td>
<td>[% loo.printtype %]</td>
- <td><a href="[% loo.script_name %]?op=add_form&searchfield=[% loo.printername %]">Edit</a> <a href="[% loo.script_name %]?op=delete_confirm&searchfield=[% loo.printername %]">Delete</a></td>
+ <td><a href="[% loo.script_name %]?op=add_form&searchfield=[% loo.printqueue %]">Edit</a> <a href="[% loo.script_name %]?op=delete_confirm&searchfield=[% loo.printqueue %]">Delete</a></td>
</tr>
[% END %]
</table>[% ELSE %]<div class="notice">No printers defined.</div>[% END %]
diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/circ/circulation.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/circ/circulation.tt
index 8724e9d..0dc95a8 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/circ/circulation.tt
+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/circ/circulation.tt
@@ -457,7 +457,6 @@ No patron matched <span class="ex">[% message %]</span>
<legend>Patron selection</legend>
<input type="hidden" name="branch" value="[% branch %]" />
- <input type="hidden" name="printer" value="[% printer %]" />
<input type="hidden" name="duedatespec" value="[% duedatespec %]" />
<input type="hidden" name="stickyduedate" value="[% stickyduedate %]" />
@@ -515,7 +514,6 @@ No patron matched <span class="ex">[% message %]</span>
</div>[% END %]
<input type="hidden" name="borrowernumber" id="borrowernumber" value="[% borrowernumber %]" />
<input type="hidden" name="branch" value="[% branch %]" />
- <input type="hidden" name="printer" value="[% printer %]" />
<input type="hidden" name="print" value="maybe" />
<input type="hidden" name="debt_confirmed" value="[% debt_confirmed %]" />
[% IF ( CHARGES ) %]
diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/circ/selectbranchprinter.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/circ/selectbranchprinter.tt
index acad21c..e742f81 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/circ/selectbranchprinter.tt
+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/circ/selectbranchprinter.tt
@@ -28,7 +28,7 @@ Updated:<ul>
[% IF ( update.updated_branch ) %]
<li>Library: [% update.old_branch or "?" %] ⇒ [% update.LoginBranchcode or "?" %]</li>
[% ELSIF ( update.updated_printer ) %]
- <!-- FIXME: <li>Printer: [% update.old_printer or "?" %] ⇒ [% update.new_printer or "?" %]</li> -->
+ <li>Printer: [% update.old_printer or "?" %] ⇒ [% update.new_printer or "?" %]</li>
[% ELSE %]
<li>ERROR - unknown</li>
[% END %]
@@ -63,7 +63,6 @@ Updated:<ul>
[% END %]
</select></li>
[% END %]
-<!--
[% IF ( printerloop ) %]
<li><label for="printer">Choose a network printer:</label>
<select name="printer" id="printer">
@@ -75,7 +74,7 @@ Updated:<ul>
[% END %]
[% END %]
</select></li>
- [% END %] -->
+ [% END %]
</ol>
</fieldset>
<fieldset class="action"><input type="submit" value="Submit" /></fieldset>
diff --git a/t/db_dependent/lib/KohaTest/Koha.pm b/t/db_dependent/lib/KohaTest/Koha.pm
index 13a145a..0dda47a 100644
--- a/t/db_dependent/lib/KohaTest/Koha.pm
+++ b/t/db_dependent/lib/KohaTest/Koha.pm
@@ -28,8 +28,6 @@ sub methods : Test( 1 ) {
_getImagesFromDirectory
_getSubdirectoryNames
getImageSets
- GetPrinters
- GetPrinter
getnbpages
getallthemes
getFacets
diff --git a/t/db_dependent/lib/KohaTest/Printer.pm b/t/db_dependent/lib/KohaTest/Printer.pm
new file mode 100644
index 0000000..4caef06
--- /dev/null
+++ b/t/db_dependent/lib/KohaTest/Printer.pm
@@ -0,0 +1,26 @@
+package KohaTest::Printer;
+use base qw( KohaTest );
+
+use strict;
+use warnings;
+
+use Test::More;
+
+use C4::Printer;
+sub testing_class { 'C4::Printer' }
+
+sub methods : Test( 1 ) {
+ my $self = shift;
+ my @methods = qw(
+ GetPrinters
+ SearchPrinters
+ GetPrinterDetails
+ AddPrinter
+ UpdatePrinter
+ DeletePrinter
+ );
+
+ can_ok( $self->testing_class, @methods );
+}
+
+1;
--
1.7.9.5
More information about the Koha-patches
mailing list