@@ -, +, @@ --- C4/HoldsQueue.pm | 4 +-- catalogue/moredetail.pl | 2 +- catalogue/updateitem.pl | 6 ++--- .../prog/en/modules/admin/categories.tt | 8 ++++++ .../prog/en/modules/catalogue/moredetail.tt | 6 ++++- .../prog/en/modules/tools/batchMod-edit.tt | 2 +- tools/batchMod.pl | 27 +++++++++++++++++-- 7 files changed, 45 insertions(+), 10 deletions(-) --- a/C4/HoldsQueue.pm +++ a/C4/HoldsQueue.pm @@ -409,8 +409,8 @@ sub MapItemsToHoldRequests { next if ( !$item->{holdallowed} ) || ( $item->{holdallowed} == 1 - && $item->{homebranch} ne $request->{borrowerbranch} - || $item->{_object}->exclude_from_local_holds_priority ); + && $item->{homebranch} ne $request->{borrowerbranch} ) + || $item->{_object}->exclude_from_local_holds_priority; next if $request->{itemnumber} && $request->{itemnumber} != $item->{itemnumber}; --- a/catalogue/moredetail.pl +++ a/catalogue/moredetail.pl @@ -51,7 +51,7 @@ my ($template, $loggedinuser, $cookie) = get_template_and_user( ); $template->param( - updated_exclude_from_local_holds_priority => $query->param('updated_exclude_from_local_holds_priority') + updated_exclude_from_local_holds_priority => scalar($query->param('updated_exclude_from_local_holds_priority')) ); if($query->cookie("holdfor")){ --- a/catalogue/updateitem.pl +++ a/catalogue/updateitem.pl @@ -56,7 +56,7 @@ for ($damaged,$itemlost,$withdrawn) { } } -my $alerts = q{}; +my $messages = q{}; # modify MARC item if input differs from items table. if ( $op eq "set_non_public_note" ) { @@ -76,7 +76,7 @@ elsif ( $op eq "set_public_note" ) { # i.e., itemnotes parameter passed from for $item->withdrawn($withdrawn); } elsif ( $op eq "set_exclude_priority" && $exclude_from_local_holds_priority ne $item_data_hashref->{'exclude_from_local_holds_priority'}) { $item->exclude_from_local_holds_priority($exclude_from_local_holds_priority); - $alerts = "updated_exclude_from_local_holds_priority=$exclude_from_local_holds_priority&"; + $messages = "updated_exclude_from_local_holds_priority=$exclude_from_local_holds_priority&"; } elsif ( $op eq "set_damaged" && $damaged ne $item_data_hashref->{'damaged'}) { $item->damaged($damaged); } else { @@ -89,4 +89,4 @@ $item->store; LostItem($itemnumber, 'moredetail') if $op eq "set_lost"; -print $cgi->redirect("moredetail.pl?" . $alerts . "biblionumber=$biblionumber&itemnumber=$itemnumber#item$itemnumber"); +print $cgi->redirect("moredetail.pl?" . $messages . "biblionumber=$biblionumber&itemnumber=$itemnumber#item$itemnumber"); --- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/categories.tt +++ a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/categories.tt @@ -436,6 +436,7 @@ Check previous checkout? [% END %] Default privacy + Exclude from local holds priority Actions @@ -549,6 +550,13 @@ Forever [% END %] + + [% IF category.exclude_from_local_holds_priority %] + Yes + [% ELSE %] + No + [% END %] + Edit Delete --- a/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/moredetail.tt +++ a/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/moredetail.tt @@ -61,7 +61,11 @@ [% IF updated_exclude_from_local_holds_priority.defined %]
Exclude from local holds priority updated to - [% IF updated_exclude_from_local_holds_priority %]Yes[% ELSE %]No[% END %] + [% IF updated_exclude_from_local_holds_priority %] + Yes + [% ELSE %] + No + [% END %]
[% END %] --- a/koha-tmpl/intranet-tmpl/prog/en/modules/tools/batchMod-edit.tt +++ a/koha-tmpl/intranet-tmpl/prog/en/modules/tools/batchMod-edit.tt @@ -341,7 +341,7 @@ $(document).ready(function(){
- Priority + Other attributes
  1. --- a/tools/batchMod.pl +++ a/tools/batchMod.pl @@ -154,7 +154,7 @@ if ($op eq "action") { my $job = C4::BackgroundJob->fetch($sessionID, $completedJobID); # Calling the template - add_saved_job_results_to_template($template, $completedJobID); + add_saved_job_results_to_template($template, $completedJobID, $items_display_hashref); } else { # While the job is getting done @@ -186,12 +186,20 @@ if ($op eq "action") { } } + my $yesno = Koha::AuthorisedValues->search({category => 'YES_NO'}); + my $ynhash = {}; + + while(my $yn = $yesno->next) { + $ynhash->{'av'.$yn->authorised_value} = $yn->lib; + } + try { my $schema = Koha::Database->new->schema; $schema->txn_do( sub { # For each item my $i = 1; + my $extra_headers = {}; foreach my $itemnumber (@itemnumbers) { $job->progress($i) if $runinbackground; my $item = Koha::Items->find($itemnumber); @@ -233,9 +241,13 @@ if ($op eq "action") { } else { my $modified_holds_priority = 0; - if (defined $exclude_from_local_holds_priority && $item->exclude_from_local_holds_priority != $exclude_from_local_holds_priority) { + if (defined $exclude_from_local_holds_priority) { + if($item->exclude_from_local_holds_priority != $exclude_from_local_holds_priority) { $item->exclude_from_local_holds_priority($exclude_from_local_holds_priority)->store; $modified_holds_priority = 1; + } + $extra_headers->{exclude_from_local_holds_priority} = {name => 'Exclude from local holds priority', items => {}} unless defined $extra_headers->{exclude_from_local_holds_priority}; + $extra_headers->{exclude_from_local_holds_priority}->{items}->{$item->itemnumber} = $ynhash->{'av'.$item->exclude_from_local_holds_priority}; } my $modified = 0; if ( $values_to_modify || $values_to_blank ) { @@ -305,6 +317,7 @@ if ($op eq "action") { { modified_items => $modified_items, modified_fields => $modified_fields, + extra_headers => $extra_headers, } ); } @@ -772,12 +785,22 @@ sub add_results_to_template { sub add_saved_job_results_to_template { my $template = shift; my $completedJobID = shift; + my $items_display_hashref= shift; my $job = C4::BackgroundJob->fetch($sessionID, $completedJobID); my $results = $job->results(); add_results_to_template($template, $results); my $fields = $job->get("modified_fields"); my $items = $job->get("modified_items"); + my $extra_headers = $job->get("extra_headers"); + + foreach my $header (keys %{$extra_headers}) { + push @{$items_display_hashref->{item_header_loop}}, {header_value => $extra_headers->{$header}->{name}}; + foreach my $row (@{$items_display_hashref->{item_loop}}) { + push @{$row->{item_value}}, {field => $extra_headers->{$header}->{items}->{$row->{itemnumber}}}; + } + } + $template->param( modified_items => $items, modified_fields => $fields, --