Bug 14828: Use Koha::ItemType[s] everywhere C4::ItemType was used

This patch mainly replaces C4::ItemType->all with
Koha::ItemTypes->search.

Test plan:
At the places where the C4::ItemType module was used, confirm there is
no regression:
- acqui/neworderempty.pl
- catalogue/itemsearch.pl
- admin/item_circulation_alerts.pl
and the 2 cataloguing plugins:
- marc21_linking_section.pl
- unimarc_field_4XX.pl

QA step:
prove t/db_dependent/HoldsQueue.t should return green
Note that the tests were buggy.

Signed-off-by: Marc Véron <veron@veron.ch>

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>

Signed-off-by: Brendan Gallagher brendan@bywatersolutions.com
This commit is contained in:
Jonathan Druart 2015-09-15 17:03:04 +01:00 committed by Brendan Gallagher
parent db2a1aa0dd
commit aafe73eefb
9 changed files with 35 additions and 42 deletions

View File

@ -21,9 +21,10 @@ use strict;
use warnings;
use C4::Context;
use C4::Category;
use C4::ItemType;
use Carp qw(carp croak);
use Koha::ItemTypes;
our $AUTOLOAD;
# helper function for validating \%opts
@ -331,7 +332,7 @@ sub grid {
my @branch_prefs = $class->find($where);
my @default_prefs = $class->find({ branchcode => '*', notification => $where->{notification} });
my @cc = C4::Category->all;
my @it = C4::ItemType->all;
my @it = Koha::ItemTypes->search;
my $notification = $where->{notification};
my %disabled = map {
my $key = $_->categorycode . "-" . $_->item_type . "-" . $notification;

View File

@ -89,6 +89,7 @@ use C4::Search qw/FindDuplicate/;
use C4::ImportBatch qw/GetImportRecordMarc SetImportRecordStatus/;
use Koha::Acquisition::Bookseller;
use Koha::ItemTypes;
our $input = new CGI;
my $booksellerid = $input->param('booksellerid'); # FIXME: else ERROR!
@ -303,7 +304,7 @@ if (C4::Context->preference('AcqCreateItem') eq 'ordering' && !$ordernumber) {
}
# Get the item types list, but only if item_level_itype is YES. Otherwise, it will be in the item, no need to display it in the biblio
my @itemtypes;
@itemtypes = C4::ItemType->all unless C4::Context->preference('item-level_itypes');
@itemtypes = Koha::ItemTypes->search unless C4::Context->preference('item-level_itypes');
if ( defined $subscriptionid ) {
my $lastOrderReceived = GetLastOrderReceivedFromSubscriptionid $subscriptionid;

View File

@ -28,24 +28,14 @@ use C4::Auth;
use C4::Context;
use C4::Branch;
use C4::Category;
use C4::ItemType;
use C4::ItemCirculationAlertPreference;
use C4::Output;
use Koha::ItemTypes;
# shortcut for long package name
our $preferences = 'C4::ItemCirculationAlertPreference';
# prepend "br_" to column name and replace spaces with "<br/>"
sub br {
my ($data, @keys) = @_;
for (@keys) {
my $br = $data->{$_};
$br =~ s{\s+}{<br/>}g;
$data->{'br_'.$_} = $br;
}
$data;
}
# display item circulation alerts
sub show {
my ($input) = @_;
@ -78,9 +68,7 @@ sub show {
my @categories = (
C4::Category->all
);
my @item_types = map { br($_, 'description') } (
C4::ItemType->all
);
my @item_types = Koha::ItemTypes->search;
my $grid_checkout = $preferences->grid({ branchcode => $branch, notification => 'CHECKOUT' });
my $grid_checkin = $preferences->grid({ branchcode => $branch, notification => 'CHECKIN' });

View File

@ -27,9 +27,9 @@ use C4::Items;
use C4::Biblio;
use C4::Branch;
use C4::Koha;
use C4::ItemType;
use Koha::Item::Search::Field qw(GetItemSearchFields);
use Koha::ItemTypes;
my $cgi = new CGI;
my %params = $cgi->Vars;
@ -262,10 +262,12 @@ if ($format eq 'html') {
label => $location->{lib} // $location->{authorised_value},
};
}
my @itemtypes = C4::ItemType->all();
foreach my $itemtype (@itemtypes) {
$itemtype->{value} = $itemtype->{itemtype};
$itemtype->{label} = $itemtype->{translated_description};
my @itemtypes;
foreach my $itemtype ( Koha::ItemTypes->search ) {
push @itemtypes, {
value => $itemtype->itemtype,
label => $itemtype->translated_description,
};
}
my $ccode_avcode = GetAuthValCode('items.ccode') || 'CCODE';
my $ccodes = GetAuthorisedValues($ccode_avcode);

View File

@ -32,7 +32,8 @@ use C4::Biblio;
use C4::Koha;
use MARC::Record;
use C4::Branch;
use C4::ItemType;
use Koha::ItemTypes;
my $builder = sub {
my ( $params ) = @_;
@ -303,7 +304,7 @@ my $launcher = sub {
}
);
my @itemtypes = C4::ItemType->all;
my @itemtypes = Koha::ItemTypes->search;
$template->param(
itypeloop => \@itemtypes,

View File

@ -32,7 +32,8 @@ use C4::Biblio;
use C4::Koha;
use MARC::Record;
use C4::Branch; # GetBranches
use C4::ItemType;
use Koha::ItemTypes;
sub plugin_javascript {
my ( $dbh, $record, $tagslib, $field_number, $tabloop ) = @_;
@ -507,7 +508,7 @@ sub plugin {
}
);
my @itemtypes = C4::ItemType->all;
my @itemtypes = Koha::ItemTypes->search;
$template->param( #classlist => $classlist,
itypeloop => \@itemtypes,

View File

@ -265,16 +265,16 @@ if ($barcode) {
# Check if we should display a checkin message, based on the the item
# type of the checked in item
my $itemtype = C4::ItemType->get( $biblio->{'itemtype'} );
if ( $itemtype->{'checkinmsg'} ) {
my $itemtype = Koha::ItemTypes->find( $biblio->{'itemtype'} );
if ( $itemtype->checkinmsg ) {
$template->param(
checkinmsg => $itemtype->{'checkinmsg'},
checkinmsgtype => $itemtype->{'checkinmsgtype'},
checkinmsg => $itemtype->checkinmsg,
checkinmsgtype => $itemtype->checkinmsgtype,
);
}
# make sure return branch respects home branch circulation rules, default to homebranch
my $hbr = GetBranchItemRule($biblio->{'homebranch'}, $itemtype->{itemtype})->{'returnbranch'} || "homebranch";
my $hbr = GetBranchItemRule($biblio->{'homebranch'}, $itemtype->itemtype)->{'returnbranch'} || "homebranch";
my $returnbranch = $biblio->{$hbr} ;
$template->param(

View File

@ -157,7 +157,7 @@ $(function(){
<tr>
<th>&nbsp;</th>
[% FOREACH item_type IN item_types %]
<th>[% item_type.br_description %]</th>
<th>[% item_type.description %]</th>
[% END %]
</tr>
</thead>
@ -181,7 +181,7 @@ $(function(){
<tr>
<th>&nbsp;</th>
[% FOREACH item_type IN item_types %]
<th>[% item_type.br_description %]</th>
<th>[% item_type.description %]</th>
[% END %]
</tr>
</thead>

View File

@ -15,12 +15,13 @@ use Data::Dumper;
use Test::More tests => 23;
use C4::Branch;
use C4::ItemType;
use C4::Members;
use Koha::Database;
use t::lib::TestBuilder;
use Koha::ItemTypes;
BEGIN {
use FindBin;
use lib $FindBin::Bin;
@ -60,10 +61,8 @@ my $borrower_branchcode = $borrower->{branchcode};
my @branchcodes = ( $library1->{branchcode}, $library2->{branchcode}, $library3->{branchcode} );
my @other_branches = ( $library2->{branchcode}, $library3->{branchcode} );
my $least_cost_branch_code = pop @other_branches;
my @item_types = C4::ItemType->all;
my @for_loan = grep { $_->{notforloan} == 0 } @item_types
or BAIL_OUT("No adequate itemtype");
my $itemtype = $for_loan[0]->{itemtype};
my $itemtype = Koha::ItemTypes->search({ notforloan => 1 })->next;
$itemtype or BAIL_OUT("No adequate itemtype"); #FIXME Should be $itemtype = $itemtype->itemtype
#Set up the stage
# Sysprefs and cost matrix
@ -179,7 +178,7 @@ $dbh->do("DELETE FROM default_circ_rules");
C4::Context->set_preference('UseTransportCostMatrix', 0);
( $itemtype ) = @{ $dbh->selectrow_arrayref("SELECT itemtype FROM itemtypes LIMIT 1") };
$itemtype = Koha::ItemTypes->search->next->itemtype;
$library1 = $builder->build({
source => 'Branch',
@ -309,7 +308,7 @@ is( @$holds_queue, 3, "Holds queue filling correct number for holds for default
#warn "HOLDS QUEUE: " . Data::Dumper::Dumper( $holds_queue );
# Bug 14297
$itemtype = $item_types[0]->{itemtype};
$itemtype = Koha::ItemTypes->search->next->itemtype;
$borrowernumber = $borrower3->{borrowernumber};
my $library_A = $library1->{branchcode};
my $library_B = $library2->{branchcode};
@ -366,7 +365,7 @@ is( @$holds_queue, 1, "Bug 14297 - Holds Queue building ignoring holds where pic
# End Bug 14297
# Bug 15062
$itemtype = $item_types[0]->{itemtype};
$itemtype = Koha::ItemTypes->search->next->itemtype;
$borrowernumber = $borrower2->{borrowernumber};
$library_A = $library1->{branchcode};
$library_B = $library2->{branchcode};