Owen Leonard [Thu, 3 Nov 2011 14:22:11 +0000 (10:22 -0400)]
Fix for Bug 7148 - Add some error handling to Acquisitions' Z39.50 search to match Cataloging's
- Copying over error handling for timeout(10007) and refused(10000)
- Copying over error handling for submission with no targets chosen
- Correcting "cancel" link in the template which was not modified
when it was copied from cataloging's popup window template.
Signed-off-by: Chris Cormack <chrisc@catalyst.net.nz> Signed-off-by: Paul Poulain <paul.poulain@biblibre.com>
Owen Leonard [Wed, 28 Sep 2011 16:44:26 +0000 (12:44 -0400)]
Bug 6933 [REVISED] Add a view of titles with a particular tag to the staff client
- Adds a new page to the tags moderation section for viewing all the
titles tagged with a particular term.
- Adds display of approved tags to the catalog detail page matching the opac
view. Adding tags from the detail view not implemented.
Follow-up adds tags display to XSLT detail view
Areas for improvement:
- I think it would be better to show "Also tagged with:" and exclude
the current tag from the list of titles tagged with a particular tag.
- It would be nice to be able to show unapproved tags (and some idication of
their status) along with approved tags on the detail page if the user had
TagsModeration permission.
Signed-off-by: Nicole C. Engard <nengard@bywatersolutions.com> Signed-off-by: Paul Poulain <paul.poulain@biblibre.com>
Bug 6913: More options for koha-create and koha-remove
This commit makes koha-create more flexible by adding a number of command-line
and configuration options.
The biggest change is to add support for pre-determined MySQL credentials using
a file in /etc/koha/passwd (for security reasons, if you use this feature, make
sure the file is not world-readable). The configuration file has the following
format:
instance:user:password:database
The database is optional, but the other two are both required if you want to
specify MySQL credentials. If no credentials are specified for a given instance,
the standard koha_instance username and an auto-generated password are used.
The following additional command line options are now available:
* --use-db - use a pre-existing database, see also --database
* --database - specify the name of the mysql database (still defaults to
koha_instance)
* --passwdfile - specify a custom (Koha) passwd file for MySQL credentials
The following additional variables are now available (for use in
koha-sites.conf or a custom config file):
* OPACPORT (previously added but not documented) - port on which the OPAC
should be served
* OPACPREFIX - prefix for the OPAC's virtual host
* OPACSUFFIX - suffix for the OPAC's virtual host
This commit also adds the --keep-mysql option to koha-remove, which, if
specified, will prevent koha-remove from deleting the database or MySQL user
when removing an instance.
Signed-off-by: Chris Cormack <chrisc@catalyst.net.nz>
Robin Sheat [Sun, 25 Sep 2011 23:04:13 +0000 (12:04 +1300)]
Bug 6913 - change how ports are handled by koha-create
This does two things:
* Allows OPACPORT to be specified to change the default OPAC port,
* removes the port number from the ServerName directive, as it's already
handled by the VirtualHost declaration.
Signed-off-by: Jared Camins-Esakov <jcamins@cpbibliography.com> Signed-off-by: Chris Cormack <chrisc@catalyst.net.nz>
Koustubha Kale [Wed, 14 Dec 2011 10:18:16 +0000 (15:48 +0530)]
Renew membership from expiry date or from current date based on a syspref
This patch adds a system preference under Patron -> BorrowerRenewalPeriodBase
Using this preference the patch allows renewal of Patron account either from todays date or from existing expiry date in the patrons account.
To test : Apply patch; Set System Preference BorrowerRenewalPeriodBase ( under Patron ) to "current membership expiry date";
Renew a patron; You will observe that patrons account expiry date has been calculated from previuos expiry date instead of today's date
( as is the default in Koha prior to this patch ).
Peter Lorimer [Thu, 30 Jun 2011 08:47:55 +0000 (09:47 +0100)]
Bug 6539 - When searching the catalogue, if I get no results then hit the Z39.50 search the title field in the pop up window is populated with what I searched for.
If I search for a valid ISBN number and hit the Z39.50 search, the title field
is populated with the ISBN number I searched for. This number should populate
the ISBN field and not the title field.
http://bugs.koha-community.org/show_bug.cgi?id=6539 Signed-off-by: Katrin Fischer <Katrin.Fischer.83@web.de>
To test:
- Search new ISBN using ISBN search from advanced search page
- 0 results - click on Z39.50 search
- Z30.50 form will have your ISBN in ISBN search option
I am signing off on this, because it's an improvement over the current
behaviour.
I see some problems though that should perhaps be addressed in a separate
bug or as a follow-up:
If you use th catalog search field and search for an ISBN or
a keyword the right fields of the Z39.50 search form will be populated, but
the search index will be put in front:
ISBN: kw,wrdl: 9783492251495
or
Title: kw,wrdl: koha testing
If you search for ISBN as keyword on the advanced search page, it will
still populate the Title search.
Signed-off-by: Liz Rea <wizzyrea@gmail.com> Signed-off-by: Paul Poulain <paul.poulain@biblibre.com>
Owen Leonard [Tue, 24 Jan 2012 15:44:11 +0000 (10:44 -0500)]
Bug 6210 - Follow up, Choose framework on merge
- Adding subtitle to the display of titles to be merged
- Adding a link to preview the MARC record of titles to be merged
- Fixing up markup of form to improve appearance
- Correcting breadcrumbs
Signed-off-by: Nicole C. Engard <nengard@bywatersolutions.com> Signed-off-by: Paul Poulain <paul.poulain@biblibre.com>
Srdjan Jankovic [Mon, 19 Dec 2011 06:22:49 +0000 (19:22 +1300)]
bug_6210: Select framework if merging two records with different frameworks
ModBiblio() - set framework to "" if "Default"
Signed-off-by: Nicole C. Engard <nengard@bywatersolutions.com>
All 4 tests passed:
Test 1: Merge two records with the same framework
Desired result: shouldn't get any prompting to pick a framework, and the
same framework should be used
Test 2: 2 records, different frameworks, into the kept record's framework
Desired result: merge with kept records framework used
Test 3: 2 records, different frameworks, into the discarded record's
framework
Desired result: merge with used records framework used
Test 4: 2 records, different frameworks, into a third framework
Desired result: merge with third framework used
Srdjan Jankovic [Mon, 23 Jan 2012 04:04:02 +0000 (17:04 +1300)]
bug_6488: Take in account opachiddenitems when searching in opac
Changed searchResults() interface
Added trailing \n when parsing OpacHiddenItems to make YAML happy
XSLTParse4Display() and buildKohaItemsNamespace() take hidden
items as input param
Removed numbering from the search results, looks wrong with
hidden items
Signed-off-by: Nicole C. Engard <nengard@bywatersolutions.com> Signed-off-by: Paul Poulain <paul.poulain@biblibre.com>
Bug 7350: In neworderempty.pl duplicating an item does not preserve select box selections
cloneNode() does not preserve select box selections, I have created a function to duplicate them : "clone_with_selected".
It is included in "cloneItemBlock", that's all.
Now the values selected in ddl are duplicated as the imput-texts are.
Signed-off-by: Paul Poulain <paul.poulain@biblibre.com>
Bug 7359 - Begin migration to a new "Koha" namespace from the old "C4" namespace
The Koha namespace is for Perl modules that meet the following mandatory
conditions:
* use "strict" and "warning" pragmata
* include valid POD
* include complete and functioning documented test cases
* not create circular dependencies
* use Object Oriented (OO) style everywhere possible
* minimize exports
* maintain mod_perl, etc. compatibility
* separate data access methods from business logic
Modules in C4 can use (and are encouraged to use) routines in
the Koha namespace. Modules in Koha should not in general use C4
modules; any C4 module that is safe to be depended on by a Koha
module is a candidate for being renamed to Koha.
The advantage of carving out a new namespace is that it doesn't
require that we refactor the entirety of C4 to support persistance or
to untangle the dependency tree. Instead, the only C4 code we would
have to reimplement for the Koha namespace right away would be
authentication, basic session management, and basic output.
(Gratuitous use made of gmcharlt's recommendations found in the
post mentioned below.)
Liz Rea [Fri, 4 Nov 2011 18:20:23 +0000 (13:20 -0500)]
Bug 7157 - Improve the j2a.pl cronjob
- Calculates updates date based on the upper age limit defined in the patron categories.
- Allows libraries to work on all branches or only one.
- Allows libraries to specify which Adult patron category to update child categories to.
- Allows libraries to specify a single Child patron category to update to an adult category.
- Has a test mode to display what transforms would be done on the database without executing the changes.
Includes improved help, copyright statement, and uses warnings. Also incorporates Paul's suggestions regarding --help and --man, changes -fromcat and -tocat to -f and -t, and removes a redundant update to categorycode (per M. deRooy).
To test:
Create two patron categories, a child and an adult category. Make sure they
have an upper age limit.
Create or modify some patrons in multiple branches that fall into the category
of "my birthdate is less than or equal to today's date minus the upper age
limit"
1. Run the script with no flags - nothing should happen, it will suggest you try the --help flag.
2. Run the script with the --help flag - you should see the help
3. Run the script with the -f=<child category> -t=<adult category> -v -n - should show you results from all branches but take no action and tell you what its computations are.
4. Run the script with the -f=<child category> -t=<adult category> -b=<branchcode> -v -n - should show you results from your specified branch, but take no action and tell you what it's computations are.
5. Run the script with the -f=<child category> -t=<adult category> -v -b=<branchcode> - should show you the computations and tell you how many patrons were modified in your single branch. It will not show you the information on which patrons were updated.
6. Run the script with the -f=<child category> -t=<adult category> -v - should show you the computations and tell you how many patrons were modified across all branches.
7. Run the script without the -v flag, if you care what the non-verbose output looks like.
Fixed in this revision: Known limitation - if you give it an unknown tocat, it will fail with a rather ugly error.
Minor changes to the commit message to reflect new longopts (which I missed the last time)
There is more this script could do, please feel free to take it and run.
Colin Campbell [Wed, 6 Jul 2011 07:24:28 +0000 (08:24 +0100)]
Bug 6752: Be stricter with utf-8 encoding of output
use encoding(UTF-8) rather than utf-8 for stricter
encoding
Marking output as ':utf8' only flags the data as utf8
using :encoding(UTF-8) also checks it as valid utf-8
see binmode in perlfunc for more details
In accordance with the robustness principle input
filehandles have not been changed as code may make
the undocumented assumption that invalid utf-8 is present
in the imput
Fixes errors reported by t/00-testcritic.t
Where feasable some filehandles have been made lexical rather than
reusing global filehandle vars
Signed-off-by: Jonathan Druart <jonathan.druart@biblibre.com> Signed-off-by: Paul Poulain <paul.poulain@biblibre.com>
The previous patches missed adding the upload_local_cover_images permission to
languages other than en, and used a forbidden TT construct, giving jenkins
agitas and indigestion. This patch adds the permission to other languages and
corrects the syntax.
Signed-off-by: Chris Cormack <chrisc@catalyst.net.nz>
Chris Cormack [Fri, 13 Jan 2012 04:16:51 +0000 (17:16 +1300)]
Bug 6836: Adding dependency on Modern::Perl
Signed-off-by: Julian Maurice <julian.maurice@biblibre.com> Signed-off-by: Katrin Fischer <Katrin.Fischer.83@web.de> Signed-off-by: Paul Poulain <paul.poulain@biblibre.com>
Julian Maurice [Fri, 2 Dec 2011 09:27:11 +0000 (10:27 +0100)]
Bug 6836: test case readingrec.pl
Signed-off-by: Chris Cormack <chris@bigballofwax.co.nz> Signed-off-by: Katrin Fischer <Katrin.Fischer.83@web.de>
I tested the functionality and tested translation.
All important strings are in the template and can be translated.
Good work!
Julian Maurice [Fri, 8 Jul 2011 12:29:19 +0000 (14:29 +0200)]
Bug 6836: Add jQuery dataTables plugin
This patch add the javascript library, a CSS (and image files from
datatables.net) and another javascript file which provides some extra
features.
It also add a Perl module C4::Utils::Datatables which provides helpful
functions for server-side processing
Signed-off-by: Chris Cormack <chris@bigballofwax.co.nz> Signed-off-by: Katrin Fischer <Katrin.Fischer.83@web.de>
* Show the "Upload images" button when OPACLocalCoverImages is enabled but
LocalCoverImages (i.e. local cover images on the staff client) is not
* Correct copyright and license comments in new files
* perltidy and replace tabs by four spaces
Signed-off-by: Koustubha Kale <kmkale@anantcorp.com> Signed-off-by: Paul Poulain <paul.poulain@biblibre.com>
Owen Leonard [Tue, 13 Dec 2011 19:19:29 +0000 (14:19 -0500)]
Bug 1633 - Interface revisions for the staff client
This patch revises the image viewer page to match other
biblio detail pages: a toolbar, a sidebar menu, etc.
Additional data is now pulled by imageviewer.pl in order
to provide information necessary for the proper functioning
of the toolbar and menus: item counts, hold availability,
biblio view options.
Other changes have been made to match the changes in the
OPAC interface like styling of the images and no-javascript
compatibility
Signed-off-by: Jared Camins-Esakov <jcamins@cpbibliography.com> Signed-off-by: Magnus Enger <magnus@enger.priv.no>
Patch failed to apply because of multiple Content-Type lines in the patch.
Corrected the same with this new patch.
Bug 1633: [SIGNED-OFF] Don't show image tab when inappropriate
This patch corrects the bug spotted by Owen Leonard where the Images tab was
showing up even for records that didn't have local cover images attached to
them. The tab is now hidden on the OPAC for records that don't have any
images. In the Intranet, an Images tab will show for staff with permission
to upload images, suggesting that they do so. For staff without that
permission, the tab is not shown.
This permission also disables returning images via the opac-image.pl and
catalogue/image.pl scripts when local cover images have been disabled.
Signed-off-by: Magnus Enger <magnus@enger.priv.no> Signed-off-by: Koustubha Kale <kmkale@anantcorp.com>
Owen Leonard [Tue, 13 Dec 2011 17:22:09 +0000 (12:22 -0500)]
Bug 1633 - [SIGNED-OFF] Add ability to take book cover images from local img db
OPAC Template revisions:
- Revised OPAC imageviewer template to match structure of
other OPAC pages (with masthead search, footer, etc)
- Added link back to detail page (controlled by
BiblioDefaultView preference)
- Added link style to thumbnails on opac-detail to add a sense of
"clickability" to them
- Revised OPAC imageviewer template to allow it to function
with JavaScript turned off. Now even without JS main image
will load, thumbnails will be properly styled, and thumbnail
links will work.
- Changes to the script are only to pass missing variables
to the template
TODO: Corresponding changes for the staff client Signed-off-by: Jared Camins-Esakov <jcamins@cpbibliography.com> Signed-off-by: Magnus Enger <magnus@enger.priv.no> Signed-off-by: Koustubha Kale <kmkale@anantcorp.com>
Koustubha Kale [Tue, 13 Dec 2011 13:24:23 +0000 (08:24 -0500)]
Bug 1633: [SIGNED-OFF] Display local cover images
This patch adds display of local cover images in the following places:
1. OPAC Results page
2. OPAC Details page
3. Separate image viewer page for the OPAC
4. Intranet Details page
5. Separate image viewer page for the Intranet
Display in the Details and (OPAC) Results pages is handled via Javascript
rather than via direct embedding, to better handle the situation where most
records have local cover images, but a few do not.
Local cover images do not currently display in the Intranet Results page
How to use/test :
Assign user permission to the user Tools > (upload_local_cover_images Upload
local cover images). In order to upload local images, login to the staff
client. Go to Home > Tools > Upload Cover Images. Here you can upload cover
images either singly or in bulk in the form of a zip file. If uploading
singly, click on image file, browse the image from your local disk, type in
the biblio number of the catalogue entry and press upload. If uploading in
bulk as a zip file, the zip file must contain (in addition to cover images)
one text file named either datalink.txt OR idlink.txt. This file should
have mapping of biblionumber to image file name in the zip one per line
with comma or tab as delimiters. For example:
Cover images will be resized to a large image of 800x600 and a thumbnail of
200x140. Depending on the setting of AllowMultipleCovers, it is possible to
upload multiple images for a single bibliographic record. However, even if
multiple covers are permitted, you have the option of replacing the existing
covers by checking the "Replace existing covers" option on the upload screen.
1. The patch adds a menu link in Tools from where you can upload local cover
images
2. It adds a user permission to enable access control to this menu item under
Tools
3. It adds a system preference OPACLocalCoverImages under Enhanced Content.
This needs to be turned on to show local cover images in OPAC.
Once you have uploaded local images, if you search for the biblio, the local
cover should show up in search as well as search detail pages in the OPAC, and
the details view in the Intranet.
Koustubha Kale is working on another patch which will allow us to set a cover
image source priority in system preferences, and which will then gracefully
fail over to the next source if image is not available from the first choice
source.
Signed-off-by: Jared Camins-Esakov <jcamins@cpbibliography.com> Signed-off-by: Magnus Enger <magnus@enger.priv.no> Signed-off-by: Koustubha Kale <kmkale@anantcorp.com>
Rebased the patch because it was failing with koha-tmpl/intranet-tmpl/prog/en/css/staff-global.css due to changes pushed in master.
Applies cleanly now.
Bug 1633: [SIGNED-OFF] Add support for uploading images to Koha
A frequently-requested feature for Koha, especially by special libraries, is
the ability to upload local cover images into Koha.
This patch adds a bibliocoverimage table, and image handling code in the
C4::Images module. Key features of the implementation include:
1. The ability to have multiple cover images for a biblio
2. Handling for "full size" (800x600) and thumbnail-size (200x140) images
3. Uploading images directly from the record view
The image display functionality by Koustubha Kale of Anant Corporation will
follow in a second patch.
Special thanks to Koustubha Kale and Anant Corporation for the initial
implementation of local cover images, and to Chris Nighswonger of Foundation
Bible College for his prior work on patron images.
Signed-off-by: Jared Camins-Esakov <jcamins@cpbibliography.com> Signed-off-by: Magnus Enger <magnus@enger.priv.no>
Will add comments on Bugzilla.
Patch failed to apply because installer/data/mysql/sysprefs.sql had changed in master.
Corrected the same with this new patch.
Garry Collum [Fri, 20 Jan 2012 17:24:27 +0000 (12:24 -0500)]
Bug 7098: Adds koha_url elements to sco.css.
The 'Powered by Koha' link was not styled in self-cko. The koha_url elements were missing from sco.css. The elements within opac.css were copied and added to sco.css.
Signed-off-by: Nicole C. Engard <nengard@bywatersolutions.com> Signed-off-by: Paul Poulain <paul.poulain@biblibre.com>
Marcel de Rooy [Thu, 5 Jan 2012 13:45:06 +0000 (14:45 +0100)]
6829 Follow up
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Needed this second follow up to remove 952-0 from the display again, coming up after the first follow up.
Changed a second test in accordance with first follow up.
Removed a useless 10th loop to create a tab10XX that is not in the template.
Signed-off-by: Paul Poulain <paul.poulain@biblibre.com>
Frédéric Demians [Tue, 27 Dec 2011 10:01:48 +0000 (11:01 +0100)]
Bug 6829 Follow up patch
To reproduce the bug:
- Open OPAC MARC View for a specific biblio record
- Fields which are affected to tab 0 are all hidden
Signed-off-by: Katrin Fischer <Katrin.Fischer.83@web.de>
Patch fixes bug for 0xx fields in OPAC MARC view.
Note: the problem only exists for 0xx fields with real subfields,
control fields display correctly, fields like 040 only display
after patch was applied.
Colin Campbell [Fri, 26 Aug 2011 15:17:11 +0000 (16:17 +0100)]
Bug 6790: Remove unnecessary variable from getroutinglist return
getroutinglist returns a count variable to indicate how many elements
are in the array. This is almost always a serious code smell. (We are
programming in a list manipulating language) The routine was executing
am unnecessary loop just to maintain that var.
Removed the variable from the routine and perldoc
refactored calls of the routine removed the c-style loops for
more idiomatic and maintainable for loops
renamed some opaquely named variables
removed a call to the routine where nothing was done with the data
moved some html out of the calling script and into the template
Signed-off-by: Chris Cormack <chris@bigballofwax.co.nz> Signed-off-by: Paul Poulain <paul.poulain@biblibre.com>
Chris Cormack [Wed, 4 Jan 2012 19:54:43 +0000 (08:54 +1300)]
Bug 7402 : Fixing the date formatting so links to the invoice page work
This depends on bug 929
Signed-off-by: Katrin Fischer <Katrin.Fischer.83@web.de>
Uses the new TT plugin to display the date, while using iso format
to build a correct URL to the invoice page.
Signed-off-by: Paul Poulain <paul.poulain@biblibre.com>
Srdjan Jankovic [Tue, 20 Dec 2011 01:56:51 +0000 (14:56 +1300)]
bug_5473: Update items when receiving shipments
Signed-off-by: Nicole C. Engard <nengard@bywatersolutions.com>
Tested by recieving multiple items with the AcqCreateItem
preference set to 'placing and order' and 'receiving an item'
In both cases the pricing and vendor is brought over to the
item record so I'm signing off.
Signed-off-by: Paul Poulain <paul.poulain@biblibre.com>
Julian Maurice [Wed, 10 Aug 2011 09:41:06 +0000 (11:41 +0200)]
Bug 6694: Problem with casAuthentication syspref
A missing test in checkauth caused anonymous session to be destroyed and
re-created at every call when this syspref was set.
Almost the same issue is also fixed in check_api_auth, which caused
C4::Service->init to fail.
Signed-off-by: Alex Arnaud <alex.arnaud@biblibre.com> Signed-off-by: Paul Poulain <paul.poulain@biblibre.com>
Paul Poulain [Fri, 22 Jul 2011 08:24:26 +0000 (10:24 +0200)]
BZ6115: Acquisition reports : date filter & sorting don't work
* the filter on dates don't work
* when displaying by day or month, it was 100% alphabetic, april was before
january for example. Adding the month number before the month name to get
proper sorting
* removed many commented warn & lines
Signed-off-by: Chris Cormack <chrisc@catalyst.net.nz>
Katrin Fischer [Fri, 30 Dec 2011 09:24:31 +0000 (10:24 +0100)]
Bug 5347: Follow up - Fix warnings, check/uncheck all and makes error message translatable
This patch fixes some minor problems found in late order management:
1) Silences 2 warns in Letters.p
After patch is applied no more warns should show up in the logs.
2) Fixes check/uncheck al
When limiting on one vendor the checkbox in the last header column
was doing nothing. I changed the checkbox to 2 links 'check all' and
'uncheck all' as it's done in other templates.
3) Email has been sent
The message was hardcoded into the lateorders.pl file and not
translatable.
I moved it to the template and changed the wording slightly.
Note: The error message 'The bookseller has no email' comes from
Letters.pm. I didn't change that, because I was not sure where it is
used. The error message as is can not be translated and should be
moved into the templates too.
Signed-off-by: Jonathan Druart <jonathan.druart@biblibre.com> Signed-off-by: Paul Poulain <paul.poulain@biblibre.com>
Jonathan Druart [Fri, 2 Dec 2011 13:03:50 +0000 (14:03 +0100)]
Bug 5347: Adds columns claims_count and claimed_date in aqorders
This patch adds 2 columns in the aqorders table :
- claims_count : number of claims for an orders
- claimed_date : date of the lastest claim
In the lateorders.pl table, you can not select orders from different
supplier because there is just one letter sent after clicking the "Claim
order" button. So, it's logic that you want to select only orders from
this supplier.
Modification in C4/Letters.pm:
refactoring code for claimacquisition and claimissues letter type.
Now, fields for theses letters check the table name. It's not possible
to chooce aqorders.title, this field doesn't exist !
Furthermore, you can add a <order> tag around your item fields, like
this :
-- Begin example
<<LibrarianFirstname>>
<<LibrarianSurname>>
<<aqbooksellers.contact>>
<<aqbooksellers.address1>>
<<aqbooksellers.phone>>
<<aqbasket.basketno>>
<<aqbooksellers.phone>>
<order>Library : <<items.homebranch>>
In your possesssion : <<biblio.author>>. <<biblio.title>>.
<<biblioitems.publishercode>>, <<biblioitems.publicationyear>>.
Callnumber : <<items.itemcallnumber>>. doc type : <<items.itype>>
Barcode : <<items.barcode>>
Date for the return : <<items.onloan>>.</order>
<<LibrarianSurname>>
-- End example
Signed-off-by: Katrin Fischer <Katrin.Fischer.83@web.de>
The Delta_Days sub is called only when a patron that is already debarred must be debarred for a longer period.
This (rare) case probably hasn't be tested during QA, because the sub is not loaded.
Loading it fixes the problem
Signed-off-by: Paul Poulain <paul.poulain@biblibre.com>
Before this patch : 9619 borrowers added in 31 Minutes, After : 68 seconds.
This adds Hashref to table structure in C4::SQLHelper to speed up bulk edits.
Signed-off-by: Stéphane Delaune <stephane.delaune@biblibre.com> Signed-off-by: Chris Cormack <chrisc@catalyst.net.nz>