Browse Source

Bug 20256: Use new methods

Signed-off-by: Bob Bennhoff - CLiC <bbennhoff@clicweb.org>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
23.05.x
Kyle Hall 5 years ago
committed by Tomas Cohen Arazi
parent
commit
e84d5ccb6c
  1. 5
      Koha/Item.pm
  2. 5
      Koha/UI/Table/Builder/Items.pm
  3. 2
      catalogue/detail.pl
  4. 1
      catalogue/itemsearch.pl
  5. 2
      catalogue/moredetail.pl
  6. 14
      cataloguing/additem.pl
  7. 1
      course_reserves/course-details.pl
  8. 2
      koha-tmpl/intranet-tmpl/prog/en/includes/catalogue/itemsearch_item.json.inc
  9. 2
      koha-tmpl/intranet-tmpl/prog/en/includes/html_helpers.inc
  10. 4
      koha-tmpl/intranet-tmpl/prog/en/includes/permissions.inc
  11. 2
      koha-tmpl/intranet-tmpl/prog/en/modules/admin/library_groups.tt
  12. 4
      koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/detail.tt
  13. 2
      koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/itemsearch_json.tt
  14. 11
      koha-tmpl/intranet-tmpl/prog/en/modules/cataloguing/additem.tt
  15. 3
      koha-tmpl/intranet-tmpl/prog/en/modules/course_reserves/course-details.tt
  16. 5
      tools/batchMod.pl

5
Koha/Item.pm

@ -295,9 +295,8 @@ sub safe_to_delete {
$error //= "not_same_branch"
if defined C4::Context->userenv
&& !C4::Context->IsSuperLibrarian()
&& C4::Context->preference("IndependentBranches")
&& ( C4::Context->userenv->{branch} ne $self->homebranch );
and defined C4::Context->userenv->{number}
and !Koha::Patrons->find( C4::Context->userenv->{number} )->can_edit_item( $self );
# check it doesn't have a waiting reserve
$error //= "book_reserved"

5
Koha/UI/Table/Builder/Items.pm

@ -71,7 +71,11 @@ Use it with:
sub build_table {
my ( $self, $params ) = @_;
my $patron = $params->{patron};
my %itemnumbers_to_idx = map { $self->{itemnumbers}->[$_] => $_ } 0..$#{$self->{itemnumbers}};
my $items = Koha::Items->search( { itemnumber => $self->{itemnumbers} } );
my @items;
@ -85,6 +89,7 @@ sub build_table {
holds => $item->biblio->holds->count,
item_holds => $item->holds->count,
is_checked_out => $item->checkout ? 1 : 0,
nomod => $patron ? !$patron->can_edit_item($item) : 0,
};
push @items, $item_info;
}

2
catalogue/detail.pl

@ -442,6 +442,8 @@ foreach my $item (@items) {
$item_info->{'course_reserves'} = GetItemCourseReservesInfo( itemnumber => $item->itemnumber );
}
$item_info->{can_be_edited} = $patron->can_edit_item( $item );
if ( C4::Context->preference("LocalCoverImages") == 1 ) {
$item_info->{cover_images} = $item->cover_images;
}

1
catalogue/itemsearch.pl

@ -255,6 +255,7 @@ if ( defined $format ) {
search_params => $search_params,
results => $results,
total_rows => $total_rows,
user => Koha::Patrons->find( $borrowernumber ),
);
if ($format eq 'csv') {

2
catalogue/moredetail.pl

@ -247,6 +247,8 @@ foreach my $item (@items){
}
);
$item_info->{nomod} = !$patron->can_edit_item( $item );
push @item_data, $item_info;
}

14
cataloguing/additem.pl

