Go to file
Nick Clemens 27cd3738fd Bug 29685: Reduce item processing by calculating 'items any available' outside of loop
See bug 24185, this avoids looping every each item of the record for every item of the record

How to reproduce:

1) on freshly installed kohadevbox create/import one book,
remember that biblionumber for later use it in down below,

2) add 100 items for that book for some library,

3) find some patron, that patron's card number we will
use as a borrower down below to open holds page,

4) check for the rule or set up a single circulation rule
in admin "/cgi-bin/koha/admin/smart-rules.pl",
that rule should match above book items/library/patron,
check that rule to have a non-zero number of holds (total, daily, count) allowed,
and, IMPORTANT: set up "On shelf holds allowed" to "If all unavailable",
("item level holds" doesn't matter).

5) open "Home > Catalog > THAT_BOOK > Place a hold on THAT_BOOK" page
("holds" tab), and enter patron code in the search field,
or you can create a direct link by yourself, for example, in my case it was:
/cgi-bin/koha/reserve/request.pl?biblionumber=4&findborrower=23529000686353

6) it should be pretty long page generation time on old code, densely increasing for every hundred items added. In the case of this solution, it's fast, and time increases a little only, linear.

In testing with 100 books I went from ~6.5 seconds to ~3.2 seconds

Signed-off-by: Andrew Fuerste-Henry <andrew@bywatersolutions.com>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
(cherry picked from commit 2213cb9152)

Signed-off-by: Andrew Fuerste-Henry <andrew@bywatersolutions.com>
2022-01-25 17:11:32 +00:00
C4 Bug 29553: (QA follow-up) Check defined instead of evaluating as boolean 2022-01-21 17:37:42 +00:00
Koha Bug 29508: Make GET /patrons/:patron_id use Koha::Patrons->search_limited 2022-01-11 22:02:31 +00:00
acqui Bug 29283: (QA follow-up) Remove code duplication 2021-11-05 08:37:06 -04:00
admin Bug 29436: ES mappings not saved if zebra is configured 2022-01-10 15:05:23 +00:00
api Bug 29018: Make DELETE /patrons/:patron_id check things 2022-01-10 22:04:58 +00:00
authorities Bug 28160: Values from 150$a aren't prefilled in z39.50 search form from an existing authority record 2021-05-10 15:52:53 +02:00
basket Bug 27268: (QA follow-up) Add Koha::Biblios to basket scripts 2021-03-09 17:20:47 +01:00
bin Bug 20582: Turn Koha into a Mojolicious application 2020-10-06 12:00:04 +02:00
catalogue Bug 28847: Move SearchLimitLibrary code to QueryBuilder Modules 2021-11-22 13:37:19 -05:00
cataloguing Bug 29789: Remove unused $error from cataloguing/additem.pl 2022-01-21 17:45:48 +00:00
circ Bug 28581: Use 'from_email_address' where appropriate 2021-07-09 09:05:48 -04:00
clubs Bug 25898: Prohibit indirect object notation 2020-10-15 12:56:30 +02:00
course_reserves Bug 25898: Fix new occurrences 2020-10-15 13:56:41 +02:00
debian Bug 28749: Restore the database name to Koha dumps 2021-08-06 07:46:44 -04:00
docs Bug 28904: Fix typo and display 2021-11-05 11:59:36 -04:00
errors Bug 26048: Use ErrorDocument middleware for Plack HTTP errors 2021-01-27 10:30:43 +01:00
etc Bug 28620: Remove trailing space when logging with log4perl 2021-07-30 10:32:28 -04:00
ill Bug 22818: Add generation and sending of notices 2020-11-11 08:35:10 +01:00
installer DBRev 21.05.08.002 2022-01-25 17:06:48 +00:00
koha-tmpl Bug 17127: Remove notes from detail.tt to only use MARCNOTES 2022-01-21 18:20:15 +00:00
labels Bug 25898: Prohibit indirect object notation 2020-10-15 12:56:30 +02:00
lib/CGI/Session/Serialize Bug 28519: Put CGI::Session::Serialize::yamlxs in lib directory 2021-06-18 11:23:42 -04:00
members Bug 29457: Pass context borrowernumber 2022-01-10 14:29:33 +00:00
misc Bug 29381: Prevent sending of automatic renewal messages on every cron run 2022-01-03 16:01:10 +00:00
offline_circ Bug 29255: Built-in offline circulation broken with SQL error 2021-11-19 10:51:05 -05:00
opac Bug 29685: Reduce item processing by calculating 'items any available' outside of loop 2022-01-25 17:11:32 +00:00
patron_lists Bug 25898: Prohibit indirect object notation 2020-10-15 12:56:30 +02:00
patroncards Bug 23271: Replace search_limited with search_with_library_limits 2021-04-21 15:25:07 +02:00
plugins Bug 24633: Add support for gitlab searching of plugins 2020-11-06 15:55:17 +01:00
pos Bug 28481: (RM follow-up) formatting 2021-12-17 21:22:24 +00:00
reports Bug 28216: Fix vendor list group by in serials statistics wizard 2021-12-17 20:55:03 +00:00
reserve Bug 29349: Do not assume holding branch is a valid pickup location 2021-12-17 21:08:58 +00:00
reviews Bug 25898: Prohibit indirect object notation 2020-10-15 12:56:30 +02:00
rotating_collections Bug 26618: (QA follow-up) Fix unit test for TranferCollection change 2021-03-03 15:36:13 +01:00
serials Bug 23243: Adjust previous patch 2021-04-21 15:25:07 +02:00
services Bug 25898: Prohibit indirect object notation 2020-10-15 12:56:30 +02:00
skel
…
suggestion Bug 28946: (bug 23271 follow-up) Missing occurrence in add_user_search.pl 2021-10-01 13:26:38 -04:00
svc Bug 29056: Remove the demo functionality leftovers 2021-10-08 08:01:56 -04:00
t Bug 29553: Regression tests 2022-01-21 17:37:31 +00:00
tags Bug 24663: Remove authnotrequired if set to 0 2020-09-03 10:40:35 +02:00
tmp/modified_authorities
…
tools Bug 9565: Use Koha::Biblio 2021-12-21 13:34:51 +00:00
virtualshelves Bug 25898: Prohibit indirect object notation 2020-10-15 12:56:30 +02:00
xt Bug 28370: Rewrite tests 2021-05-25 09:28:18 +02:00
.editorconfig Bug 24774: Set JSON indentation of 2 spaces in .editorconfig 2020-03-19 09:24:52 +00:00
.eslintrc.json Bug 23834: Add default ESLint configuration 2019-11-03 08:02:39 +00:00
.gitignore Bug 20427: Convert OPAC LESS to SCSS 2018-08-09 15:17:07 +00:00
.htaccess
…
.mailmap Bug 28386: Disambiguate Tomas and Blou 2021-05-26 12:30:59 +02:00
.perlcriticrc Bug 25898: Prohibit indirect object notation 2020-10-15 12:56:30 +02:00
.scss-lint.yml Bug 21237: Clean up staff client SCSS 2018-08-24 16:23:25 +00:00
INSTALL Bug 26617: Update INSTALL file to include koha-testing-docker and Gitlab links 2020-10-15 12:56:30 +02:00
Koha.pm DBRev 21.05.08.002 2022-01-25 17:06:48 +00:00
LICENSE
…
MANIFEST.SKIP
…
Makefile.PL Bug 28519: Put CGI::Session::Serialize::yamlxs in lib directory 2021-06-18 11:23:42 -04:00
README
…
README.md Bug 27092: Remove note about "synced repo" from README.md 2020-11-25 16:31:58 +01:00
README.robots
…
about.pl Bug 28870: Move email address validation to a specific class method 2021-11-15 07:21:49 -05:00
app.psgi Bug 20582: Fix PSGI file when behind a reverse proxy 2020-10-06 12:00:04 +02:00
changelanguage.pl Bug 25898: Prohibit indirect object notation 2020-10-15 12:56:30 +02:00
cpanfile Bug 28926: Update cpanfile for Mojolicious::Plugin::OpenAPI v2.16 2022-01-05 13:09:22 +00:00
fix-perl-path.PL Bug 21395: Make perlcritic happy 2020-06-29 12:37:02 +02:00
gulpfile.js Bug 27072: Don't process staff interface CSS with rtlcss 2020-11-24 21:27:59 +01:00
help.pl Bug 25898: Prohibit indirect object notation 2020-10-15 12:56:30 +02:00
koha_perl_deps.pl Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
kohaversion.pl Bug 26384: Fix executable flags 2020-09-11 09:56:56 +02:00
mainpage.pl Bug 25898: Prohibit indirect object notation 2020-10-15 12:56:30 +02:00
package.json Bug 27939: Update yarn.lock file 2021-03-16 12:04:06 +01:00
rewrite-config.PL Bug 28519: Put CGI::Session::Serialize::yamlxs in lib directory 2021-06-18 11:23:42 -04:00
yarn.lock Bug 27939: Update yarn.lock file 2021-03-16 12:04:06 +01:00

README.md

Koha is a free software integrated library system (ILS).

Koha is distributed under the GNU GPL version 3 or later.

Note: Koha does not accept pull requests from git hosting sites.

Note: This project has its own bug tracker, to report a bug or submit a patch visit http://bugs.koha-community.org.

For guidelines on submitting patches for Koha please visit https://wiki.koha-community.org/wiki/SubmitingAPatch

The developers handbook can be found at https://wiki.koha-community.org/wiki/Developer_handbook

http://koha-community.org/

Koha Logo