]> git.koha-community.org Git - koha.git/log
koha.git
10 years agoBug 11439: UT: Improve XISBN.t
Jonathan Druart [Tue, 24 Dec 2013 09:11:32 +0000 (10:11 +0100)]
Bug 11439: UT: Improve XISBN.t

The tests should be executed into a transaction and the SimpleSearch
routine correctly mocked.

Test plan:
Verify that prove t/db_dependent/XISBN.t returns green.

Signed-off-by: Chris Cormack <chris@bigballofwax.co.nz>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
10 years agoBug 11439: UT: fix XISBN.t test failure
Jonathan Druart [Tue, 24 Dec 2013 09:09:10 +0000 (10:09 +0100)]
Bug 11439: UT: fix XISBN.t test failure

A unit test fails in t/db_dependent/XISBN.t, the get_xisbn routine, if
ThingISBN is enabled, returns the 3rd biblionumber, not the second one.

Signed-off-by: Chris Cormack <chris@bigballofwax.co.nz>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
10 years agoBug 11338: (follow-up) take IndependentBranches into account for DelItemCheck() test
Galen Charlton [Fri, 27 Dec 2013 00:12:41 +0000 (00:12 +0000)]
Bug 11338: (follow-up) take IndependentBranches into account for DelItemCheck() test

Fixes a test failure if the test database happens to have
IndependentBranches set to true.

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
10 years agoBug 11412: fix potential bulkmarcimport crash when searching for duplicates in author...
Matthias Meusburger [Wed, 18 Dec 2013 10:20:05 +0000 (11:20 +0100)]
Bug 11412: fix potential bulkmarcimport crash when searching for duplicates in authorities

bulkmarcimport.pl can crash when searching for duplicates if the 005
field from the incoming or local record is not defined. This patch
fixes it.

Signed-off-by: Chris Cormack <chrisc@catalyst.net.nz>
Test plan
1/ Create a record with no 005 field
2/ Try to import it checking for duplicates, notice it crashes
3/ Try with a record with a 005 field, but the one in Koha missing
one, still crashes
4/ Apply patch
5/ No more crash

Signed-off-by: Katrin Fischer <Katrin.Fischer.83@web.de>
Passes all tests and QA script.
Patch fixes the problem described for importing authorities
with the bulkmarcimport.pl when trying to match with existing
records.

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
10 years agoBug 11282: fix overwriting of existing restrictions when adding new one
Kyle M Hall [Fri, 22 Nov 2013 13:31:31 +0000 (08:31 -0500)]
Bug 11282: fix overwriting of existing restrictions when adding new one

This patch fixes a bug where using the patron editor to add a new
restriction overwrote the first existing one.

Test Plan:
1) Edit a patron, add a restriction
2) Edit the patron again, add a second restriction
3) Note the first restriction has disappeared!
4) Apply this patch
5) Edit the patron again, add another restriction
6) Note the previous restriction is not longer removed

Signed-off-by: Jonathan Druart <jonathan.druart@biblibre.com>
Signed-off-by: Katrin Fischer <Katrin.Fischer.83@web.de>
Tested:
- Adding and removing multiple restrictions from
  - the details tab
  - the checkouts tab
  - the edit patron form
All works as expected.
Patch passes all tests in t, xt, and QA script.

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
10 years agoBug 10453: fix unintended password reset when updating child to adult
Jonathan Druart [Tue, 24 Dec 2013 13:35:36 +0000 (14:35 +0100)]
Bug 10453: fix unintended password reset when updating child to adult

ModMember supposes the password given in parameter is the
password string, so if it receives the encrypted password,
it will encrypt it again! By simply deleting the password key
from the hash, ModMember leaves the password unchanged.

Test plan:
1/ Create or choose a child patron
2/ Update it to an adult category using the
   "Update child to adult patron" link
3/ Try to log in at the OPAC with this patron: It is not
   possible, the password has changed
4/ Apply the patch and try again previous steps

Signed-off-by: Mark Tompsett <mtompset@hotmail.com>
Signed-off-by: Katrin Fischer <Katrin.Fischer.83@web.de>
Confirmed the problem and tested the patch fixes it.
Passes all tests and QA script.

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
10 years agoBug 11252: remove deprecated -munge-config switch from rebuild_zebra.pl
Galen Charlton [Thu, 14 Nov 2013 18:48:07 +0000 (18:48 +0000)]
Bug 11252: remove deprecated -munge-config switch from rebuild_zebra.pl

The -munge-config switch has been deprecated for years, and
trying to use it would either not work at all or, if it did "work",
almost certainly damage one's Zebra configuration for Koha.

This patch removes this switch.

To test:

[1] Run rebuild_zebra.pl and verify that no mention is made
    of -munge-config.
[2] Run rebuild_zebra.pl to index records in one's test database
    and verify that there are no regressions.

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Signed-off-by: Chris Cormack <chrisc@catalyst.net.nz>
Removing a really dangerous option

Signed-off-by: Katrin Fischer <Katrin.Fischer.83@web.de>
Passes all tests and QA script.
Ran rebuild_zebra.pl with various options and confirmed
that data was reindexed successfully.
No regressions found.

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
10 years agoBug 11338: prevent deletion of items that are captured for holds
Fridolyn SOMERS [Wed, 4 Dec 2013 16:05:32 +0000 (17:05 +0100)]
Bug 11338: prevent deletion of items that are captured for holds

In C4::Items::DelItemCheck, there are two SQL queries: one to check
if item is on loan, the other if item is reserved.

Those two queries use "SELECT * FROM table", fetch the data with
"$var = $sth->fetchrow", and use "$var" as a boolean condition.

This is not correct, SQL query should be "SELECT COUNT(*) FROM table".

As a consequence, it was possible to delete an item without warning to
the operator even if it was waiting on the hold shelf or in transit to
fill a hold.

This patch corrects the SQL queries and sets my ($var) to show that
fetchrow returns an array.

Test plan :
- Set an item A onloan
- Set an item B reserved and the reserve waiting
- Go to items cataloguing : cgi-bin/koha/cataloguing/additem.pl?biblionumber=XXX
- Try to delete item A
=> You get an alert and item is not deleted
- Try to delete item B
=> You get an alert and item is not deleted

Signed-off-by: Chris Cormack <chrisc@catalyst.net.nz>
Works, and has the added bonus of being a tiny bit faster.

Signed-off-by: Katrin Fischer <Katrin.Fischer.83@web.de>
Passes t, xt and QA script tests.
Also tried deleting via batch delete - correct warnings are displayed.

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
10 years agoBug 11338: add unit tests for DelItemCheck
Galen Charlton [Wed, 25 Dec 2013 17:07:53 +0000 (17:07 +0000)]
Bug 11338: add unit tests for DelItemCheck

This patch adds unit tests for two parts of DelItemCheck: checking
if the item is on loan, and checking if it is waiting on the hold
shelf.

To test:

[1] Verify that prove -v t/db_dependent/Circulation/IsItemIssued.t
    is successful.
[2] Verify that prove -v t/db_dependent/Reserves.t is *not*
    successful -- as it turns out, there was a latent bug where items
    waiting on the hold shelf or in transit to fill a hold could still
    be deleted without any warning.

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
10 years agoBug 11004: Make xmlControlfield.js use the marcflavour syspref to look for XML files
Magnus Enger [Mon, 7 Oct 2013 13:14:08 +0000 (15:14 +0200)]
Bug 11004: Make xmlControlfield.js use the marcflavour syspref to look for XML files

Currently, xmlControlfield.js is hard coded to look for XML files for
MARC21:

  url: this.themelang + "/data/marc21_field_" + this.tagfield + ".xml",

This patch makes this code use the value from the marcflavour syspref,
as a preparation for making the NORMARC value builders use the XML
technique employed by the MARC21 value builders for 006 and 008.

To test:
- Make sure you have a MARC21 installation
- Set marcflavour = NORMARC
- Go to Cataloguing and start a new record with the default framework
- Open the value builders for 006 and 008 and observe that they still work, showing
  the coded values for MARC21
- Apply this patch
- Check the value builders for 006 and 008 and observe that you get a truncated view
  with an empty "Select a type of material" dropdown
- Use e.g. the Net console in Firebug to observe requests to
  http://localhost/intranet-tmpl/prog/en/data/normarc_field_008.xml
  that result in a 404 status
- Set marcflavour = MARC21
- Observe that the value builders for 006 and 008 are now fully working
- 006 and 008 should be the only value builders affected by this change, since
  they are the only ones using xmlControlfield.js, but please also verify that
  other value builders are still working as expected

Signed-off-by: Chris Cormack <chrisc@catalyst.net.nz>
Signed-off-by: Jonathan Druart <jonathan.druart@biblibre.com>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
10 years agoBug 10834 - Add Sort 1 and Sort 2 to list of searchable patron fields
Kyle M Hall [Fri, 6 Sep 2013 16:54:40 +0000 (12:54 -0400)]
Bug 10834 - Add Sort 1 and Sort 2 to list of searchable patron fields

Some libraries would like to be able to search on the sort1 and sort2
fields of patron records.

Test Plan:
1) Apply this patch
2) Add various values for sort1 and sort2 some patrons
3) Browse to members-home.pl
4) Run searches on sort1 and sort2

Signed-off-by: Chris Cormack <chrisc@catalyst.net.nz>
Signed-off-by: Jonathan Druart <jonathan.druart@biblibre.com>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
10 years agoBug 9940: (follow-up) add language-original to QP search field list
Galen Charlton [Wed, 25 Dec 2013 15:49:48 +0000 (15:49 +0000)]
Bug 9940: (follow-up) add language-original to QP search field list

This patch adds language-original to the list of search fields
recognized by QueryParser.

To test:

[1] After doing the tests in the main patch, copy the configuration
    file etc/searchengine/queryparser.yaml into place, turn on the
    UseQueryParser system preference, and verify that searching on
    language-original still works.

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
10 years agoBug 9940: (follow-up) FIX comment: language-original is 101$c, not $h
Jonathan Druart [Tue, 24 Dec 2013 10:27:52 +0000 (11:27 +0100)]
Bug 9940: (follow-up) FIX comment: language-original is 101$c, not $h

Signed-off-by: Jonathan Druart <jonathan.druart@biblibre.com>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
10 years agoBug 9940: Add a new index for the original language of a document
Mathieu Saby [Sun, 28 Apr 2013 12:44:21 +0000 (14:44 +0200)]
Bug 9940: Add a new index for the original language of a document

It could be useful to index the original language of a document (i.e.
"fre" for the English translation of a French novel).

This patch renames the Bib-1 use attribute 1095 from
Code-language-original to language-original and uses it to index:

- MARC21 041$h subfield
- UNIMARC 101$c subfield

It adds "language-original" in the list of index in Search.pm.

Test plan :
A. in a MARC21 GRS1 environment
1. Copy Zebra config files (zebradb/biblios/etc/bib1.att,
   zebradb/ccl.properties, marc_defs/marc21/biblios/record.abs) from
   your source etc/ directory to your main koha etc/ directory
2. Reindex zebra
3. Make some searches, like "language-original:fre"
B. in a MARC21 DOM environment
4. Copy Zebra config files (zebradb/biblios/etc/bib1.att, zebradb/ccl.properties,
   marc_defs/marc21/biblios/biblio-zebra-indexdefs.xsl) from your source etc/
   directory to your main koha etc/ directory
5. Reindex zebra
6. Make some searches, like "language-original:fre"
C. in a UNIMARC GRS1 environment
7. Copy Zebra config files (zebradb/biblios/etc/bib1.att,
   zebradb/ccl.properties, marc_defs/unimarc/biblios/record.abs) from
   your source etc/ directory to your main koha etc/ directory
8. Reindex zebra
9. Make some searches, like "language-original:fre"
A. in a UNIMARC DOM environment
10. Copy Zebra config files (zebradb/biblios/etc/bib1.att,
    zebradb/ccl.properties, marc_defs/unimarc/biblios/biblio-zebra-indexdefs.xsl)
    from your source etc/ directory to your main koha etc/ directory
11. Reindex zebra
12. Make some searches, like "language-original:fre"

Signed-off-by: Chris Cormack <chrisc@catalyst.net.nz>
Signed-off-by: Jonathan Druart <jonathan.druart@biblibre.com>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
10 years agoBug 6331: (follow-up) update DBIC schema classes
Galen Charlton [Mon, 23 Dec 2013 16:39:58 +0000 (16:39 +0000)]
Bug 6331: (follow-up) update DBIC schema classes

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
10 years agoBug 6331: DBRev 3.15.00.010
Galen Charlton [Mon, 23 Dec 2013 16:38:20 +0000 (16:38 +0000)]
Bug 6331: DBRev 3.15.00.010

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
10 years agoBug 6331: (follow-up) update timestamp when deleting items
Fridolyn SOMERS [Thu, 5 Dec 2013 14:34:44 +0000 (15:34 +0100)]
Bug 6331: (follow-up) update timestamp when deleting items

When item is transfered from items table to deleted items, all fields
must be copies but "timestamp".

This value must be updated to know when the item was deleted.

Test plan:
- Look a an item timestamp :
mysql> select timestamp from items where itemnumber = 2690;
+---------------------+
| timestamp           |
+---------------------+
| 2011-09-09 15:30:21 |
+---------------------+
1 row in set (0.00 sec)
- Delete this item in cataloguing module
- Check it is not in items table anymore :
mysql> select timestamp from items where itemnumber = 2690;
Empty set (0.00 sec)
- Look in deleteditems table :
mysql> select timestamp from deleteditems where itemnumber = 2690;
+---------------------+
| timestamp           |
+---------------------+
| 2013-12-05 15:33:20 |
+---------------------+
1 row in set (0.00 sec)
=> timestamp as been set to actual date/time

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Patch set passes koha-qa.pl, works as advertised!

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
10 years agoBug 6331: (follow-up) do not populate deleteditems.marc
Colin Campbell [Tue, 3 Dec 2013 11:39:43 +0000 (11:39 +0000)]
Bug 6331: (follow-up) do not populate deleteditems.marc

This is supplementary to the main patch for
bug 6331. Having removed the attribute marc from
items DelItem, we should not try to populate it.

Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
10 years agoBug 6331: remove obsolete column deleteditems.marc
Fridolyn SOMERS [Wed, 20 Nov 2013 13:42:04 +0000 (14:42 +0100)]
Bug 6331: remove obsolete column deleteditems.marc

There is a difference between "items" and "deleteditems" tables
in "kohastructure.sql"
"deleteditems" has a field "marc" not existing in "items".

This patch removes this obsolete column.

Test :
- after deleting an item, check that the deleted item is properly
  stored in deleteditems table
- check that the column marc has been deleted from deleteditems table

Signed-off-by: Mathieu Saby <mathieu.saby@univ-rennes2.fr>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
10 years agoBug 11391: DBRev 3.15.00.009
Galen Charlton [Mon, 23 Dec 2013 16:21:44 +0000 (16:21 +0000)]
Bug 11391: DBRev 3.15.00.009

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
10 years agoBug 11391: (follow-up) update DBIC schema classes
Galen Charlton [Fri, 13 Dec 2013 01:11:06 +0000 (01:11 +0000)]
Bug 11391: (follow-up) update DBIC schema classes

This patch updates the DBIC schema class for Suggestion
to reflect the dropped default value for the suggesteddate
column.

To test:

[1] Create an empty Pg database and use the deployment script
    being worked in in bug 11390.  The deployment shoudl
    succeed without reporting any errors regarding the
    suggestions table.

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Signed-off-by: Chris Cormack <chrisc@catalyst.net.nz>
Signed-off-by: Jonathan Druart <jonathan.druart@biblibre.com>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
10 years agoBug 11391: drop default value on suggestions.suggesteddate column
Galen Charlton [Fri, 13 Dec 2013 01:06:12 +0000 (01:06 +0000)]
Bug 11391: drop default value on suggestions.suggesteddate column

The 'default 0' clause got translated as an invalid constant
default of '0000-00-00' when DBIx::Schema is used to deploy
the suggestions table into a Pg database.  This patch drops
the default.

To test:

[1] Apply the patch and run the SQL specified in the database
    updated.
[2] Verify that the suggestions table no longer has an
    explicit default value for the suggesteddate column.
[3] Verify that prove -v t/db_dependent/Suggestions.t
    passes.
[4] Verify that installer/data/mysql/kohastructure.sql runs
    cleanly in an empty database.
[5] Verify that there are no visible regressions of the
    purchase suggestions functionality.

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Signed-off-by: Chris Cormack <chrisc@catalyst.net.nz>
Having a default of 0 on a date seems like a mad thing to do anyway,
so good to get rid of it

Signed-off-by: Jonathan Druart <jonathan.druart@biblibre.com>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
10 years agoBug 11384: DBRev 3.15.00.008
Galen Charlton [Mon, 23 Dec 2013 16:17:21 +0000 (16:17 +0000)]
Bug 11384: DBRev 3.15.00.008

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
10 years agoBug 11384: (follow-up) update DBIC schema classes
Galen Charlton [Wed, 11 Dec 2013 16:55:31 +0000 (16:55 +0000)]
Bug 11384: (follow-up) update DBIC schema classes

This patch updates the DBIC schema class for CollectionTracking
to reflect the new name of its primary key column.

To test:

The CollectionTracking class is not currently used, but
if you *really* want to test this, take a look at the following
branch: http://git.librarypolice.com/?p=koha-galen.git;a=shortlog;h=refs/heads/pg

Then, set up a PostgreSQL database, update koha-conf.xml to point to it,
then run pg/deploy and verify that the collections_tracking table is created
in the Pg database.

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Signed-off-by: Chris Cormack <chrisc@catalyst.net.nz>
Signed-off-by: Jonathan Druart <jonathan.druart@biblibre.com>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
10 years agoBug 11384: rename the collections_tracking.ctId column
Galen Charlton [Wed, 11 Dec 2013 16:49:01 +0000 (16:49 +0000)]
Bug 11384: rename the collections_tracking.ctId column

'ctId' as a column name conflicts with one of the system
columns that PostgreSQL uses for each table, and consequently
needs to be renamed to enable deploying the schema to a Pg
database.  This patch makes this change.

To test:

[1] Apply the patch and run the SQL specified in the database
    updated.
[2] Verify that the collections_tracking table no longer has
    a ctId column, but now has collections_tracking_id.
[3] Verify that prove -v t/db_dependent/RotatingCollections.t
    passes.
[4] Verify that installer/data/mysql/kohastructure.sql runs
    cleanly in an empty database.

This patch does not affect user-visible behavior given the fact
that the rotating collections feature is currently disabled.

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Signed-off-by: Chris Cormack <chrisc@catalyst.net.nz>
Signed-off-by: Jonathan Druart <jonathan.druart@biblibre.com>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
10 years agoBug 11155: remove old PostgreSQL schema and MARC framework scripts
Galen Charlton [Fri, 13 Dec 2013 01:29:09 +0000 (01:29 +0000)]
Bug 11155: remove old PostgreSQL schema and MARC framework scripts

This patch removes the legacy Pg schema and MARC framework scripts
as they're out of date.  They will be replaced by use of DBIx::Class
to deploy the schema.  Loading the sample data and settings will be
accomplished either by making the current scripts in installer/data/mysql
DBMS-independent (or, at least, able to be processed by both MySQL and Pg),
converting them to flat text files and writing code to load them, or a
combination of the two approaches.

To test:

[1] Verify that installer/data/Pg is removed.  There is some code
    in C4::Installer that refers to that directory, but it cannot
    be reached through normal means.

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Signed-off-by: Chris Cormack <chrisc@catalyst.net.nz>
Signed-off-by: Jonathan Druart <jonathan.druart@biblibre.com>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
10 years agoBug 11414: warn user about dangerous MARC modification rules
Jonathan Druart [Wed, 18 Dec 2013 11:18:52 +0000 (12:18 +0100)]
Bug 11414: warn user about dangerous MARC modification rules

Test plan:
On the MARC modification tool:

Add/edit a new action on a field and define a condition on the same
field.

Verify that you get a warning message in red.

See bug 11413 for more information

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Katrin Fischer <Katrin.Fischer.83@web.de>
Passes all tests and QA script.
Tested adding and editing a template with the same field in the
action and the condition.

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
10 years agoBug 9948: fix creation/updating of items when partially receiving an order
Jacek Ablewicz [Sat, 14 Dec 2013 11:07:11 +0000 (12:07 +0100)]
Bug 9948: fix creation/updating of items when partially receiving an order

Problem summary: when doing partial receives for the given order -
1) if AcqCreateItem is set to 'ordering', various item data (price,
dateaccessioned, replacementprice, replacementpricedate) are getting
erroneously updated on the wrong (yet to be received == not the ones
being currently received) item records
2) if AcqCreateItem is set to 'receiving', newly received
item records are being created without the aforementioned fields
set to the proper values

This (trivial) patch should deal with both cases, hopefully without
breaking enything else.

To test:
- apply the patch,
- create some orders with 2+ quantity
- test partial & non-partial receives for those orders
- ensure the received item records are getting modified
(for AcqCreateItem set to 'ordering') and/or created (for AcqCreateItem
set to 'receiving') correctly for both partial and non-partial receives
- receiving orders with quantity = 1 / receiving orders in non-partial
mode should be still working fine for 1) & 2) scenarios (i.e.,
AcqCreateItem set to 'ordering' / AcqCreateItem set to 'receiving')

Signed-off-by: Nicole C. Engard <nengard@bywatersolutions.com>
Works as I'd expect now! Awesome patch.

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Katrin Fischer <Katrin.Fischer.83@web.de>
Passes all tests and QA script.
Also: t/db_dependent/Acquisition/
      t/db_dependent/Acquisition.t

Created 2 orders with 3 items each for both settings
of AcqCreateItem (on receive, on order) with the patches
applied. No regressions found.

Closed baskets and received shipments for each, with
AcqCreateItem set according to how the order was created.

First recreated the problem without the patches, reloaded
database and confirmed that the patch fixes it.

No problems found.

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
10 years agoBug 10735: prevent koha-dump from aborting if backupdir undefined
Robin Sheat [Tue, 19 Nov 2013 02:26:02 +0000 (15:26 +1300)]
Bug 10735: prevent koha-dump from aborting if backupdir undefined

Older versions of Koha didn't have <backupdir>...</backupdir> defined in
koha-conf.xml. The koha-dump script is aware of this, and checks to see
if it's there. However, if it's not, xmlstarlet returns a non-0 error
code which causes the script to abort due to running under set -e.

Test plan:
 * Remove backupdir from koha-conf.xml
 * Run koha-dump, notice that it doesn't do backups
 * Apply patch
 * Run koha-dump again, notice that it does do backups

Signed-off-by: Tomas Cohen Arazi <tomascohen@gmail.com>
The fallback method works as described. It might be made more robust
like checking for dir existence (thinking of older instances upgrades).
But it certainly belongs to another bug report.

Signed-off-by: Jonathan Druart <jonathan.druart@biblibre.com>
As Tomas said, it would be better to alert the user if the backupdir tag
does not exist (or contains a nonexistent directory) in the config file.

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
10 years agoBug 10905: fix links to author tracings when UseAuthoritiesForTracings is on
Tomas Cohen Arazi [Tue, 17 Sep 2013 18:14:20 +0000 (15:14 -0300)]
Bug 10905: fix links to author tracings when UseAuthoritiesForTracings is on

Quotation marks in MARC21slim2OPACDetail.xsl break author tracings in
OPAC.  This patch fixes that for the prog theme; the Bootstrap theme
is not affected.

To reproduce:
- Enable UseAuthoritiesForTracings
- Search in the OPAC and go to the detail page of a record that has
  links to authorities.
- Click on the magnifier icon
- You get a 404 error page.

To test the fix:
- Apply the patch
- Search in the OPAC and go to the detail page of a record that has
  links to authorities.
- Click on the magnifier icon
- You are sent to the corresponding authority record.

Sponsored-by: Universidad Nacional de Cordoba
Signed-off-by: David Noe <drnoe@bywatersolutions.com>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Passes koha-qa.pl, trivial change

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
10 years agoBug 10797: Move styling of simple search from element to CSS file
Katrin Fischer [Wed, 4 Dec 2013 14:41:39 +0000 (15:41 +0100)]
Bug 10797: Move styling of simple search from element to CSS file

This patch moves the styling of the #transl1 element from an
inline style attribute to the CSS file to make it easier to
tweak.

To test:
- Switch to prog theme, problem doesn't exist in Bootstrap theme
- Take a look at the simple search input field
- Apply patch
- Refresh page
- Make sure field has the same length and size

You can also use Firebug to make sure the same styles
are applied to the element before and after the change.

Signed-off-by: Chris Cormack <chrisc@catalyst.net.nz>
Signed-off-by: Jonathan Druart <jonathan.druart@biblibre.com>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
10 years agoBug 11410: ensure cataloging search finds results for searches with ampersands
Kyle M Hall [Tue, 17 Dec 2013 21:04:10 +0000 (16:04 -0500)]
Bug 11410: ensure cataloging search finds results for searches with ampersands

When QueryParser is off, the cataloging search is passing the incorrect
variable to SimpleSearch.  I'm sure this is causing other issues, but
the one I have identified is that any searches with an "&" in them
return no results.  This patch corrects the bug.

Test Plan:
1) Catalog a new record titled "Cats & Dogs"
2) Rebuild your zebra index so this record is indexed
3) Browse to cataloguing/addbooks.pl
4) Search for "Cats & Dogs"
5) Notice you get no results
6) Apply this patch
7) Repeat the search
8) Notice your result now shows up!

Signed-off-by: Heather Braum <hbraum@nekls.org>
Signed-off-by: Suzanne Fayle <sfayle@roseman.edu>
Signed-off-by: Katrin Fischer <Katrin.Fischer.83@web.de>
This works as described, passes all tests and QA script.
Note: Because $query = $builtquery when the QueryParser is used,
this problem is only visible when UseQueryParser is set to "Don't try".

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
10 years agoBug 11383: Add help file for MARC modification templates
Nicole C. Engard [Sat, 14 Dec 2013 18:34:00 +0000 (12:34 -0600)]
Bug 11383: Add help file for MARC modification templates

This patch adds the missing help files to the MARC modification
templates tool. To test:

* Visit Tools > Marc modification templates
* Click 'Help' in the top right
* Confirm that help is there and right

Signed-off-by: Jonathan Druart <jonathan.druart@biblibre.com>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
10 years agoBug 11166: make library filter in funds administration page more precise
Fridolyn SOMERS [Wed, 30 Oct 2013 09:28:49 +0000 (10:28 +0100)]
Bug 11166: make library filter in funds administration page more precise

In funds administration, admin/aqbudgets.pl, there is a combobox for
filtering by library code.

The bug is that the filter uses a pattern match  instead of equals :
  next unless $budget->{budget_branchcode} =~ m/$filter_budgetbranch/;

In this case, if there is a library with code '1' and one with code '12',
filtering by library '1' will also show funds of library '12'.

Test plan :
- Create a library with code '1' and one with code '12'
- Create funds in both libraries
- Go to admin/aqbudgets.pl
- Filter by branch '12'
=> You see only funds of this library
- Filter by branch '1'
=> You see only funds of this library

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Passes koha-qa.pl, works as advertised

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
10 years agoBug 10626: (follow-up) replace use of KohaAuthorisedValues in the Bootstrap theme
Galen Charlton [Fri, 20 Dec 2013 04:22:20 +0000 (04:22 +0000)]
Bug 10626: (follow-up) replace use of KohaAuthorisedValues in the Bootstrap theme

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
10 years agoBug 10626: (follow-up) remove final invocation of KohaAuthorisedValues
Katrin Fischer [Sat, 7 Sep 2013 17:43:57 +0000 (19:43 +0200)]
Bug 10626: (follow-up) remove final invocation of KohaAuthorisedValues

Removes USE KohaAuthorisedValues plugin from
item-status-schema-org.inc as it does not seem to be used
in the file.

Couldn't detect regressions removing it on OPAC detail page.

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
10 years agoBug 10626: (follow-up) replace an instance of KohaAuthorisedValues
Kyle M Hall [Tue, 27 Aug 2013 17:12:11 +0000 (13:12 -0400)]
Bug 10626: (follow-up) replace an instance of KohaAuthorisedValues

Signed-off-by: Katrin Fischer <Katrin.Fischer.83@web.de>
Trying to write my own test plan here:

1) AllowNotForLoanOverride = Allow
   Mark single item not for loan and try to check it out.
   Check item not for loan status shows up correctly in message:
   Item is normally not for loan (Staff Collection). Check out anyway?

2) Toggle AllowNotForLoanOverride = Not Allow
   Try to check out your not for loan item again.
   Message has changed, but not for loan status should still show:
   Item not for loan (Staff Collection).

3) Check out item that is marked damaged.
   Check damaged status shows correctly in list of checkouts.

4) Mark item as lost and check it out.
   Check lost status shows up correctly in message:
   This item has been lost with a status of "Lange Ã¼berfällig (Verloren)".

5) Create your own custom SUGGEST_STATUS and check that it shows
   up correctly on the suggestion page.

6) Test item status show up correctly on OPAC detail page (lost, not
   for loan, damaged, etc). Requires follow-up patch to be applied.

7) Mark a suggestion with your custom status and make sure it shows
   up in the patron account in OPAC correctly.

Passes tests and QA script - needs a follow up for item-status-schema-org.inc.

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
10 years agoBug 10626: Remove doubled up TT plugins - Merge KohaAuthorisedValues and AuthorisedValues
Kyle M Hall [Thu, 19 Dec 2013 17:13:23 +0000 (12:13 -0500)]
Bug 10626: Remove doubled up TT plugins - Merge KohaAuthorisedValues and AuthorisedValues

This patch removes the KohaAuthorisedValues TT plugin; uses of it are
replaced by the AuthorisedValues plugin, which does the same thing.

Test Plan:
1) Apply this patch
2) View the pages that this patch has modified, make sure the branch
   name is still visible

Signed-off-by: Chris Cormack <chrisc@catalyst.net.nz>
Signed-off-by: Katrin Fischer <Katrin.Fischer.83@web.de>
Comments on second patch.

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
10 years agoBug 11179: (follow-up) add comment to item-status.inc
Galen Charlton [Thu, 19 Dec 2013 17:02:19 +0000 (17:02 +0000)]
Bug 11179: (follow-up) add comment to item-status.inc

This patch adds a comment to item-status.inc to describe
the parameters it can accept.

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
10 years agoBug 11179: (follow-up) apply fix to Boostrap theme
Owen Leonard [Thu, 14 Nov 2013 20:41:02 +0000 (15:41 -0500)]
Bug 11179: (follow-up) apply fix to Boostrap theme

This follow-up applies the same fix to the Bootstrap theme. This patch
also includes the changes to item-status.inc in the Bootstrap theme
which were made to the prog theme in Bug 10820: display item status as
lost if item is both lost and on loan.

Signed-off-by: Liz Rea <liz@catalyst.net.nz>
Bootstrap theme looking so nice. Also the patch works.

Signed-off-by: Jonathan Druart <jonathan.druart@biblibre.com>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
10 years agoBug 11179: make OPAC course details page display status of checked out items correctly
Kyle M Hall [Thu, 31 Oct 2013 18:27:30 +0000 (14:27 -0400)]
Bug 11179: make OPAC course details page display status of checked out items correctly

If an item is listed for a course and is checked out, the item will
still show as being available from the course details page which lists
all the items that are part of a course. This is due to the way the
course reserves system handles items and issues separately, while
item-status.inc assumes the due date has been embedded in items.datedue

Test Plan:
1) Create a course
2) Add an item to that course
3) Check the item out to a patron
4) View the course details from the opac
5) Note the status says "Available"
6) Apply this patch
7) Repeat step 4
8) Note the status no longer says "Available"

Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Jonathan Druart <jonathan.druart@biblibre.com>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
10 years agoBug 11228: Improve hint on patron notification when adding/editing subscriptions
Katrin Fischer [Thu, 5 Dec 2013 20:47:25 +0000 (21:47 +0100)]
Bug 11228: Improve hint on patron notification when adding/editing subscriptions

The hint was not quite correct, as it said patrons on the routing list
would be informed, but it's only the patrons that have subscribed to
email notifications in the OPAC who will receive the email when a
new serial issue is received.

To test:
- Add a new subscription, find the hint about patron notification on the form
- Apply patch
- Refresh page
- Verify the new hint text makes sense and is correct

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Signed-off-by: Jonathan Druart <jonathan.druart@biblibre.com>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
10 years agoBug 11417: make sure remove_unused_authorities.pl accepts --test
Gaetan Boisson [Wed, 18 Dec 2013 14:19:50 +0000 (15:19 +0100)]
Bug 11417: make sure remove_unused_authorities.pl accepts --test

This patches adds support for the --test option, as well as a
short message telling the user the script is running in test mode.

Test plan :
- Launch the script with -h to see the help
- Launch the script with --test and --aut with an authtypecode
  that is used in your instance
- Make sure it does the same thing as launching it with -t
- Launch the script for real and make sure it still works as
  expected, deleting unused authorities.

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Signed-off-by: Jonathan Druart <jonathan.druart@biblibre.com>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
10 years agoBug 11279: (follow-up) remove unnecessary check on number of quotes
Jonathan Druart [Thu, 19 Dec 2013 10:05:54 +0000 (11:05 +0100)]
Bug 11279: (follow-up) remove unnecessary check on number of quotes

It is not necessary to process the case where the number of quotes
is just one, as int(rand(1)) will always produce 0, which is a valid
offset.

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
10 years agoBug 11279: Improve how a new quote of the day is selected
Katrin Fischer [Wed, 11 Dec 2013 23:54:08 +0000 (00:54 +0100)]
Bug 11279: Improve how a new quote of the day is selected

If there is a gap in the id sequence for the quotes table, it
is possible that no new quote will be selected. This will happen
particularly when a lot of the older quotes with low ids have been
deleted.

This patch improves the selection of a new quote.

To test:
- Load sample quotes
- Delete the first half of the quotes.
  Note: With 34 quotes, delete the quotes with ids from 1-17
- Activate the QuoteOfTheDay system preference
- Check if a quote is displayed in OPAC
- Reload the page a few times, no quote should be displayed
  Note: make sure you don't have a quote with the current
  date in your quotes table before running those tests
- Run 'perl t/db_dependent/Koha.t'
  Note: requires sample quotes!
- Apply patch
- Reload the OPAC start page
- Verify a quote was now picked
- Run 'perl t/db/dependent/Koha.t' again - all tests should still pass

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Patch modified to use "LIMIT 1 OFFSET ?" rather than "LIMIT ?, 1"; the
latter construction does not work in PostgreSQL.

Signed-off-by: Jonathan Druart <jonathan.druart@biblibre.com>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
10 years agoBug 11279: regression test for picking random quote
Katrin Fischer [Thu, 12 Dec 2013 19:50:52 +0000 (20:50 +0100)]
Bug 11279: regression test for picking random quote

This patch adds new tests based on the db_dependent tests in
t/db_dependent/Koha.t for GetDailyQuote().

Tests run on an empty database and don't require Test::Deep.

Tests will fail before applying the patch for 11297, but will
pass after applying the patch.

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Signed-off-by: Jonathan Druart <jonathan.druart@biblibre.com>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
10 years agoBug 9673: (follow-up) update DBIx::Class schema classes
Galen Charlton [Thu, 19 Dec 2013 06:29:25 +0000 (06:29 +0000)]
Bug 9673: (follow-up) update DBIx::Class schema classes

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
10 years agoBug 9673: DBRev 3.15.00.007
Galen Charlton [Thu, 19 Dec 2013 06:26:46 +0000 (06:26 +0000)]
Bug 9673: DBRev 3.15.00.007

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
10 years agoBug 9673: QA followup
Jonathan Druart [Mon, 4 Nov 2013 11:23:23 +0000 (12:23 +0100)]
Bug 9673: QA followup

This followup fixes the wthdrawn typo exist in updatedatabase.pl and
does not display the lostitem date if the lostitem value is not set (!=
"").

Signed-off-by: Jonathan Druart <jonathan.druart@biblibre.com>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
10 years agoBug 9673 - Track when items are marked as lost or withdrawn
Kyle M Hall [Wed, 20 Feb 2013 14:34:38 +0000 (09:34 -0500)]
Bug 9673 - Track when items are marked as lost or withdrawn

Add date fields to track when an item was marked as lost or withdrawn.
Display those fields on catalogue/moredetail.pl

Test Plan:
1) Apply patch
2) Run updatedatabase.pl
3) Pick a record with items, browse to the 'items' tab ( moredetail.pl )
4) Mark an item as lost, verify the field "Lost on:" displays below
   the "Lost status" field with todays date.
5) Mark the item as not lost, verify the field no longer displays
6) Repeat steps 4 and 5 with the Withdrawn field.

Signed-off-by: Mathieu Saby <mathieu.saby@univ-rennes2.fr>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Jonathan Druart <jonathan.druart@biblibre.com>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
10 years agoMerge branch '3.16-help-split' of https://github.com/bgkriegel/koha-translate
Galen Charlton [Tue, 17 Dec 2013 20:03:03 +0000 (20:03 +0000)]
Merge branch '3.16-help-split' of https://github.com/bgkriegel/koha-translate

10 years agoTranslation update - split staff UI and help files
Bernardo Gonzalez Kriegel [Tue, 17 Dec 2013 19:22:49 +0000 (16:22 -0300)]
Translation update - split staff UI and help files

10 years agoBug 9807: (follow-up) quell warning if invoice price not set
Galen Charlton [Tue, 17 Dec 2013 17:34:21 +0000 (17:34 +0000)]
Bug 9807: (follow-up) quell warning if invoice price not set

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
10 years agoBug 9807: (follow-up) reindent basketgroup.tt
Mathieu Saby [Fri, 8 Nov 2013 15:15:33 +0000 (16:15 +0100)]
Bug 9807: (follow-up) reindent basketgroup.tt

Basketgroup.tt is very hard to read. This patch simply reindents it.
No visible changes expected

Regression test :
- check the list of opened and closed basketgroups for a vendor is
  displayed properly
- check an individual basketgroup (closed and opened) is displayed
  properly
- check you can edit a basketgroup and save changes
- check you can print and export a basketgroup
- check you can close and reopen a basketgroup

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
10 years agoBug 9807: (follow-up) fix variable name
Mathieu Saby [Thu, 7 Nov 2013 20:01:46 +0000 (21:01 +0100)]
Bug 9807: (follow-up) fix variable name

Fixing closedbg name in template

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
10 years agoBug 9807 : Make it possible to view a basket group without reopening it
Mathieu Saby [Thu, 7 Nov 2013 19:16:40 +0000 (20:16 +0100)]
Bug 9807 : Make it possible to view a basket group without reopening it

This patch make possible to view an individual closed basket group

without reopening it.
- It adds a new "View" button on closed basket group list
- It creates a view for closed basket groups, with 3 buttons (reopen,
  print, export)
- It adds a "delete" button on standard "edit" view (for open
  basket groups)

To test :
1/ regression test :
- create some empty basket groups
- create some basket groups by closing baskets
- in the list of basket groups closed and opened, check you can use
  the buttons that existed before the patch (close and print, delete,
  export, print, reopen)
- click on "Edit" to edit a opened basket group : check everything is
  like before :
-- change the billing and delivery places,
-- add a note,
-- put some new baskets  in the bg,
-- remove baskets from it
-- save it without checking "close" box => it should be saved but kept
   open
-- edit it again, and make other some changes (define a freetext
   delivery place for example)
-- save it with checking "close" => it should be saved but closed

2/ new feature test
- click on "view" button on top right column of some closed basket group
- check all the displayed informations are correct (places, free place,
  note, list of baskets)
- check you can not change anything
- click on "print" button => check a pdf is created
- click on "export" button => check a csv is created
- click on "reopen" button => you should stay on the same basket group, but
  it is now open and you can make some changes
- go back to the basket group list of the vendor. Check the reopened bg
   is in "open" tab
- click on "edit"
- click on new "delete" button => the bg should be deleted, and you are
  redirected to the bg list of the vendor.

Signed-off-by: cedric.vita@dracenie.com <cedric.vita@dracenie.com>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Passes koha-qa.pl, t and xt. Works as advertised.

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
10 years agoBug 7518: certain searches with quotation marks don't work
Fridolyn SOMERS [Thu, 7 Mar 2013 15:02:55 +0000 (16:02 +0100)]
Bug 7518: certain searches with quotation marks don't work

Under certain circumstance, a search term without quotation marks
returns the expected results while the same search with a
double quote embedded in it would fail.

Koha should ignore the quotation marks and return results anyway.

This appears when  QueryWeightFields syspref is activated (and
QueryAutoTruncate is off), as field weighting builds a complex CCL
query using double quotes around search words.  This patch simply
replaces double quotes in search words by a space.

Test plan :
- Set QueryAutoTruncate off (you may also need to set QueryFuzzy to off)
- Set QueryWeightFields off
- Perform a serch on two words where you have results, like : centre "ville
=> you get results
- Set QueryWeightFields on
- Perform same serch
=> you get the same results

Signed-off-by: Leila <koha.aixmarseille@gmail.com>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
10 years agoBug 7518: regression test double-quote in search operand
Galen Charlton [Tue, 17 Dec 2013 16:32:09 +0000 (16:32 +0000)]
Bug 7518: regression test double-quote in search operand

Under certain circumstances, namely where QueryParser is off,
QueryWeightFields is on, and QueryFuzzy and QueryAutoTruncate are
off, a search with a double-quote embedded in it can fail: for
example

    web application

would return results where

    web "application

does not.

This patch adds an automated regression test.

To test:

[1] Apply this patch and run prove -v t/db_dependent/Search.t;
    two tests should fail.
[2] After applying the main patch that fixes the bug, the
    prove -v  t/db_dependent/Search.t should succeed.

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
10 years agoBug 11249: DBRev 3.15.00.006
Galen Charlton [Tue, 17 Dec 2013 15:32:17 +0000 (15:32 +0000)]
Bug 11249: DBRev 3.15.00.006

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
10 years agoBug 11249: Add Db indexes on borrowers names
Fridolyn SOMERS [Thu, 14 Nov 2013 13:29:51 +0000 (14:29 +0100)]
Bug 11249: Add Db indexes on borrowers names

The borrowers search is by default on columns surname, firstname,
othernames and cardnumber.

(See C4::Members::_express_member_find).

Adding DB indexes will really increase the query speed.

This patch adds DB indexes on surname, firstname, othernames (cardnumber
has already an index).

Those indexes must be defined with a size because columns are mediumtext.

Test plan :
Test with mysql client :
mysql> explain select * from borrowers where surname like 'A%';
+----+-------------+-----------+-------+---------------+-------------+---------+------+------+-------------+
| id | select_type | table     | type  | possible_keys | key         | key_len | ref  | rows | Extra       |
+----+-------------+-----------+-------+---------------+-------------+---------+------+------+-------------+
|  1 | SIMPLE      | borrowers | range | surname_idx   | surname_idx | 767     | NULL |  395 | Using where |
+----+-------------+-----------+-------+---------------+-------------+---------+------+------+-------------+
=> key show the index is used

Signed-off-by: Mathieu Saby <mathieu.saby@univ-rennes2.fr>
Signed-off-by: Katrin Fischer <Katrin.Fischer.83@web.de>
Works as described, changes from updatedatabase and in kohastructure match.
I think deletedborrowers can be left out, as it's not queried when doing
patron searches. Patron deletes still work as expected.

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
10 years agoBug 7934: generate separate PO files for help pages
Bernardo Gonzalez Kriegel [Wed, 4 Dec 2013 23:44:36 +0000 (20:44 -0300)]
Bug 7934: generate separate PO files for help pages

This patch modifies LangInstaller.pm to enable separation
of translation for Staff UI and Staff Help files.

It's a move that make sense, Help strings accounts for
44% of total word count for Staff, and as stated on
Comment #1, it could enable a different workflow on
translation work.

It's more a hack than an elegant solution, but it works.
Feel free to suggest another approach.

To test:

We need to test complete functionality, i.e. create and update
translation files and install translation, and verify that no
string is missing.

1) Before applying the patch, we need some data from staff file.
Pick your language, say de_DE, and

cd misc/translator/
perl translate update de-DE
msginit -i po/de-DE-i-staff-t-prog-v-3006000.po -o de-old.po --no-translator --no-wrap --locale=de_DE
egrep ^msgid de-old.po | sort | tee s-old | wc -l > number-old

We have the file s-old with all strings, and the number of strings on number-old

2) Apply the patch

3) New help file is called de-DE-staff-help.po, so create one
cp'ing old staff on new help

cp po/de-DE-i-staff-t-prog-v-3006000.po po/de-DE-staff-help.po

4) Make a new update, and analize

perl translate update de-DE
msginit -i po/de-DE-i-staff-t-prog-v-3006000.po -o de-new.po --no-translator --no-wrap --locale=de_DE
msginit -i po/de-DE-staff-help.po -o de-help.po --no-translator --no-wrap --locale=de_DE
egrep ^msgid de-new.po | sort | tee s-new | wc -l > number-new
egrep ^msgid de-help.po | sort | tee s-help | wc -l > number-help
cat s-new s-help | sort | uniq | tee s-all | wc -l > number-all
cat s-new s-help | sort | uniq -d | tee s-dup | wc -l > number-dup

Ideally what we need to found is:

diff s-old s-all = zero lines (old strings vs new strings)

In my test I got one line, but it's a false positive (the string "• " is present on new staff)

On numbers,

number-old - number-new - nummber-help + number-dup = 0
or
number-old - number-all = 0

(in my test again I have 1 as result, same string. Also there are 137
repeated lines between new staff and help)

All this tells me that all string to translate are preserved

5) Install translation

perl translate install de-DE

Enable language on staff, and check that help files are translated

6) Finally, create translation files

rm po/de-DE-*
perl translate create de-DE

verify that all files are created. Tests of 4) can be repeated.

7) Verify that no strings from help are present on staff UI file

egrep help po/de-DE-i-staff-t-prog-v-3006000.po

Only results came from help-top and bottom, and a few "help" on staff strings

Signed-off-by: Fridolyn SOMERS <fridolyn.somers@biblibre.com>
Signed-off-by: Katrin Fischer <Katrin.Fischer.83@web.de>
Tested according to test plan. Checked various pages in OPAC,
staff and intranet, translation was ok.
Passes QA script and tests.

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
10 years agoBug 11277: fix errors with search facet links in Bootstrap theme
Frédéric Demians [Tue, 26 Nov 2013 09:16:41 +0000 (10:16 +0100)]
Bug 11277: fix errors with search facet links in Bootstrap theme

This patch fixes the following rwo errors:

  1. When selecting 'show more' above a facet, the advanced search page
     is displayed.
  2. When restricting search on a library facet, all the biblio records
     of this library are returned.

The patch fixes the way URL are encoded with TT filter. See:

http://search.cpan.org/~abw/Template-Toolkit-2.25/lib/Template/Manual/Filters.pod#url

Signed-off-by: Liz Rea <liz@catalyst.net.nz>
Signed-off-by: Katrin Fischer <Katrin.Fischer.83@web.de>
Patch works nicely. Tests done:
- 'More' link on facets redirects to advanced search before applying
  the patch. After appyling the link works correctly.
- In my tests, the facet links themselves worked nicely, limiting the
  search as expected.
- Availability search works ok for me with patch applied.
- Also made sure to click on some links containing diacritcts (German
  umlauts).

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
10 years agoBug 10626: (follow-up) replace another use of KohaBranchName
Kyle M Hall [Tue, 27 Aug 2013 17:14:12 +0000 (13:14 -0400)]
Bug 10626: (follow-up) replace another use of KohaBranchName

Signed-off-by: Katrin Fischer <Katrin.Fischer.83@web.de>
To test:
Make sure
- independentbranches is turned on
- Your user doesn't have superlibrarian permission
Then
- Try to check out an item with home and holding branch !=
  logged in branch

Patch works alright.

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
10 years agoBug 10626 - Remove doubled up TT plugins - Merge KohaBranchName and Branches
Kyle M Hall [Tue, 23 Jul 2013 13:52:08 +0000 (09:52 -0400)]
Bug 10626 - Remove doubled up TT plugins - Merge KohaBranchName and Branches

Looking at the TT plugin directory I notice we have some plugins that
seem to do the same thing:

KohaBranchName.pm
Branches.pm

This patch drops KohaBranchName in favor of Branches

Test Plan:
1) Apply this patch
2) View a basket group, note the branch name is displayed
3) View a subscription's details, note the branch name is displayed
4) View suggestions, note the branch names are displayed
5) Return an item that needs transfered, note the branch name is displayed
6) Run 'prove t/db_dependent/Koha_template_plugin_Branches.t'

Signed-off-by: Chris Cormack <chrisc@catalyst.net.nz>
Signed-off-by: Katrin Fischer <Katrin.Fischer.83@web.de>
Passes all tests and QA script.
Also tested with a branch name with umlauts.

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
10 years agoBug 10852: (follow-up) update the POD for C4::Serials::SearchSubscriptions
Galen Charlton [Sat, 14 Dec 2013 00:33:25 +0000 (00:33 +0000)]
Bug 10852: (follow-up) update the POD for C4::Serials::SearchSubscriptions

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
10 years agoBug 10852: (follow-up) regression tests
Galen Charlton [Sat, 14 Dec 2013 00:24:06 +0000 (00:24 +0000)]
Bug 10852: (follow-up) regression tests

This patch adds regression tests for the changes to
C4::Serials::SearchSubscriptions().

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
10 years agoBug 10852: (follow-up) fix POD for C4::Serials::NewSubscription
Galen Charlton [Sat, 14 Dec 2013 00:21:48 +0000 (00:21 +0000)]
Bug 10852: (follow-up) fix POD for C4::Serials::NewSubscription

The error in the POD was discovered in the course of writing
test cases for the main patch.

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
10 years agoBug 10852: (follow-up) tweak wording of serials search form
Galen Charlton [Sat, 14 Dec 2013 00:10:46 +0000 (00:10 +0000)]
Bug 10852: (follow-up) tweak wording of serials search form

* "Callnumber" => "Call number"
* "Expire before" => "Expires before"

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
10 years agoBug 10852: (follow-up) switch from KohaAuthorisedValues to AuthorisedValues
Kyle M Hall [Fri, 13 Dec 2013 20:34:17 +0000 (15:34 -0500)]
Bug 10852: (follow-up) switch from KohaAuthorisedValues to AuthorisedValues

Bug 10626 will remove the KohaAuthorisedValues plugin and keep the
AuthorisedValues plugin.

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
10 years agoBug 10852: (follow-up) rename the "expiration date" filter name
Jonathan Druart [Wed, 4 Dec 2013 13:42:22 +0000 (14:42 +0100)]
Bug 10852: (follow-up) rename the "expiration date" filter name

Signed-off-by: Mathieu Saby <mathieu.saby@univ-rennes2.fr>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
10 years agoBug 10852: serials search improvements
Jonathan Druart [Tue, 20 Aug 2013 13:06:08 +0000 (15:06 +0200)]
Bug 10852: serials search improvements

This patch adds 3 filters for the serials search:
- location
- callnumber
- expiration date

To test:
- Search serials by location and/or callnumber and/or expiration date
  and check that results are consistent.

Signed-off-by: Mathieu Saby <mathieu.saby@univ-rennes2.fr>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
10 years agoBug 8230: (follow-up) update POD for C4::Acquisition::GetHistory
Galen Charlton [Fri, 13 Dec 2013 23:51:18 +0000 (23:51 +0000)]
Bug 8230: (follow-up) update POD for C4::Acquisition::GetHistory

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
10 years agoBug 8230: (follow-up) repair regression on order search
Galen Charlton [Fri, 13 Dec 2013 23:42:26 +0000 (23:42 +0000)]
Bug 8230: (follow-up) repair regression on order search

This patch repairs a regression introduced by the main
patch where it became impossible to search for cancelled
orders from the advanced order search form.

This patch also tweaks the wording on the order status
drop-down on the order search form to clarify that the
default status filter is orders that have any status
except cancelled.

To test:

[1] Before applying this patch, perform an advanced
    order search (acqui/histsearch.pl) for orders
    with status cancelled.  Observe that no hits are returned.
[2] Apply the patch and run the search again.  This time,
    the cancelled orders should be returned.

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
10 years agoBug 8230: (follow-up) fix detection of cancelled orders
Galen Charlton [Fri, 13 Dec 2013 23:19:55 +0000 (23:19 +0000)]
Bug 8230: (follow-up) fix detection of cancelled orders

This patch fixes a problem where the quantity / items column
in the acquisitions detail table would display ilnks to
items for cancelled orders.

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
10 years agoBug 8230: (follow-up) don't link to basket unless user has appropriate permissions
Galen Charlton [Fri, 13 Dec 2013 23:04:59 +0000 (23:04 +0000)]
Bug 8230: (follow-up) don't link to basket unless user has appropriate permissions

With this patch, the basket number on the bib details page is linked
to the basket management page only if the staff user has the appropriate
permissions.

To test:

[1] Log in as a user with the acquisition/order_manage permission.
    Bring up a bib record that is attached to an order and verify
    that the basket number is an active link.
[2] Log in as a user that doesn't have the acquisition/order_manage
    permission.  Verify that the basket number displayed on the bib
    details page is not a hyperlink.

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
10 years agoBug 8230: DBrev 3.15.00.005
Galen Charlton [Fri, 13 Dec 2013 22:55:15 +0000 (22:55 +0000)]
Bug 8230: DBrev 3.15.00.005

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
10 years agoBug 8230: (follow-up) reflect the fact that order statuses are now alphabetic codes
Jonathan Druart [Fri, 18 Oct 2013 13:05:11 +0000 (15:05 +0200)]
Bug 8230: (follow-up) reflect the fact that order statuses are now alphabetic codes

Signed-off-by: Paola Rossi <paola.rossi@cineca.it>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Passes koha-qa.pl, works as advertised. No regressions found.

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
10 years agoBug 8230: Display acquisition details on the catalogue detail page
Jonathan Druart [Wed, 18 Sep 2013 12:30:05 +0000 (14:30 +0200)]
Bug 8230: Display acquisition details on the catalogue detail page

This patch adds a new tab "Acquitition details" on the catalogue detail
page. It provides a list of order made for this biblio.

New system preference:

AcquisitionDetails: Hide/Show the new tab.  The default for
new and upgraded installations is to display the new tab.

Test plan:
1/ Apply the patch.
2/ Select the "placing an order" value for the AcqCreateItem pref.
3/ Create a new order with X items.
4/ Go on the catalogue detail page for the selected biblio.
5/ Click on the "Acquisition details" tab and check that your order is
displayed. Itemnumbers are present in the last column. Check that links
are not broken.
6/ Close your basket.
7/ Status become "Ordered"
8/ Receive X-1 items.
9/ Come back on the catalogue detail page. There are 2 orders: 1
complete and 1 partial. The complete one has a receive date.
10/ Receive the last item.
11/ Now you have 2 orders with a complete status.
12/ Cancel the last receipt.
13/ You have 1 ordered and 1 complete (2 items).
14/ Cancel the first receipt.
15/ You have 1 ordered (3 items).
16/ Delete your order
17/ You have 1 deleted order.
18/ Switch the AcqCreateItem pref to "receiving an order"
19/ Do again steps 3 to 17.

Signed-off-by: Paola Rossi <paola.rossi@cineca.it>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
10 years agoBug 11124: QA Follow-up adding optional dependency HTTPD::Bench::ApacheBench
Marcel de Rooy [Fri, 6 Dec 2013 09:15:52 +0000 (10:15 +0100)]
Bug 11124: QA Follow-up adding optional dependency HTTPD::Bench::ApacheBench

This dependency is used in load testing (misc/load_testing/*)

Test plan:
Check if you see the dependency listed on About/Perl modules.
Verify if the version information is correct.

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
10 years agoBug 11124: QA Follow-up resolving a warning and three typos
Marcel de Rooy [Fri, 6 Dec 2013 10:13:41 +0000 (11:13 +0100)]
Bug 11124: QA Follow-up resolving a warning and three typos

Resolves warning on uninitialized author in split on line 128.
Just adds the same behavior for title on line 129 for completeness.
Fixes typo on occurrences and two other minor typos.

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
10 years agoBug 11124: disallow trying to run the staff benchmark script as the DB account
Jonathan Druart [Wed, 23 Oct 2013 14:48:14 +0000 (16:48 +0200)]
Bug 11124: disallow trying to run the staff benchmark script as the DB account

On step 6 (at least), the circulation and return page redirect to the
select branch page and nothing is done.

The script should die if the user used is the sql administrator account.

Test plan:
Suppose that the sql admin account is root/root and koha/koha a
superlibrarian account.

1/
perl misc/load_testing/benchmark_staff.pl --steps=6
--url=http://admin.koha.local/cgi-bin/koha/
--password="koha" --user="koha"
should produce:
  ...
  Step 6
  ...

2/
perl misc/load_testing/benchmark_staff.pl --steps=1
--url=http://admin.koha.local/cgi-bin/koha/
--password="root" --user="root"
should produce:
Authentication successful
You cannot use the database administrator account to launch this script

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
10 years agoBug 11255: allow "relevance ascending" as a sort option
Jonathan Druart [Fri, 15 Nov 2013 10:10:04 +0000 (11:10 +0100)]
Bug 11255: allow "relevance ascending" as a sort option

This patch fixes a problem where if a staff member sets the
*defaultSortField/*defaultSortOrder system preferences to relevance
ascending while QueryParser is enabled, default keyword search
would break -- the query parser config did not declare relevance asc
as a possible "modifier".

Note that setting the sort order to relevance ascending does not
actually make catalog search return results with the least relevant
records showing up first; Zebra does not support such a mode.  In other
words, relevance ascending acts exactly the same as relevance descending.

Test plan:

0/ Create some biblio with "history" in the title and
   ensure that the QueryParser system preference is enabled.
1/ Define prefs defaultSortField = relevance and defaultSortOrder = asc
2/ Search "history" on the staff interface
3/ Note that no result is returned.
4/ Apply the patch
5/ Verify the queryparser config file in use takes the modification into
account (see the queryparser_config value in your $KOHA_CONF file).
6/ Relaunch the search and verify results are returned

Signed-off-by: Christopher Brannon <cbrannon@cdalibrary.org>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
10 years agoBug 11261: make sample serial frequencies mandatory during installation
Jonathan Druart [Fri, 6 Dec 2013 14:44:52 +0000 (15:44 +0100)]
Bug 11261: make sample serial frequencies mandatory during installation

Test plan:
Verify all sample_frequencies.* files have been moved from optional
to mandatory directories.

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
10 years agoBug 11261: make sample serial numbering patterns mandatory during installation
Jonathan Druart [Tue, 19 Nov 2013 14:21:25 +0000 (15:21 +0100)]
Bug 11261: make sample serial numbering patterns mandatory during installation

Test plan:
Verify all sample_numberpatterns.* files have been moved from optional
to mandatory directories.

Signed-off-by: Katrin Fischer <Katrin.Fischer.83@web.de>
All sample files for numbering patterns are moved from optional
to mandatory.

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
10 years agoBug 9224: Make acqui/finishreceive.pl Plack-compatible
Jacek Ablewicz [Wed, 16 Oct 2013 15:31:04 +0000 (17:31 +0200)]
Bug 9224: Make acqui/finishreceive.pl Plack-compatible

Under Plack/mod_perl wrapping, sub update_item() will become a closure,
so after the 1st run it will retain its own private instances of the
following variables: $booksellerid, $datereceived, $unitprice, $rrp,
$biblionumber.

I.e., in case update_item() gets invoked 2nd+ time (inside
the same process, but for different-subsequent receives) it may
incorrectly flag the (old, wrong) biblionumber for Zebra reindexing,
and erronously modify the current item[s] with the previously
used (wrong) values.

This simple patch should make acqui/finishreceive.pl Plack-compatible.

Test plan:
Test patched acqui/finishreceive.pl script (create and receive some
orders w/ items, etc.). Ensure items are gettting added and/or modified
correctly during receiving process.

Signed-off-by: Jonathan Druart <jonathan.druart@biblibre.com>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Passes koha-qa.pl, works as advertised, no regressions found.

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
10 years agoBug 8334: (follow-up) remove commented JS code
Jonathan Druart [Fri, 13 Dec 2013 14:46:15 +0000 (15:46 +0100)]
Bug 8334: (follow-up) remove commented JS code

Signed-off-by: Jonathan Druart <jonathan.druart@biblibre.com>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
10 years agoBug 8334 - Authority UNIMARC 100 field plugin
Vitor FERNANDES [Wed, 18 Sep 2013 20:58:24 +0000 (17:58 -0300)]
Bug 8334 - Authority UNIMARC 100 field plugin

This patch adds a plugin for field 100 of UNIMARC
authorities.

To test on a UNIMARC site:
1) Apply the patch
2) Edit some authority framework, field 100
3) Link subfield 'a' to unimarc_field_100_authorities.pl
plugin, save
4) Edit or add auth record, click on '...' to bring plugin
5) Modify field 100a
6) Save record

Thanks to Bernardo Gonzalez Kriegel <bgkriegel@gmail.com> for
converting Vitor's original patch to a Git patch and doing
some tidying.

Signed-off-by: Mathieu Saby <mathieu.saby@univ-rennes2.fr>
Signed-off-by: Stephane Delaye <stephane.delaye@biblibre.com>
Signed-off-by: Jonathan Druart <jonathan.druart@biblibre.com>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
10 years agoBug 11174: fix OPAC search links built from authority 5xx fields
Zeno Tajoli [Wed, 30 Oct 2013 18:36:41 +0000 (19:36 +0100)]
Bug 11174: fix OPAC search links built from authority 5xx fields

In the templates opac-authoritiessearchresultlist of prog and
bootstrap the incorrect parameter 'valuec' is changed to 'value'

To test:

1) Insert an authority record with a 5xx field  (on MARC21 or UNIMARC)
2) Index the record
3) Search for the record in using OPAC authorities search.
4) Click one of the "see also" links built from the 5xx field, the link
   doesn't work
5) Apply the patch
6) Close the browser
7) Open the opac and select the english interface
8) Redo the search
9) Now the link works
10) To use the patch in others languages you need to regenerate the
    templates.

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Tested with bootstrap.

Signed-off-by: Jonathan Druart <jonathan.druart@biblibre.com>
Following commit remove the use to valuec:
 commit 31f41e2c1db9d8dca82e0249050acb8f906c8164
    Bug 8206: Specify index in OPAC authority search

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
10 years agoBug 10983: Remove unused private subroutines from C4::Budgets
Colin Campbell [Wed, 2 Oct 2013 08:25:16 +0000 (09:25 +0100)]
Bug 10983: Remove unused private subroutines from C4::Budgets

The subroutine _filter_fields is not used by the module
and the sub _columns is only used by it

This patch removes the dead code.

To test:

[1] Verify that the following tests pass

    t/Budgets.t
    t/Budgets/CanUserModifyBudget.t
    t/Budgets/CanUserUseBudget.t
    t/db_dependent/Acquisition.t
    t/db_dependent/Acquisition/GetOrdersByBiblionumber.t
    t/db_dependent/Acquisition/Invoices.t
    t/db_dependent/Acquisition/OrderFromSubscription.t
    t/db_dependent/Acquisition/TransferOrder.t
    t/db_dependent/Acquisition/close_reopen_basket.t
    t/db_dependent/Bookseller.t
    t/db_dependent/Budgets.t
    t/db_dependent/Serials.t
    t/db_dependent/Serials_2.t

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Signed-off-by: Jonathan Druart <jonathan.druart@biblibre.com>
Looks good to me.

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
10 years agoBug 7143: Adding RMaint for 3.8 to release team
Marcel de Rooy [Mon, 9 Dec 2013 07:47:59 +0000 (08:47 +0100)]
Bug 7143: Adding RMaint for 3.8 to release team

As a follow-up after December 4 meeting.

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Katrin Fischer <Katrin.Fischer.83@web.de>
Correct addition, no problems found.

Signed-off-by: Jonathan Druart <jonathan.druart@biblibre.com>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
10 years agoBug 11009: (follow-up) tweak wording and remove potential log noise
Galen Charlton [Tue, 10 Dec 2013 20:20:37 +0000 (20:20 +0000)]
Bug 11009: (follow-up) tweak wording and remove potential log noise

This patch makes the message that is displayed when attempting to
view circ history for the anonymous patron more informative.  It
also removes a potential source of log noise if the AnonymousPatron
system preference happens to be set to a blank value.

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
10 years agoBug 11009: Do not display circulation history of anonymous patron
Fridolyn SOMERS [Tue, 8 Oct 2013 07:34:42 +0000 (09:34 +0200)]
Bug 11009: Do not display circulation history of anonymous patron

When using an anonymous patron to anonymise issues history, this patron
may have a huge number of old issues. In this case, trying to display
the reading history of this patron will perform a huge SQL query.
It is not useful to have the reading history of this anonymous patron.

This patch adds an alert instead of old issues when displaying reading
records of anonymous patron.

Test plan :
- Set syspref AnonymousPatron to 0.
- Select a borrower with old issues. For example 123.
- Look at its reading records page : members/readingrec.pl
=> Old issues are displayed in a datatable
- Set syspref AnonymousPatron with this borrower number. For example 123.
- Look at its reading records page
=> Old issues are not displayed and an alert is displayed
- Using SQL query, remove old issues of this borrower :
    DELETE FROM old_issues WHERE borrowernumber=123.
- Look at its reading records page
=> A message is displayed

Signed-off-by: Owen Leonard <oleonard@myacpl.org>
This works as advertised and seems like a reasonable thing to do. I
suspect that someone will object... Perhaps that person will implement a
solution which uses an AJAX DataTable.

Signed-off-by: Brendan Gallagher <brendan@bywatersolutions.com>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
10 years agoBug 11112: (follow-up) add FIXME
Galen Charlton [Tue, 10 Dec 2013 18:21:09 +0000 (18:21 +0000)]
Bug 11112: (follow-up) add FIXME

The caching introduced by the main patch is not ideal
as it won't work correctly if a persistance engine is used.

However, I have good reason to expect that bug 8089 will
be worked on (because I'm going to do it) so that Koha::Cache
can be used for this prior to the release of 3.16.

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
10 years agoBug 11112: (follow-up) repair Koha::Calendar->add_holiday()
Galen Charlton [Tue, 10 Dec 2013 18:11:37 +0000 (18:11 +0000)]
Bug 11112: (follow-up) repair Koha::Calendar->add_holiday()

This patch ensures that the package-level cache is updated
when add_holiday() is used.  Note that except for the test
case added by this patch, there doesn't seem to be anything
that actually calls ->add_holiday(); it may be better to remove it.

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
10 years agoBug 11112: Koha::Calendar needs some caching
Jonathan Druart [Wed, 16 Oct 2013 13:36:30 +0000 (15:36 +0200)]
Bug 11112: Koha::Calendar needs some caching

Each time a Koha::Calendar object is created, its constructor retrieves
all holidays from the database and create a DateTime::Set object with
all holidays.

[RM note: I've observed that the time it takes DateTime::Set to be
 initialized with a set of dates increases faster than linearly with
 the number of dates.  I think this, more than just retrieving a bunch
 of holidays from the database, is what is most expensive.]

In one of our customer's DB, there are 11085 special_holidays and 598
repeatable_holidays. When a loan is returned, there are 3 calls to
Koha::Calendar->new.

This patch adds caching of the holiday list via package-level variables
as well as lazy fetching of the holidays. (RM note: this means that if
a persistance engine is in use, updates to the holiday list will not
be reflected during checkout.  I'm allowing this breakage for now on
the plan that bug 8089 will be fixed soon and we can switch to using
Koha::Cache).

Nytprof benchmarks (on a 3.8.x branch):
In DateTime::Set->from_datetimes:
3 times (5.49ms+4.90s) by Koha::Calendar::_init at line 80 of Koha/Calendar.pm, avg 1.63s/call
on a total of 7.67s (of 10.2s), executing 6353333 statements and 3031273 subroutine calls in 147 source files and 36 string evals.
for the circulation/return.pl page.

Comparing the access_log:

Without the patch:
checkout: time=2759838
checkin: time=1832751

Without the patch and with overdues:
checkout: time=1086727 + time=1144706
checkin: time=3928854 (x2)

With the patch and overdues:
checkout: time=1077839 + time=1060886
checkin: time=2420898

Test plan:
- checkout an item with a return date < today
- checkin the item and verify the suspension period is well calculated
  (depending on the holidays).
- prove t/db_dependent/Holidays.t
- t/Calendar.t

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Brendan Gallagher <brendan@bywatersolutions.com>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
10 years agoBug 11032: Check a valid MARC::Record passed to Biblio
Colin Campbell [Thu, 10 Oct 2013 17:06:14 +0000 (18:06 +0100)]
Bug 11032: Check a valid MARC::Record passed to Biblio

Intermittently problems in the calling environment
cause a C4::Biblio routine to be called with an undefined
MARC::Record object. This results in the process
dying and returning to the end user a low level
message such as 'cannot call method x on an undefined
object'.

For exported subroutines taking a MARC::Record object,
check that object is defined otherwise return a logical
return value and log a stack trace to the error log.
A couple of cases were checking but dying, this may have
unwelcome results in a persistent environment so croak has
been downgraded to carp

Signed-off-by: Katrin Fischer <Katrin.Fischer.83@web.de>
Adds lots of checks for $record in various places, should
not affect behaviour.
Passed all tests and QA script, including new unit tests.
Tested adding and saving a new record.
Also tested detail and result pages without XSLT.

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
10 years agoBug 10605: fix encoding issue on basket email (INTRANET)
Jonathan Druart [Thu, 14 Nov 2013 10:31:23 +0000 (11:31 +0100)]
Bug 10605: fix encoding issue on basket email (INTRANET)

Same fix for the staff interface.

Signed-off-by: Katrin Fischer <Katrin.Fischer.83@web.de>
Both patches tested with English and German, diacritics
now appear correctly if UTF-8 is selected as encoding.
Passes all tests and QA script.

Signed-off-by: Brendan Gallagher <brendan@bywatersolutions.com>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
10 years agoBug 10605: fix encoding issue in basket email (OPAC)
Jonathan Druart [Thu, 14 Nov 2013 11:17:38 +0000 (12:17 +0100)]
Bug 10605: fix encoding issue in basket email (OPAC)

There is an encoding issue on the received mail.
Here, we have to keep the encode_qp in order not to break links (= is a
special char for email https://en.wikipedia.org/wiki/MIME#Encoded-Word).

Signed-off-by: Katrin Fischer <Katrin.Fischer.83@web.de>
Signed-off-by: Brendan Gallagher <brendan@bywatersolutions.com>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
10 years agoBug 10808: (follow-up) reformat auth_finder.pl
Fridolyn SOMERS [Fri, 30 Aug 2013 09:41:26 +0000 (11:41 +0200)]
Bug 10808: (follow-up) reformat auth_finder.pl

Perltidy and some format changes.

Most important : call to get_template_and_user must be at begining
of script because it checks authentification.

Signed-off-by: Bernardo Gonzalez Kriegel <bgkriegel@gmail.com>
Signed-off-by: Katrin Fischer <Katrin.Fischer.83@web.de>
Testing notes:
- Tested various searches, selections now remain after
  submitting the search form.
Regression testing:
- Clearing the authority from the record still works.
- Creating a new authority from the plugin page
  still works.
- Autocomplete of entries still works.

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
10 years agoBug 10808: make authority search form retain drop-down selections
Fridolyn SOMERS [Fri, 30 Aug 2013 08:54:00 +0000 (10:54 +0200)]
Bug 10808: make authority search form retain drop-down selections

When cataloging a field defined with a thesaurus, an authority search
popup is displayed with a search from. Once operators, values and sort
selected in this form the search can be performed. The bug is that the
values entered are kept but not the selected operators and sort.

The same bug was existing in authorities module, solved by Bug 8692.

This patch corrects the bug.

Also uses in 'sort by' options the same text as search in authorities
module : Heading A-Z (default), Heading Z-A, None.

Also removes duplicated code in auth_finder.pl :
    value_mainstr => $query->param('value_mainstr') || "", ...

Test plan :
- Create a new biblio with a framework containing a field linked to a
  thesaurus. For example : 600
- Click on small icon of main entry. For example : 600$a
=> You get a search form with all operators to "contains" and sort by
   "Heading A-Z"
- Enter a value in each text box and perform search
=> You get a search form with values in text boxes and all operators
   to "contains"
- Select "starts with" in all operator comboboxes and perform search
=> You get a search form with all operators to "starts with"
- Select "is exactly" in all operator comboboxes and perform search
=> You get a search form with all operators to "is exactly"
- Select "Heading Z-A" in sort by and perform search
=> You get a search form with "Heading Z-A" in sort by
- Select "None" in sort by and perform search
=> You get a search form with "None" in sort by

Signed-off-by: Bernardo Gonzalez Kriegel <bgkriegel@gmail.com>
Comment: With both patches applied no koha-qa errors

Test
1) Original behavior is whatever selection you do before patch,
search form returns to default options
2) After patch, selection remains

Signed-off-by: Katrin Fischer <Katrin.Fischer.83@web.de>
All tests and QA script pass, further comments on second patch.

Signed-off-by: Galen Charlton <gmc@esilibrary.com>