@ -158,7 +158,15 @@ my ($template, $loggedinuser, $cookie)
# Does the user have a restricted item editing permission?
my $uid = Koha::Patrons->find( $loggedinuser )->userid;
my $patron = Koha::Patrons->find( $loggedinuser );
my $item = $itemnumber ? Koha::Items->find( $itemnumber ) : undef;
if ( $item && !$patron->can_edit_item( $item ) ) {
print $input->redirect("/cgi-bin/koha/catalogue/detail.pl?biblionumber=$biblionumber");
exit;
}
my $uid = $patron->userid;
my $restrictededition = $uid ? haspermission($uid, {'editcatalogue' => 'edit_items_restricted'}) : undef;
# In case user is a superlibrarian, editing is not restricted
$restrictededition = 0 if ($restrictededition != 0 && C4::Context->IsSuperLibrarian());
@ -626,7 +634,9 @@ if ($op) {
my @items;
for my $item ( $biblio->items->as_list, $biblio->host_items->as_list ) {
push @items, $item->columns_to_str;
my $i = $item->columns_to_str;
$i->{nomod} = 1 unless $patron->can_edit_item($item);
push @items, $i;
}
my @witness_attributes = uniq map {

1
course_reserves/course-details.pl

@ -66,6 +66,7 @@ my $course_reserves = GetCourseReserves(
$template->param(
course => $course,
course_reserves => $course_reserves,
user => Koha::Patrons->find( $loggedinuser ),
);
output_html_with_http_headers $cgi, $cookie, $template->output;

2
koha-tmpl/intranet-tmpl/prog/en/includes/catalogue/itemsearch_item.json.inc

@ -32,6 +32,6 @@
"[% (item.issues || 0) | html %]",
"[% IF item.checkout %][% item.checkout.date_due | $KohaDates %][% END %]",
"[% FILTER escape_quotes ~%]
<div class="btn-group dropup"><button type="button" class="btn btn-xs btn-default dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> <i class="fa fa-pencil"></i> Edit <span class="caret"></span> </button> <ul class="dropdown-menu pull-right"> <li><a href="/cgi-bin/koha/cataloguing/additem.pl?op=edititem&biblionumber=[% item.biblionumber | uri %]&itemnumber=[% item.itemnumber | uri %]">Edit item</a></li> <li><a href="/cgi-bin/koha/cataloguing/addbiblio.pl?biblionumber=[% item.biblionumber | html %]">Edit record</a></li> </ul> </div>
<div class="btn-group dropup"><button type="button" class="btn btn-xs btn-default dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> <i class="fa fa-pencil"></i> Edit <span class="caret"></span> </button> <ul class="dropdown-menu pull-right"> [% IF user.can_edit_item( item ) %]<li><a href="/cgi-bin/koha/cataloguing/additem.pl?op=edititem&biblionumber=[% item.biblionumber | uri %]&itemnumber=[% item.itemnumber | uri %]">Edit item</a></li>[% END %] <li><a href="/cgi-bin/koha/cataloguing/addbiblio.pl?biblionumber=[% item.biblionumber | html %]">Edit record</a></li> </ul> </div>
[%~ END %]"
]

2
koha-tmpl/intranet-tmpl/prog/en/includes/html_helpers.inc

@ -262,7 +262,7 @@
</thead>
<tbody>
[% FOREACH item IN items %]
[% SET can_be_edited = ! ( Koha.Preference('IndependentBranches') && ! logged_in_user.is_superlibrarian && item.homebranch != Branches.GetLoggedInBranchname() ) %]
[% SET can_be_edited = !item.nomod && !( Koha.Preference('IndependentBranches') && ! logged_in_user && item.homebranch != Branches.GetLoggedInBranchname() ) %]
<tr>
<td>[% item.index + 1 | html %]</td>

4
koha-tmpl/intranet-tmpl/prog/en/includes/permissions.inc

@ -343,12 +343,12 @@
<span class="permissioncode">([% name | html %])</span>
[%- CASE 'edit_items' -%]
<span class="sub_permission edit_items_subpermission">
Edit items
Edit items (not including items restricted by library group)
</span>
<span class="permissioncode">([% name | html %])</span>
[%- CASE 'edit_any_item' -%]
<span class="sub_permission edit_items_subpermission">
Edit any item. If not set the logged in user can only edit items whose home library matches the logged in library.
Edit any item including items that would otherwise be restricted
</span>
<span class="permissioncode">([% name | html %])</span>
[%- CASE 'edit_items_restricted' -%]

2
koha-tmpl/intranet-tmpl/prog/en/modules/admin/library_groups.tt

@ -420,7 +420,7 @@
<li>Hide patron's info for librarians outside of this group.</li>
[% END %]
[% IF group.ft_limit_item_editing %]
<li>Limit item editing for librarians outside of this group.</li>
<li>Limit item editing to librarians inside of this group.</li>
[% END %]
[% IF group.ft_search_groups_opac %]
<li>Use for OPAC search groups</li>

4
koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/detail.tt

@ -381,7 +381,9 @@
<tr id="item_[% item.itemnumber | html %]" data-itemnumber="[% item.itemnumber | html %]" data-duedate="[% item.datedue | html %]">
[% IF (StaffDetailItemSelection) %]
<td style="text-align:center;vertical-align:middle">
[% IF item.can_be_edited %]
<input type="checkbox" value="[% item.itemnumber | html %]" name="itemnumber" />
[% END %]
</td>
[% END %]
[% IF Koha.Preference('LocalCoverImages') && ( tab == 'holdings' && itemloop_has_images || tab == 'otherholdings' && otheritemloop_has_images ) %]
@ -638,7 +640,7 @@ Note that permanent location is a code, and location may be an authval.
[% IF CAN_user_editcatalogue_edit_items %]
<td class="actions">
[% UNLESS item.cannot_be_edited %]
[% IF item.can_be_edited %]
[% IF Koha.Preference('LocalCoverImages') OR Koha.Preference('OPACLocalCoverImages') %]
<div class="btn-group">
<a class="btn btn-default btn-xs" href="/cgi-bin/koha/cataloguing/additem.pl?op=edititem&biblionumber=[% item.biblionumber | html %]&itemnumber=[% item.itemnumber | html %]#edititem"><i class="fa fa-pencil"></i> Edit</a><a class="btn btn-default btn-xs dropdown-toggle" data-toggle="dropdown"><span class="caret"></span></a>

2
koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/itemsearch_json.tt

@ -4,7 +4,7 @@
"iTotalDisplayRecords": [% total_rows | html %],
"aaData": [
[%- FOREACH item IN results -%]
[%- INCLUDE 'catalogue/itemsearch_item.json.inc' item = item -%]
[%- INCLUDE 'catalogue/itemsearch_item.json.inc' item = item, user = user -%]
[%- UNLESS loop.last %],[% END -%]
[%- END -%]
]

11
koha-tmpl/intranet-tmpl/prog/en/modules/cataloguing/additem.tt

@ -115,11 +115,15 @@
[% IF item.biblionumber != biblio.biblionumber %] [%# Host item %]
<li><a href="additem.pl?op=edititem&amp;biblionumber=[% item.biblionumber | uri %]&amp;itemnumber=[% item.itemnumber | uri %]#edititem">Edit in host</a> &nbsp; <a class="delete" href="/cgi-bin/koha/cataloguing/additem.pl?op=delinkitem&amp;biblionumber=[% biblio.biblionumber | html %]&amp;hostitemnumber=[% item.itemnumber | html %]&amp;searchid=[% searchid | html %]">Delink</a></li>
[% ELSE %]
[% UNLESS item.nomod %]
<li><a href="additem.pl?op=edititem&amp;biblionumber=[% biblio.biblionumber | uri %]&amp;itemnumber=[% item.itemnumber | uri %]&amp;searchid=[% searchid | uri %]#edititem">Edit</a></li>
[% END %]
<li><a href="additem.pl?op=dupeitem&amp;biblionumber=[% biblio.biblionumber | uri %]&amp;itemnumber=[% item.itemnumber | uri %]&amp;searchid=[% searchid | uri %]#additema">Duplicate</a></li>
<li class="print_label"><a href="/cgi-bin/koha/labels/label-edit-batch.pl?op=add&amp;number_type=itemnumber&amp;number_list=[% item.itemnumber | uri %]" target="_blank" >Print label</a></li>
[% UNLESS item.nomod %]
<li><a class="delete" href="/cgi-bin/koha/cataloguing/additem.pl?op=delitem&amp;biblionumber=[% item.biblionumber | html %]&amp;itemnumber=[% item.itemnumber | html %]&amp;searchid=[% searchid | html %]" onclick="return confirm_deletion();">Delete</a></li>
[% END %]
[% END %]
[% IF ( OPACBaseURL ) %]
<li class="view-in-opac"><a target="_blank" href="[% Koha.Preference('OPACBaseURL') | url %]/cgi-bin/koha/opac-detail.pl?biblionumber=[% item.biblionumber | uri %]">OPAC view</a></li>
[% END %]
@ -129,12 +133,13 @@
[% END %]
[% FOREACH header IN item_header_loop %]
[% SET attribute = header.attribute %]
[% SET can_mod = item.nomod ? "nomod" : "canmod" %]
[% IF header.attribute AND date_fields.grep('^' _ attribute _ '$').size %]
<td data-order="[% item.$attribute | html %]">[% item.$attribute | $KohaDates %]</td>
<td class="[% can_mod | html %]" data-order="[% item.$attribute | html %]">[% item.$attribute | $KohaDates %]</td>
[% ELSIF ( item.$attribute && ( attribute == 'price' || attribute == 'replacementprice' ) ) %]
<td data-order="[% item.$attribute | html %]">[% item.$attribute | $Price %]</td>
<td class="[% can_mod | html %]" data-order="[% item.$attribute | html %]">[% item.$attribute | $Price %]</td>
[% ELSE %]
<td>[% item.$attribute | html %]</td>
<td class="[% can_mod | html %]">[% item.$attribute | html %]</td>
[% END %]
[% END %]
</tr>

3
koha-tmpl/intranet-tmpl/prog/en/modules/course_reserves/course-details.tt

@ -294,7 +294,7 @@
[% IF CAN_user_coursereserves_add_reserves || CAN_user_coursereserves_delete_reserves %]
<td class="actions">
[% IF CAN_user_coursereserves_add_reserves %]
[% IF CAN_user_coursereserves_add_reserves && user.can_edit_item( cr.item ) %]
<a class="btn btn-default btn-xs" href="add_items.pl?course_id=[% course.course_id | html %]&amp;itemnumber=[% cr.item.itemnumber | html %]&amp;biblionumber=[% cr.biblio.biblionumber | html %]&amp;action=lookup&amp;return=[% course.course_id | html %]&amp;is_edit=1"><i class="fa fa-pencil"></i> Edit</a>
[% END %]
@ -304,7 +304,6 @@
[% END %]
</td>
[% END %]
</tr>
[% END %]
</tbody>

5
tools/batchMod.pl

@ -74,7 +74,8 @@ my ($template, $loggedinuser, $cookie)
$template->param( searchid => scalar $input->param('searchid'), );
# Does the user have a restricted item edition permission?
my $uid = $loggedinuser ? Koha::Patrons->find( $loggedinuser )->userid : undef;
my $patron = Koha::Patrons->find( $loggedinuser );
my $uid = $loggedinuser ? $patron->userid : undef;
my $restrictededition = $uid ? haspermission($uid, {'tools' => 'items_batchmod_restricted'}) : undef;
# In case user is a superlibrarian, edition is not restricted
$restrictededition = 0 if ($restrictededition != 0 && C4::Context->IsSuperLibrarian());
@ -292,7 +293,7 @@ if ($op eq "show"){
if ( $display_items ) {
my $items_table =
Koha::UI::Table::Builder::Items->new( { itemnumbers => \@itemnumbers } )
->build_table;
->build_table( { patron => $patron } );;
$template->param(
items => $items_table->{items},
item_header_loop => $items_table->{headers},

Loading…
Cancel
Save