See the discussion on the Bugzilla report.
It might be easier to work with a deny list.
Test plan:
Run t/CookieManager.t
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
Test plan:
Run t/CookieManager.t
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Amended: Reverted the change to $cookies to minimize changes.
Fixed Auth.t where checkauth is being mocked.
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
No longer in use
Test plan:
% git grep 'columns.def'
does not return relevant occurrences
Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
We do no longer need them.
Test plan:
Confirm that their content are in Koha::Database::Columns
Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
We are using json files to retrieve the list of the DB columns. We can
reuse what we have done in the previous patch and display translated
strings.
Test plan:
Search for "unwanted" in the sysprefs
Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
Same as the previous patch but for the inventory.
Test plan:
Same as before but test the inventory tool
Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
This subroutine was mostly the same as GetColumnDefs, we replace it
identically as in the previous patch.
Test plan:
Translate some strings in another language
% gulp po:update --lang es-ES
% cd misc/translate
# Translate the relevant strings in po/es-ES-messages.po
# For instance "Alternate contact: Surname"
% perl translate install es-ES
Select the language for the interface (enable it in the 'language' syspref
first)
Create a new guided report and confirm that the columns for the borrowers
table are translated
Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
C4::Templates::GetColumnDefs can easily be replaced using the new
Koha::Database::Columns module.
Test plan:
Go to the import patron tool and confirm that you see the same list of
patron's attribute on the import patron form.
Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
This module will contain new strings and make them translatable using
Koha::I18N.
We will need to improve this module to prevent the dozens of __ calls
each time we retrieve the column list. We could either use memcached or
add a method to only retrieve columns for a given table.
Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
The maintainers of Mojolicious::Plugin::OpenAPI and friends fixed the
problem with using collectionFormat for Headers in the upstream library.
However, this highlighted an outstanding issue in our code when I ran
the unit tests. We have not been stripping x-koha-embed at the query
level as it did not exist in the reserved_words list. This patch
resolves that and gets the acquisitions_orders test passing again.
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
This patch adds the ability to do inventory by collection.
_TEST PLAN_
Before applying:
1) Go to "Tools > Inventory/stocktaking"
2) Note that there is no "Collection code:" option
Optionally:
2b) You can create a Barcode file with a single barcode
2c) Don't select anything from "Select items you want to check" (or filter if you know
how to filter to make it faster... doesn't matter)
2d) Click "Submit" at the bottom of the screen
2e) Note that there is no "Collection code" column in the screen output or CSV output
(ie with/without the "Export to CSV file" box ticked before submitting)
Apply the patch.
After applying:
3) Note that there is a "Collection code" filter on the main inventory screen
4) Create a Barcode file with a single barcode for an item with a collection
and upload it using the "Choose file" button.
5) Select that item's collection code from the "Collection code" filter
6) Click "Submit"
7) Note that the screen output and the CSV output contains a "Collection code" column
(ie with/without the "Export to CSV file" box ticked before submitting)
Signed-off-by: kelly mcelligott <kpmcelligott@gmail.com>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
In koha interface, a warning is displayed when an item on hold is returned
only if the return is for this specific item.
This patch does the same in SIP: the return is blocked when holds_block_checkin
is enabled and there is a hold on a specific item and this is the very item
being returned.
Test plan:
The following behavior is expected in SIP:
- An item is returned, and there is a reservation on record-level: block
- An item is returned, and there is a reservation on this very item: block
- An item is returned, and there is a reservation on another item: allow
Signed-off-by: Sonia <sonia.bouis@univ-lyon3.fr>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
To test:
1. Apply patch
2. Go the purchase suggestion page and see that branchcode defaults to the first option in the list.
3. Go to OPACSuggestionMandatoryFields and mark branchcode as required
4. BAck on the OPAC suggestion page notice that the branchcode defaults to an empty value
5. Try to submit the form without changing it, you cannot. You must choose a branch
Signed-off-by: shiyao <shiyao@inlibro.com>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
Authority heading use is based on authority MARC 008/14-16. This could
be useful to show on authority search results, if new system preference
ShowHeadingUse is enabled.
To test:
1. Apply patches, update database, restart services
2. Go to Koha Administration -> system preferences -> searching tab.
Notice new ShowHeadingUse system preference is disabled. Leave it
disabled for now.
3. Do an authority search. Confirm it works as expected and no new
information is shown since ShowHeadingUse is disabled.
4. Do a biblio search and edit a record. Go to one of the authority
fields (1xx, 6xx or 7xx) and launch the authority finder plugin. Do an
authority search and confirm it works as expected and no new information
is shown since ShowHeadingUse is disabled.
5. Go back to system preferences and enable ShowHeadingUse syspref.
6. Repeat steps 3 and 4 but confirm the 'Heading use' column now shows, and
correctly displays what the heading can be used for based on 008/14-16.
Sponsored-by: Education Services Australia SCIS
Signed-off-by: Jessica <jzairo@bywatersolutions.com>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
This patch adds a new page providing an interface for generating
barcodes using svc/barcode. A form allows the user to choose various
parameters and see the resulting barcode image.
To test, apply the patch and rebuild the staff interface SCSS
(https://wiki.koha-community.org/wiki/Working_with_SCSS_in_the_OPAC_and_staff_client).
- Go to the "Tools" home page. Follow the link to "Barcode image
generator."
- On the barcode image generator page, confirm that there is a "Barcode
image generator" link in the sidebar and that it is displayed with
bold text.
- Test the features of the form:
- Enter a numeric value in the "Barcode" field and tab out of the
field or click "Show barcode" button. A barcode of type "Code39"
should be shown with the text of the barcode included in the
image below the barcode.
- A text area below the barcode image should show the HTML used to
generate the preview image.
- Clicking in this textarea should automatically add the contents to
the clipboard. You should be shown a message, "HTML copied to the
clipboard."
- Check the "hide text" checkbox. The barcode should be redisplayed
without the text.
- Check that changing the "barcode height" value is reflected
correctly in the barcode image.
- Try adding non-numeric data in the "Barcode" field. You should be
shown an error message, "Barcodes of type [type] must be numeric."
- Test these other numeric barcode types: Code39, COOP2of5, EAN13,
EAN8, IATA2of5, Industrial2of5, ITF, Matrix2of5, NW7, UPCA, and
UPCE.
Note that EAN13, EAN8, UPCA, and UPCE expect specific patterns. Test
values (found here: https://barcode.tec-it.com/en/UPCE):
EAN13: 978020137962
EAN8: 9031101
UPCA: 72527273070
UPCE: 0123456
- Change the barcode type to "QRcode."
- The form should change, hiding the "Hide text" checkbox and
showing a new ranger slider for "QR Code module size."
- The barcode field should now be labeled "Text, URL, or barcode,
etc"
- The barcode field hint should change to a hint about QRcode
dimensions.
- Changing the "module size" slider should change the size of the
generated QR code. As you change the slider the selected value
should be reflected in the box.
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
There is a possibility on OPAC but not yet on the staff interface, so I added this syspref which has the same behaviour as the OPAC highlighting syspref.
When you choose to disable highlighting on the syspref, the toggle anchor in the result page does not appear at all.
But if you keep the default state (highlighting on), you still have the option to switch between "Unhighlight" and "Highlight" modes.
Test plan :
1. Go to the syspref named "StaffHighlightedWords" and see that the default state is "Highlight".
2. Look for something in the catalogue for example and see that the words are highlighted and that it is also possible to change between "Unhighlight" and "Highlight".
3. Go back to syspref and choose to disable highlighting by choosing "Don't Highlight".
4. Refresh your results page if you have not closed it or reload a new search.
5. There is no highlighting at all and anchors do not exist (same behaviour as the OPAC interface).
Signed-off-by: ManuB <e.betemps@gmail.com>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
I added explanatory text to staff interface on the preference to explain how it works
Removed a debug warn in the _get_sort_bin routine
changed comparitor => comparator
fixed a missing call in the tests
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
This patch adds support for specifying the comparison operator used in
the sort bin method. It allows for more complex cases where one may wish
to sort on groups of callnumbers for example.
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
This patch adds some unit tests for the new _get_sort_bin function.
We're testing that rules are applied in order and that the different
comparison operators work as expected.
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
This bug adds the SIP2SortBinMapping to make it possible to tell
the Koha SIP2 server to include a sort_bin/CL field in the
Checkin Response, if appropriate.
To test:
- Check out an item and return it via SIP2:
$ telnet localhost 8023
9300CNterm1|COterm1|CPCPL|
09N20200422 12430020200422 124300APCPL|AOCPL|AB001|AC|
(Where 001 in |AB001| is the barcode of the item in question)
- Check there is no CL field in the last response
- Apply the patch, fill in SIP2SortBinMapping with e.g.:
CPL:itype:BK:3
- Repeat the first step
- Check the respons contains a CL field with a value of 3 (or what
you put in the config). The field should look like |CL3|
- Signe ye offe
2020-06-25: Pass an item to _get_sort_bin, not a checkout. Rebase.
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
See bug 21648 comment 17.
Suggestion is to keep the non-repeatable patron's attribute from the patron we selected instead of raising a blocking error.
A side-effect will be that when several patrons are merged, the
non-repeatable attribute from the first one will be kept, which can
result in unexpected result if the original patron does not have the
attribute defined.
Signed-off-by: Andrew Fuerste-Henry <andrew@bywatersolutions.com>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
Some libraries want to be able to use a patron's messaging preferences to conditionally change the contents of a notice depending on the patron's other messaging preference. For example, a library has requested to have the note on the hold slip if the patron has requested phone messages for waiting holds. This really only entails adding a method to the Koha::Patron class to allow this type of looking.
Test plan:
1) Apply this patch
2) Enable item checkout notices for a patron for email, but not sms
3) Include the following in the notice:
TEST1: [% borrower.has_messaging_preference({ message_name => 'Item_Checkout', message_transport_type => 'email' }) %]
<br/>
TEST2: [% borrower.has_messaging_preference({ message_name => 'Item_Checkout', message_transport_type => 'sms' }) %]
4) Generate a checkout and notice for that patron
5) Note the generated notice has a 1 for TEST1, but not for TEST2
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
To test:
-Make sure when you apply all the patches that when you click on the Syndetics image in the detail page that it correctly displays the lightbox.
-Turn on some other cover image services and make sure you can toggle through each of them.
Signed-off-by: Barbara Johnson <barbara.johnson@bedfordtx.gov>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
Signed-off-by: Barbara Johnson <barbara.johnson@bedfordtx.gov>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
To test:
1 - Enable system preferences:
SyndeticsEnabled
SyndeticsCoverImages
SyndeticsClientCode (you will need a valid code for testing)
2 - Perform a search on the staff client
3 - Check that results have images if upc,oclc number, or isbn existin record
4 - Confirm that dtails paeg displays same image
5 - Confirm size on details page follows syspref SyndeticsCoverImageSize
Signed-off-by: Barbara Johnson <barbara.johnson@bedfordtx.gov>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
A new agefield has been added to the 'Automatic item modifications by
age' tool. The options for the agefield are: replacementpricedate, datelastborrowed,
datelastseen, damaged_on, itemlost_on, withdrawn_on
If no option is selected then Koha will default to saving 'agefield' =
items.dateaccessioned
Similarly, if a Koha instance has an old item rule without 'agefield'
defined then Koha will default to using 'items.dateaccessioned'.
This is confirmed by the AutomaticItemModificationByAge.t unit test.
Test plan:
1. Go to: Tools > Catalog > Automatic item modifications by age
2. Observe there is a new 'Age field' dropdown in the rule form.
3. Create a rule, set the values:
- 'Age in days' = 20
- Leave 'Age field' = 'Choose an age field'
- 'Substitutions': 'items.barcode' = 'test'
- Save the rule
4. Confirm the 'List of rules' page displays 'items.dateaccessioned in the 'Age field' column
5. Add another rule:
- 'Age in days' = 2
- 'Age field' = 'items.datelastseen'
- 'Substitutions': 'items.barcode' = 'test2'
- Save the rule
6. Confirm the 'List of rules' page displays 'items.datelastseen' in
the 'Age field' column for that second rule
7. Add some more rules and confirm you can delete them
8. Edit a record:
- Make the items.dateaccessioned = 3 day ago (so rule 1 is false)
- Make the items.datelastseen = 3 days ago (so rule 2 is true)
9. Run the automatic_items_modification_by_age.pl:
- sudo koha-shell <instance>
- cd misc/cronjobs
- ./automatic_item_modification_by_age.pl -v -c
10. Confirm the item has it's barcode set to 'test2'
11. Run unit tests:
- sudo koha-shell <instance>
- prove t/db_dependent/Items/AutomaticItemModificationByAge.t -v
Sponsored-By: Catalyst IT
Signed-off-by: Andrew Fuerste-Henry <andrew@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>