Bug 19722: Add MaxItemsToDisplayForBatchMod systempreference
To test:
1 - Get a list of itemnumbers or barcodes
2 - Set MaxItemsToProcessForBatchMod to less than this number of items
3 - Attempt to batch edit, you arent allowed
4 - Set MaxItemsToProcessForBatchMod to some hugh number like 60000
5 - Try a list of as many items as possible 30000 was good for me (they
should exist in your system)
6 - Try to batch edit, system will timeout on displaying these items
7 - Apply patch, update database
8 - Set MaxItemsToDisplayForBatchMod to 1000 (default)
9 - Try large file again, should not display items, but allow
modification, wait for this to finish
10 - SetMaxItemsToProcessForBatchMod to 1000 and try large file again
11 - Should be prohibited as before
Signed-off-by: Séverine QUEUNE <severine.queune@bulac.fr>
Signed-off-by: Josef Moravec <josef.moravec@gmail.com>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
This commit is contained in:
parent
d2e562947e
commit
32cdfed1ec
|
|
@ -0,0 +1,8 @@
|
|||
$DBversion = 'XXX'; # will be replaced by the RM
|
||||
if( CheckVersion( $DBversion ) ) {
|
||||
$dbh->do( "INSERT IGNORE INTO systempreferences (variable, value, options, explanation, type)
|
||||
VALUES ('MaxItemsToDisplayForBatchMod','1000',NULL,'Display up to a given number of items in a single item modification batch.','Integer')"
|
||||
);
|
||||
SetVersion( $DBversion );
|
||||
print "Upgrade to $DBversion done (Bug 19722 - Add a MaxItemsToDisplayForBatchMod preference)\n";
|
||||
}
|
||||
|
|
@ -293,6 +293,7 @@ INSERT INTO systempreferences ( `variable`, `value`, `options`, `explanation`, `
|
|||
('MARCOrgCode','OSt','','Define MARC Organization Code for MARC21 records - http://www.loc.gov/marc/organizations/orgshome.html','free'),
|
||||
('MaxFine',NULL,'','Maximum fine a patron can have for all late returns at one moment. Single item caps are specified in the circulation rules matrix.','Integer'),
|
||||
('MaxItemsToDisplayForBatchDel','1000',NULL,'Display up to a given number of items in a single item deletionbatch.','Integer'),
|
||||
('MaxItemsToDisplayForBatchMod','1000',NULL,'Display up to a given number of items in a single item modification batch.','Integer'),
|
||||
('MaxItemsToProcessForBatchMod','1000',NULL,'Process up to a given number of items in a single item modification batch.','Integer'),
|
||||
('maxItemsInSearchResults','20',NULL,'Specify the maximum number of items to display for each result on a page of results','free'),
|
||||
('MaxOpenSuggestions','',NULL,'Limit the number of open suggestions a patron can have at once','Integer'),
|
||||
|
|
|
|||
|
|
@ -10,6 +10,11 @@ Tools:
|
|||
- pref: MaxItemsToDisplayForBatchDel
|
||||
class: integer
|
||||
- items in a single item deletion batch.
|
||||
-
|
||||
- Display up to
|
||||
- pref: MaxItemsToDisplayForBatchMod
|
||||
class: integer
|
||||
- items in a single item modification batch.
|
||||
Patron cards:
|
||||
-
|
||||
- Limit the number of creator images stored in the database to
|
||||
|
|
|
|||
|
|
@ -103,7 +103,7 @@ $(document).ready(function(){
|
|||
</tbody>
|
||||
</table>
|
||||
[% IF ( item_loop ) %]
|
||||
[% UNLESS ( too_many_items ) %]
|
||||
[% UNLESS ( too_many_items_display ) %]
|
||||
<h4>The following barcodes were found: </h4>
|
||||
[% END %]
|
||||
[% END %]
|
||||
|
|
@ -121,14 +121,13 @@ $(document).ready(function(){
|
|||
</tbody>
|
||||
</table>
|
||||
[% IF ( item_loop ) %]
|
||||
[% UNLESS ( too_many_items ) %]
|
||||
[% UNLESS ( too_many_items_display ) %]
|
||||
<h4>The following itemnumbers were found: </h4>
|
||||
[% END %]
|
||||
[% END %]
|
||||
[% END %] <!-- /notfounditemnumbers -->
|
||||
|
||||
|
||||
|
||||
<form name="f" action="batchMod.pl" method="post">
|
||||
<input type="hidden" name="op" value="[% op | html %]" />
|
||||
<input type="hidden" name="uploadedfileid" id="uploadedfileid" value="" />
|
||||
|
|
@ -225,14 +224,16 @@ $(document).ready(function(){
|
|||
|
||||
[% IF ( show ) %]
|
||||
|
||||
[% IF ( too_many_items ) %]
|
||||
<p>Too many items ([% too_many_items | html %]): You are not allowed to edit more than [% Koha.Preference('MaxItemsToProcessForBatchMod') | html %] items in a batch.</p>
|
||||
[% IF ( too_many_items_process ) %]
|
||||
<p>Too many items ([% too_many_items_process | html %]): You are not allowed to edit more than [% Koha.Preference('MaxItemsToProcessForBatchMod') | html %] items in a batch.</p>
|
||||
[% ELSIF ( too_many_items_display ) %]
|
||||
<p>Too many items ([% too_many_items_display | html %]): You are editing more than [% Koha.Preference('MaxItemsToDisplayForBatchMod') | html %] items in a batch, items will not be shown.</p>
|
||||
[% FOREACH itemnumber IN itemnumbers_array %]
|
||||
<input type="hidden" name="itemnumber" value="[% itemnumber | html %]" />
|
||||
[% END %]
|
||||
[% END %]<!-- /too_many_items -->
|
||||
|
||||
[% IF ( item_loop ) %]
|
||||
[% UNLESS (too_many_items_process) %]
|
||||
<div id="cataloguing_additem_newitem">
|
||||
<h2>Edit Items</h2>
|
||||
<div class="hint">Checking the box right next to the subfield label will disable the entry and delete the subfield on all selected items. Leave fields blank to make no change.</div>
|
||||
|
|
|
|||
|
|
@ -279,13 +279,14 @@ if ($op eq "show"){
|
|||
# Flag to tell the template there are valid results, hidden or not
|
||||
if(scalar(@itemnumbers) > 0){ $template->param("itemresults" => 1); }
|
||||
# Only display the items if there are no more than pref MaxItemsToProcessForBatchMod or MaxItemsToDisplayForBatchDel
|
||||
my $max_items = $del
|
||||
my $max_display_items = $del
|
||||
? C4::Context->preference("MaxItemsToDisplayForBatchDel")
|
||||
: C4::Context->preference("MaxItemsToProcessForBatchMod");
|
||||
if (scalar(@itemnumbers) <= ( $max_items // 1000 ) ) {
|
||||
: C4::Context->preference("MaxItemsToDisplayForBatchMod");
|
||||
$template->param("too_many_items_process" => scalar(@itemnumbers)) if !$del && scalar(@itemnumbers) >= C4::Context->preference("MaxItemsToProcessForBatchMod");
|
||||
if (scalar(@itemnumbers) <= ( $max_display_items // 1000 ) ) {
|
||||
$items_display_hashref=BuildItemsData(@itemnumbers);
|
||||
} else {
|
||||
$template->param("too_many_items" => scalar(@itemnumbers));
|
||||
$template->param("too_many_items_display" => scalar(@itemnumbers));
|
||||
# Even if we do not display the items, we need the itemnumbers
|
||||
$template->param(itemnumbers_array => \@itemnumbers);
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue